<?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>164494</bug_id>
          
          <creation_ts>2016-11-07 16:20:31 -0800</creation_ts>
          <short_desc>[Mac] Stop using deprecated AppKit enumeration values</short_desc>
          <delta_ts>2016-11-16 17:02:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=164572</see_also>
          <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>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1248883</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 16:20:31 -0800</bug_when>
    <thetext>Stop using deprecated AppKit enumeration values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248889</commentid>
    <comment_count>1</comment_count>
      <attachid>294099</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 16:31:30 -0800</bug_when>
    <thetext>Created attachment 294099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248890</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 16:32:58 -0800</bug_when>
    <thetext>Attachment 294099 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 45 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>1248892</commentid>
    <comment_count>3</comment_count>
      <attachid>294100</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 16:36:04 -0800</bug_when>
    <thetext>Created attachment 294100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248894</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 16:38:05 -0800</bug_when>
    <thetext>Attachment 294100 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 45 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>1248899</commentid>
    <comment_count>5</comment_count>
      <attachid>294102</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 17:02:30 -0800</bug_when>
    <thetext>Created attachment 294102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248901</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 17:10:10 -0800</bug_when>
    <thetext>Attachment 294102 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 45 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>1248920</commentid>
    <comment_count>7</comment_count>
      <attachid>294111</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 18:34:58 -0800</bug_when>
    <thetext>Created attachment 294111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248921</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 18:38:03 -0800</bug_when>
    <thetext>Attachment 294111 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 45 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>1248922</commentid>
    <comment_count>9</comment_count>
      <attachid>294112</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 18:38:38 -0800</bug_when>
    <thetext>Created attachment 294112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248923</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 18:40:59 -0800</bug_when>
    <thetext>Attachment 294112 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 45 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>1248929</commentid>
    <comment_count>11</comment_count>
      <attachid>294117</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 19:01:37 -0800</bug_when>
    <thetext>Created attachment 294117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248930</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 19:05:04 -0800</bug_when>
    <thetext>Attachment 294117 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 45 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>1248931</commentid>
    <comment_count>13</comment_count>
      <attachid>294118</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 19:06:38 -0800</bug_when>
    <thetext>Created attachment 294118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248932</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 19:10:05 -0800</bug_when>
    <thetext>Attachment 294118 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 45 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>1248933</commentid>
    <comment_count>15</comment_count>
      <attachid>294119</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 19:11:47 -0800</bug_when>
    <thetext>Created attachment 294119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248934</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 19:13:13 -0800</bug_when>
    <thetext>Attachment 294119 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 45 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>1248936</commentid>
    <comment_count>17</comment_count>
      <attachid>294121</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 19:22:42 -0800</bug_when>
    <thetext>Created attachment 294121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248939</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 19:25:30 -0800</bug_when>
    <thetext>Attachment 294121 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 47 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>1248940</commentid>
    <comment_count>19</comment_count>
      <attachid>294123</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 19:26:07 -0800</bug_when>
    <thetext>Created attachment 294123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248941</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 19:27:20 -0800</bug_when>
    <thetext>Attachment 294123 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 47 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>1248943</commentid>
    <comment_count>21</comment_count>
      <attachid>294125</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 19:39:52 -0800</bug_when>
    <thetext>Created attachment 294125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248944</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 19:41:35 -0800</bug_when>
    <thetext>Attachment 294125 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 47 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>1248950</commentid>
    <comment_count>23</comment_count>
      <attachid>294128</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 20:12:25 -0800</bug_when>
    <thetext>Created attachment 294128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248951</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 20:14:41 -0800</bug_when>
    <thetext>Attachment 294128 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 48 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>1248956</commentid>
    <comment_count>25</comment_count>
      <attachid>294130</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 21:06:59 -0800</bug_when>
    <thetext>Created attachment 294130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248957</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 21:08:56 -0800</bug_when>
    <thetext>Attachment 294130 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/CommandBackForward.mm:68:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Misc/WebNSViewExtras.m:96:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 6 in 73 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>1248960</commentid>
    <comment_count>27</comment_count>
      <attachid>294132</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 21:30:32 -0800</bug_when>
    <thetext>Created attachment 294132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248961</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 21:33:08 -0800</bug_when>
    <thetext>Attachment 294132 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/CommandBackForward.mm:68:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Misc/WebNSViewExtras.m:96:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 6 in 73 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>1248963</commentid>
    <comment_count>29</comment_count>
      <attachid>294133</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-07 21:43:02 -0800</bug_when>
    <thetext>Created attachment 294133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248964</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-07 21:46:15 -0800</bug_when>
    <thetext>Attachment 294133 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/CommandBackForward.mm:68:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Misc/WebNSViewExtras.m:96:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:471:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:610:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 6 in 72 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>1248977</commentid>
    <comment_count>31</comment_count>
      <attachid>294133</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-07 22:42:43 -0800</bug_when>
    <thetext>Comment on attachment 294133
Patch

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

&gt; Source/WebCore/editing/cocoa/HTMLConverter.mm:70


I suggest doing this in WebCorePrefix.h the way we do in WebKit2Prefix.h instead of doing it each file where it is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249062</commentid>
    <comment_count>32</comment_count>
      <attachid>294164</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-08 09:21:28 -0800</bug_when>
    <thetext>Created attachment 294164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249063</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-08 09:23:04 -0800</bug_when>
    <thetext>Attachment 294164 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:193:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/CommandBackForward.mm:68:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Misc/WebNSViewExtras.m:96:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:470:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:609:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:612:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 6 in 74 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>1249071</commentid>
    <comment_count>34</comment_count>
      <attachid>294167</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-08 09:56:11 -0800</bug_when>
    <thetext>Created attachment 294167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249072</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-08 09:58:10 -0800</bug_when>
    <thetext>Attachment 294167 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:193:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/CommandBackForward.mm:68:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Misc/WebNSViewExtras.m:96:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:470:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:609:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:612:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 6 in 74 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>1249306</commentid>
    <comment_count>36</comment_count>
      <attachid>294235</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-09 10:18:53 -0800</bug_when>
    <thetext>Created attachment 294235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249307</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-09 10:20:13 -0800</bug_when>
    <thetext>Attachment 294235 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm:193:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/CommandBackForward.mm:68:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Misc/WebNSViewExtras.m:96:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm:470:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:609:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/mac/EventHandlerMac.mm:612:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 6 in 74 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>1249385</commentid>
    <comment_count>38</comment_count>
      <attachid>294235</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-09 11:35:01 -0800</bug_when>
    <thetext>Comment on attachment 294235
Patch

Clearing flags on attachment: 294235

Committed r208455: &lt;http://trac.webkit.org/changeset/208455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249386</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-09 11:35:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252115</commentid>
    <comment_count>40</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-11-16 17:02:03 -0800</bug_when>
    <thetext>This caused bug 164572.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294099</attachid>
            <date>2016-11-07 16:31:30 -0800</date>
            <delta_ts>2016-11-07 16:36:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107162723.patch</filename>
            <type>text/plain</type>
            <size>159016</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjE3YTNlNjczODY1YTI4YTY4MGY4MjQ2YmM0NmRmODllNTVmYWYxMzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY0LDYgKzY0LDcgQEAKICNpbXBvcnQgIlRleHRJdGVyYXRvci5oIgogI2ltcG9ydCA8b2JqYy9y
dW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgorI2ltcG9ydCA8d3RmL21hYy9B
cHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xMTMsMTAgKzExNCw2IEBAIFNP
RlRfTElOS19DTEFTUyhVSUZvdW5kYXRpb24sIE5TVGV4dFRhYikKICNkZWZpbmUgUGxhdGZvcm1G
b250ICAgICAgICAgICAgICAgIE5TRm9udAogI2RlZmluZSBQbGF0Zm9ybUZvbnRDbGFzcyAgICAg
ICAgICAgTlNGb250CiAKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50TGVmdCAgICAgICAgIE5TTGVm
dFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50UmlnaHQgICAgICAgIE5TUmln
aHRUZXh0QWxpZ25tZW50Ci0jZGVmaW5lIE5TVGV4dEFsaWdubWVudENlbnRlciAgICAgICBOU0Nl
bnRlclRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50SnVzdGlmaWVkICAgIE5T
SnVzdGlmaWVkVGV4dEFsaWdubWVudAogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwpAQCAtMTIxMCw4ICsxMjA3LDYgQEAgTlNEaWN0aW9uYXJ5ICpIVE1MQ29udmVydGVyOjpjb21w
dXRlZEF0dHJpYnV0ZXNGb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgICAgIFN0cmlu
ZyB0ZXh0QWxpZ24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxvY2tFbGVt
ZW50LCBDU1NQcm9wZXJ0eVRleHRBbGlnbik7CiAgICAgICAgIGlmICh0ZXh0QWxpZ24ubGVuZ3Ro
KCkpIHsKICAgICAgICAgICAgIC8vIFdlYktpdCBjYW4gcmV0dXJuIC1raHRtbC1sZWZ0LCAta2h0
bWwtcmlnaHQsIC1raHRtbC1jZW50ZXIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKICAgICAgICAgICAgIGlmICh0ZXh0QWxpZ24uZW5kc1dpdGgoImxlZnQiKSkKICAgICAgICAg
ICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVudExlZnRd
OwogICAgICAgICAgICAgZWxzZSBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJyaWdodCIpKQpAQCAt
MTIyMCw3ICsxMjE1LDYgQEAgTlNEaWN0aW9uYXJ5ICpIVE1MQ29udmVydGVyOjpjb21wdXRlZEF0
dHJpYnV0ZXNGb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgICAgICAgICAgICAgW3Bh
cmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRDZW50ZXJdOwogICAgICAg
ICAgICAgZWxzZSBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJqdXN0aWZ5IikpCiAgICAgICAgICAg
ICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAKICAgICAgICAg
U3RyaW5nIGRpcmVjdGlvbiA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGNvcmVCbG9j
a0VsZW1lbnQsIENTU1Byb3BlcnR5RGlyZWN0aW9uKTsKQEAgLTE4NTEsMTggKzE4NDUsMTIgQEAg
Qk9PTCBIVE1MQ29udmVydGVyOjpfcHJvY2Vzc0VsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgTlNJ
bnRlZ2VyIGRlcHRoKQogICAgIGVsc2UgewogICAgICAgICBTdHJpbmcgYmlkaSA9IF9jYWNoZXMt
PnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQsIENTU1Byb3BlcnR5VW5pY29kZUJpZGkpOwog
ICAgICAgICBpZiAoYmlkaSA9PSAiZW1iZWQiKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TVGV4dFdyaXRpbmdEaXJl
Y3Rpb25FbWJlZGRpbmc7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAg
ICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVkZGluZzsKICAgICAgICAg
ICAgIGlmIChfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0
eURpcmVjdGlvbikgPT0gInJ0bCIpCiAgICAgICAgICAgICAgICAgdmFsIHw9IE5TV3JpdGluZ0Rp
cmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICAgICAgW193cml0aW5nRGlyZWN0aW9uQXJyYXkg
YWRkT2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnRlZ2VyOnZhbF1dOwogICAg
ICAgICB9IGVsc2UgaWYgKGJpZGkgPT0gImJpZGktb3ZlcnJpZGUiKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIE5TVUludGVnZXIgdmFsID0gTlNXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7
CiAgICAgICAgICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwg
Q1NTUHJvcGVydHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBO
U1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVj
dGlvbkFycmF5IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2
YWxdXTsKQEAgLTIwNjMsMTQgKzIwNTEsNyBAQCB2b2lkIEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJr
ZXJzVG9MaXN0KE5TVGV4dExpc3QgKmxpc3QsIE5TUmFuZ2UgcmFuZ2UpCiAgICAgICAgICAgICAg
ICAgICAgIHRhYiA9IFtbUGxhdGZvcm1OU1RleHRUYWIgYWxsb2NdIGluaXRXaXRoVHlwZTpOU0xl
ZnRUYWJTdG9wVHlwZSBsb2NhdGlvbjptYXJrZXJMb2NhdGlvbl07CiAgICAgICAgICAgICAgICAg
ICAgIFtuZXdTdHlsZSBhZGRUYWJTdG9wOnRhYl07CiAgICAgICAgICAgICAgICAgICAgIFt0YWIg
cmVsZWFzZV07Ci0jaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAgICAgICAgICAgICB0YWIgPSBb
W1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6TlNUZXh0QWxp
Z25tZW50TmF0dXJhbCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9XTsKLSNlbHNl
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICAgICAgICAg
IHRhYiA9IFtbUGxhdGZvcm1OU1RleHRUYWIgYWxsb2NdIGluaXRXaXRoVGV4dEFsaWdubWVudDpO
U05hdHVyYWxUZXh0QWxpZ25tZW50IGxvY2F0aW9uOmxpc3RMb2NhdGlvbiBvcHRpb25zOkB7IH1d
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCiAgICAgICAgICAgICAgICAg
ICAgIFtuZXdTdHlsZSBhZGRUYWJTdG9wOnRhYl07CiAgICAgICAgICAgICAgICAgICAgIFt0YWIg
cmVsZWFzZV07CiAgICAgICAgICAgICAgICAgICAgIFtfYXR0clN0ciBhZGRBdHRyaWJ1dGU6TlNQ
YXJhZ3JhcGhTdHlsZUF0dHJpYnV0ZU5hbWUgdmFsdWU6bmV3U3R5bGUgcmFuZ2U6cGFyYWdyYXBo
UmFuZ2VdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVy
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4
IDMzNWU2MjYxNDhlOTMyOWY1ZGFjZjMzM2MzYzE4Y2M2ODYyNDU2MWQuLmQxZTg5ZTIxNmM0MTM0
ZDE0MTI2NjZlYTIwN2ViNDE4MjFhMDRjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9F
dmVudEhhbmRsZXJNYWMubW0KQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9P
YmpjUnVudGltZUV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICNpbXBv
cnQgPFdlYktpdEFkZGl0aW9ucy9FdmVudEhhbmRsZXJNYWNHZXN0dXJlLmNwcD4KQEAgLTE1MCwx
MCArMTUxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmtleUV2ZW50KE5TRXZlbnQgKmV2ZW50KQog
ewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIEFTU0VSVChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8
IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8fCBbZXZlbnQg
dHlwZV0gPT0gTlNFdmVudFR5cGVLZXlVcCk7CiAKICAgICBDdXJyZW50RXZlbnRTY29wZSBzY29w
ZShldmVudCwgbmlsKTsKICAgICByZXR1cm4ga2V5RXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6
OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCkpOwpAQCAtMjA2LDEyICsyMDQsOSBA
QCBzdGF0aWMgYm9vbCBsYXN0RXZlbnRJc01vdXNlVXAoKQogCiAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOwogICAgIE5TRXZlbnQgKmN1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3Vz
ZURvd24gPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKICAgICByZXR1cm4gRXZlbnRIYW5kbGVyOjpjdXJyZW50TlNFdmVudCgpICE9IGN1
cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24KLSAgICAgICAgJiYgW2N1cnJlbnRFdmVu
dEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNMZWZ0TW91c2VVcAorICAgICAgICAm
JiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNlRG93biB0eXBlXSA9PSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZVVwCiAgICAgICAgICYmIFtjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VE
b3duIHRpbWVzdGFtcF0gPj0gW0V2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSB0aW1lc3Rh
bXBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNzUsNTggKzM3MCw1NSBAQCBib29s
IEV2ZW50SGFuZGxlcjo6cGFzc1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdHMmIGV2ZQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoW2N1cnJl
bnROU0V2ZW50KCkgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91
c2VEcmFnZ2VkOgotICAgICAgICAgICAgLy8gVGhpcyBjaGVjayBpcyBib2d1cyBhbmQgcmVzdWx0
cyBpbiA8cmRhcjovLzY4MTM4MzA+LCBidXQgcmVtb3ZpbmcgaXQgYnJlYWtzIGEgbnVtYmVyIG9m
Ci0gICAgICAgICAgICAvLyBsYXlvdXQgdGVzdHMuCi0gICAgICAgICAgICBpZiAoIW1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAg
ICAgICAgLy8gVGhpcyBjaGVjayBpcyBib2d1cyBhbmQgcmVzdWx0cyBpbiA8cmRhcjovLzY4MTM4
MzA+LCBidXQgcmVtb3ZpbmcgaXQgYnJlYWtzIGEgbnVtYmVyIG9mCisgICAgICAgIC8vIGxheW91
dCB0ZXN0cy4KKyAgICAgICAgaWYgKCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAgICAgICAg
IGlmIChzdWJmcmFtZS0+cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygp
KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHN1YmZyYW1lLT5w
YWdlKCktPmRyYWdDb250cm9sbGVyKCkuZGlkSW5pdGlhdGVEcmFnKCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAjZW5kaWYKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAg
ICAgICAvLyBTaW5jZSB3ZSdyZSBwYXNzaW5nIGluIGN1cnJlbnROU0V2ZW50KCkgaGVyZSwgd2Ug
Y2FuIGNhbGwKLSAgICAgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGlyZWN0bHks
IHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKLSAgICAgICAgICAgIC8vIGN1cnJlbnROU0V2ZW50
KCkgdGhhdCBtb3VzZU1vdmVkKCkgZG9lcyB3b3VsZCBoYXZlIG5vIGVmZmVjdC4KLSAgICAgICAg
ICAgIEFTU0VSVCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOwotICAgICAgICAgICAgbV9zZW5k
aW5nRXZlbnRUb1N1YnZpZXcgPSB0cnVlOwotICAgICAgICAgICAgc3ViZnJhbWUtPmV2ZW50SGFu
ZGxlcigpLmhhbmRsZU1vdXNlTW92ZUV2ZW50KGN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSwg
aG92ZXJlZE5vZGUpOwotICAgICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxz
ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1v
dmVkOgorICAgICAgICAvLyBTaW5jZSB3ZSdyZSBwYXNzaW5nIGluIGN1cnJlbnROU0V2ZW50KCkg
aGVyZSwgd2UgY2FuIGNhbGwKKyAgICAgICAgLy8gaGFuZGxlTW91c2VNb3ZlRXZlbnQoKSBkaXJl
Y3RseSwgc2luY2UgdGhlIHNhdmUvcmVzdG9yZSBvZgorICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCisgICAgICAg
IEFTU0VSVCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVu
dFRvU3VidmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5k
bGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCksIGhvdmVyZWROb2Rl
KTsKKyAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIAotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjogewotICAg
ICAgICAgICAgTm9kZSogbm9kZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsKLSAgICAgICAgICAgIGlm
ICghbm9kZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBhdXRv
KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBpZiAoIWlzPFJlbmRl
cldpZGdldD4ocmVuZGVyZXIpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgICAgIFdpZGdldCogd2lkZ2V0ID0gZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqcmVuZGVyZXIp
LndpZGdldCgpOwotICAgICAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdldC0+aXNGcmFtZVZp
ZXcoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIXBh
c3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KGRvd25jYXN0PFJlbmRlcldpZGdldD4ocmVu
ZGVyZXIpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBtX21v
dXNlRG93bldhc0luU3ViZnJhbWUgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0KLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOiB7Ci0gICAgICAgICAgICBpZiAo
IW1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAg
ICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1l
LT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1N
b3VzZUV2ZW50KCkpOwotICAgICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxz
ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246IHsKKyAgICAgICAgTm9kZSogbm9k
ZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsKKyAgICAgICAgaWYgKCFub2RlKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7
CisgICAgICAgIGlmICghaXM8UmVuZGVyV2lkZ2V0PihyZW5kZXJlcikpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gZG93bmNhc3Q8UmVuZGVyV2lk
Z2V0PigqcmVuZGVyZXIpLndpZGdldCgpOworICAgICAgICBpZiAoIXdpZGdldCB8fCAhd2lkZ2V0
LT5pc0ZyYW1lVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAo
IXBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KGRvd25jYXN0PFJlbmRlcldpZGdldD4o
cmVuZGVyZXIpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbV9tb3VzZURv
d25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDogeworICAgICAgICBpZiAoIW1fbW91c2VEb3du
V2FzSW5TdWJmcmFtZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgQVNTRVJU
KCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2
aWV3ID0gdHJ1ZTsKKyAgICAgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNl
UmVsZWFzZUV2ZW50KGN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSk7CisgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC00NzksMTEgKzQ3MSw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3aWRn
ZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVu
CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxGcmFtZVZpZXc+KHdpZGdldCkuZnJhbWUoKS5ldmVu
dEhhbmRsZXIoKS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogICAgIH0KIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbY3VycmVudE5TRXZlbnQoKSB0
eXBlXSAhPSBOU1Njcm9sbFdoZWVsIHx8IG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KQorICAgIGlm
IChbY3VycmVudE5TRXZlbnQoKSB0eXBlXSAhPSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsIHx8IG1f
c2VuZGluZ0V2ZW50VG9TdWJ2aWV3KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBBU1NFUlQobm9kZVZpZXcpOwogICAgIEFTU0VSVChb
bm9kZVZpZXcgc3VwZXJ2aWV3XSk7CkBAIC01ODYsMTIgKzU3NSwxMCBAQCB2b2lkIEV2ZW50SGFu
ZGxlcjo6c2VuZEZha2VFdmVudHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRp
bmdFdmVudCkKIAogICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CiAgICAgaW50
IGV2ZW50VHlwZSA9IFtpbml0aWF0aW5nRXZlbnQgdHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGV2ZW50VHlwZSA9PSBOU0xlZnRNb3VzZURvd24gfHwg
ZXZlbnRUeXBlID09IE5TS2V5RG93bikgeworICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duIHx8IGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAg
ICAgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gbmlsOwotICAgICAgICBpZiAoZXZlbnRUeXBlID09
IE5TTGVmdE1vdXNlRG93bikgewotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAKKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd24pIHsKKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W2luaXRpYXRpbmdFdmVu
dCBsb2NhdGlvbkluV2luZG93XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ0V2
ZW50IHRpbWVzdGFtcF0KQEAgLTYwMiw4ICs1ODksOCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2Vu
ZEZha2VFdmVudHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTpbaW5p
dGlhdGluZ0V2ZW50IHByZXNzdXJlXV07CiAgICAgICAgIAogICAgICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwotICAgICAgICB9IGVsc2UgeyAvLyBldmVu
dFR5cGUgPT0gTlNLZXlEb3duCi0gICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBrZXlF
dmVudFdpdGhUeXBlOk5TS2V5VXAKKyAgICAgICAgfSBlbHNlIHsgLy8gZXZlbnRUeXBlID09IE5T
RXZlbnRUeXBlS2V5RG93bgorICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5RXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZlbnQgbG9jYXRpb25JbldpbmRvd10K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRp
YXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ0V2ZW50IHRpbWVzdGFtcF0KQEAgLTYxOSw4
ICs2MDYsMTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRU
cmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgcmVhbGx5IGdldCB0aGUgY3VycmVudCBtb2RpZmllckZsYWdzIGhlcmUsIGJ1dCB0aGVy
ZSdzIG5vIHdheSB0byBwb2xsCiAgICAgICAgIC8vIHRoZW0gaW4gQ29jb2EsIGFuZCBiZWNhdXNl
IHRoZSBldmVudCBzdHJlYW0gd2FzIHN0b2xlbiBieSB0aGUgQ2FyYm9uIG1lbnUgY29kZSB3ZSBo
YXZlCiAgICAgICAgIC8vIG5vIHVwLXRvLWRhdGUgY2FjaGUgb2YgdGhlbSBhbnl3aGVyZS4KLSAg
ICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3Zl
ZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1t2aWV3
LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBt
b3VzZUxvY2F0aW9uXV0KKyAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9jYXRpb246W1t2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10KKyNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQor
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv
d051bWJlcjpbaW5pdGlhdGluZ0V2ZW50IHdpbmRvd051bWJlcl0KQEAgLTYyOCw3ICs2MTksNiBA
QCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVudHNBZnRlcldpZGdldFRyYWNraW5nKE5T
RXZlbnQgKmluaXRpYXRpbmdFdmVudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
bGlja0NvdW50OjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNz
dXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBbTlNBcHAgcG9z
dEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KaW5kZXggYTc0ZGE4NWFjZWNh
M2M2Njk4ZGQxNTZhYjMxYTZjOTcxYTM1NGU2ZS4uMTRmZjBlN2M3ZDllNjlkZTRmY2JiMzRjYjFm
YjU4ZTQ4ZjY3MWVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dElu
ZGljYXRvcldpbmRvdy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNh
dG9yV2luZG93Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJRdWFydHpDb3JlU1BJLmgi
CiAjaW1wb3J0ICJUZXh0SW5kaWNhdG9yLmgiCiAjaW1wb3J0ICJXZWJBY3Rpb25EaXNhYmxpbmdD
QUxheWVyRGVsZWdhdGUuaCIKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURl
Y2xhcmF0aW9ucy5oPgogCiBjb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VBbmltYXRpb25EdXJh
dGlvbiA9IDAuMTI7CiBjb25zdCBDRlRpbWVJbnRlcnZhbCBib3VuY2VXaXRoQ3Jvc3NmYWRlQW5p
bWF0aW9uRHVyYXRpb24gPSAwLjM7CkBAIC00NTcsMTMgKzQ1OCwxMCBAQCB2b2lkIFRleHRJbmRp
Y2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRp
Y2F0b3IsIENHUgogICAgIHZlcnRpY2FsTWFyZ2luID0gQ0dDZWlsaW5nKHZlcnRpY2FsTWFyZ2lu
KTsKIAogICAgIENHUmVjdCBjb250ZW50UmVjdCA9IENHUmVjdEluc2V0KHRleHRCb3VuZGluZ1Jl
Y3RJblNjcmVlbkNvb3JkaW5hdGVzLCAtaG9yaXpvbnRhbE1hcmdpbiwgLXZlcnRpY2FsTWFyZ2lu
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU1JlY3Qgd2luZG93
Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JGcmFtZVJlY3Q6TlNSZWN0RnJv
bUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2tdOwor
ICAgIE5TUmVjdCB3aW5kb3dDb250ZW50UmVjdCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZy
YW1lUmVjdDpOU1JlY3RGcm9tQ0dSZWN0KGNvbnRlbnRSZWN0KSBzdHlsZU1hc2s6TlNXaW5kb3dT
dHlsZU1hc2tCb3JkZXJsZXNzXTsKICAgICBOU1JlY3QgaW50ZWdyYWxXaW5kb3dDb250ZW50UmVj
dCA9IE5TSW50ZWdyYWxSZWN0KHdpbmRvd0NvbnRlbnRSZWN0KTsKICAgICBOU1BvaW50IGZyYWN0
aW9uYWxUZXh0T2Zmc2V0ID0gTlNNYWtlUG9pbnQod2luZG93Q29udGVudFJlY3Qub3JpZ2luLngg
LSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54LCB3aW5kb3dDb250ZW50UmVjdC5v
cmlnaW4ueSAtIGludGVncmFsV2luZG93Q29udGVudFJlY3Qub3JpZ2luLnkpOwotICAgIG1fdGV4
dEluZGljYXRvcldpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250
ZW50UmVjdDppbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NX
aW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IGFk
b3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDppbnRlZ3JhbFdpbmRv
d0NvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2lu
ZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgY2xlYXJDb2xvcl1dOwogICAgIFtt
X3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0T3BhcXVlOk5PXTsKICAgICBbbV90ZXh0SW5kaWNhdG9y
V2luZG93IHNldElnbm9yZXNNb3VzZUV2ZW50czpZRVNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQppbmRleCA1YTQ5ZjNhYjNiZDBlNGIyYTIy
ZTQ0ZmI1YzEyYzZjYjg3YjQ1Y2UzLi4yYjQ4NWQ5ZGI1Nzc2OWE5MjE4NjZjMDA1MzZkZjY4MTk0
ODExZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNv
bk1hYy5tbQpAQCAtMjgsNyArMjgsOCBAQAogI2ltcG9ydCAiTG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0LmgiCiAjaW1wb3J0ICJVVElVdGlsaXRpZXMuaCIKICNpbXBvcnQgPHd0Zi9SZWZQdHIu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTgsMTAgKzk5LDcgQEAgdm9pZCBJ
Y29uOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKIAogICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbEN1cnJlbnRHQyhjb250
ZXh0KTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFttX25zSW1h
Z2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW21fbnNJbWFnZSBz
aXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0
ZVNvdXJjZU92ZXIgZnJhY3Rpb246MS4wZl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgW21fbnNJbWFnZSBkcmF3SW5SZWN0OnJlY3QgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAw
LCBbbV9uc0ltYWdlIHNpemVdLndpZHRoLCBbbV9uc0ltYWdlIHNpemVdLmhlaWdodCkgb3BlcmF0
aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQppbmRleCBhNmQ3ODMy
OGU5ZmU2MjdlZjE0YWZjOWMwYmQwZjY2OWViMjU0ZDBjLi43MjhkMzQ0YTk0NTAzNGI5YzdhMjA4
NWY0NTYzZGMxYmI2OTY0ZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvQ3Vyc29yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JN
YWMubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uu
aCIKICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvU3Rk
TGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJh
dGlvbnMuaD4KIAogQGludGVyZmFjZSBXZWJDb3JlQ3Vyc29yQnVuZGxlIDogTlNPYmplY3QgeyB9
CiBAZW5kCkBAIC02NCwxMCArNjUsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TQ3Vyc29yPiBjcmVh
dGVDdXN0b21DdXJzb3IoSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRQb2ludCYgaG90UwogICAgICAg
ICBOU1JlY3QgZnJvbVJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIGltYWdlLT53aWR0aCgpLCBpbWFn
ZS0+aGVpZ2h0KCkpOwogCiAgICAgICAgIFtleHBhbmRlZEltYWdlIGxvY2tGb2N1c107Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFtuc0ltYWdlIGRyYXdJblJl
Y3Q6dG9SZWN0IGZyb21SZWN0OmZyb21SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92
ZXIgZnJhY3Rpb246MV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIFtu
c0ltYWdlIGRyYXdJblJlY3Q6dG9SZWN0IGZyb21SZWN0OmZyb21SZWN0IG9wZXJhdGlvbjpOU0Nv
bXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxXTsKICAgICAgICAgW2V4cGFu
ZGVkSW1hZ2UgdW5sb2NrRm9jdXNdOwogCiAgICAgICAgIHJldHVybiBhZG9wdE5TKFtbTlNDdXJz
b3IgYWxsb2NdIGluaXRXaXRoSW1hZ2U6ZXhwYW5kZWRJbWFnZS5nZXQoKSBob3RTcG90OmhvdFNw
b3RdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCmluZGV4
IDY4MjQ2YmVmYTUyM2VkZmYzYjYwNWM2MDExODcxOWQ0NzI5OGQwOWIuLjBmZjQyMDIwMGNjOGJk
MzQ4N2U0NTZmNzc5MGVkZWU5NWU4ZjU0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0RyYWdJbWFnZU1hYy5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCAiU3RyaW5nVHJ1
bmNhdG9yLmgiCiAjaW1wb3J0ICJUZXh0UnVuLmgiCiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc1LDEwICs3Niw3IEBAIFJldGFpblB0cjxO
U0ltYWdlPiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oUmV0YWluUHRyPE5TSW1hZ2U+IGlt
YWdlLCBmbG9hdCBkCiAgICAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZlZEltYWdlID0gYWRv
cHROUyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTpbaW1hZ2UuZ2V0KCkgc2l6ZV1dKTsK
ICAgICAKICAgICBbZGlzc29sdmVkSW1hZ2UuZ2V0KCkgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UuZ2V0KCkgZHJhd0F0UG9pbnQ6TlNa
ZXJvUG9pbnQgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbaW1hZ2Ugc2l6ZV0ud2lkdGgsIFtp
bWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0ZUNvcHkgZnJhY3Rpb246ZGVs
dGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtpbWFnZS5nZXQoKSBkcmF3
QXRQb2ludDpOU1plcm9Qb2ludCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXpl
XS53aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdodCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVy
YXRpb25Db3B5IGZyYWN0aW9uOmRlbHRhXTsKICAgICBbZGlzc29sdmVkSW1hZ2UuZ2V0KCkgdW5s
b2NrRm9jdXNdOwogCiAgICAgcmV0dXJuIGRpc3NvbHZlZEltYWdlOwpAQCAtMTE5LDEwICsxMTcs
OCBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBp
bWFnZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaQogICAgICAgICAgICAgW2NvY29hVHJhbnNmb3Jt
LmdldCgpIHNldFRyYW5zZm9ybVN0cnVjdDoqKE5TQWZmaW5lVHJhbnNmb3JtU3RydWN0KikmdHJh
bnNmb3JtXTsKICAgICAgICAgICAgIFtjb2NvYVRyYW5zZm9ybS5nZXQoKSBjb25jYXRdOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBbaW1hZ2UtPnNu
YXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6ZGVzdFJlY3QgZnJvbVJlY3Q6TlNNYWtlUmVjdCgw
LCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNv
dXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDpkZXN0UmVjdCBm
cm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgb3Bl
cmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07CisK
ICAgICAgICAgICAgIFtyb3RhdGVkRHJhZ0ltYWdlLmdldCgpIHVubG9ja0ZvY3VzXTsKIAogICAg
ICAgICAgICAgcmV0dXJuIHJvdGF0ZWREcmFnSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0V2ZW50TG9vcE1hYy5tbQppbmRleCBhZjBhMzk5MmI2NmU5ZDZmZmMwMTc3MTI0ODU3
NjI2YTAwNWE1ZTkwLi5iOWNjNTQ1YTk4NDkzNGQ1NDYwZGRiZGY1YmQ0ZWMzZWE3MTU5MjJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KQEAgLTI1LDE2
ICsyNSwxNCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnRMb29wLmgi
CisjaW5jbHVkZSA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBFdmVudExvb3A6OmN5Y2xlKCkKIHsKICAgICBb
TlNBcHAgc2V0V2luZG93c05lZWRVcGRhdGU6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBbTlNBcHAgc2VuZEV2ZW50OltOU0FwcCBuZXh0RXZlbnRNYXRjaGlu
Z01hc2s6TlNBbnlFdmVudE1hc2sgdW50aWxEYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2
YWxTaW5jZU5vdzowLjA1XSBpbk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgZGVxdWV1ZTpZRVNd
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbTlNBcHAgc2VuZEV2ZW50OltO
U0FwcCBuZXh0RXZlbnRNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tBbnkgdW50aWxEYXRlOltOU0Rh
dGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzowLjA1XSBpbk1vZGU6TlNEZWZhdWx0UnVu
TG9vcE1vZGUgZGVxdWV1ZTpZRVNdXTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCBhNWRmMzQ3
NGMzMTFjNmE3NTYxZDdmNGQ0NDU1MzE0YWEwNGQwMDcwLi4xYzRlM2MxOTgwMzFjZmZhNmZhOWI2
NjUyNzFhYmZhNDczMmQ3NjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGFzdGVib2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFz
dGVib2FyZE1hYy5tbQpAQCAtNTUsNiArNTUsNyBAQAogI2ltcG9ydCAibWFya3VwLmgiCiAjaW1w
b3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1w
b3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbXBvcnQgPHd0Zi91bmljb2RlL0NoYXJhY3Rl
ck5hbWVzLmg+CiAKQEAgLTY1MywxMSArNjU0LDggQEAgdm9pZCBQYXN0ZWJvYXJkOjpzZXREcmFn
SW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRQb2ludCYgbG9jYXRpb24pCiAgICAg
Ly8gSGFjazogV2UgbXVzdCBwb3N0IGFuIGV2ZW50IHRvIHdha2UgdXAgdGhlIE5TRHJhZ01hbmFn
ZXIsIHdoaWNoIGlzIHNpdHRpbmcgaW4gYSBuZXh0RXZlbnQgY2FsbAogICAgIC8vIHVwIHRoZSBz
dGFjayBmcm9tIHVzIGJlY2F1c2UgdGhlIENvcmVGb3VuZGF0aW9uIGRyYWcgbWFuYWdlciBkb2Vz
IG5vdCB1c2UgdGhlIHJ1biBsb29wIGJ5IGl0c2VsZi4KICAgICAvLyBUaGlzIGlzIHRoZSBtb3N0
IGlubm9jdW91cyBldmVudCB0byB1c2UsIHBlciBLcmlzdGVuIEZvcnN0ZXIuCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9uOk5TWmVyb1BvaW50CisgICAg
TlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVN
b3VzZU1vdmVkIGxvY2F0aW9uOk5TWmVyb1BvaW50CiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MCB0
aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNr
Q291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBb
TlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6WUVTXTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
CmluZGV4IGQzNGQ2ZWFlOTQ4ZjdhZmNiYWIzMzAzMTRmZGNiYTc4ZTllNDAwYjguLjBkMmUzMThl
Y2RmYjEzMDQyMzg3N2E3MzJkODJmODY5MTk3Njk3ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTUyLDI3
ICs1MiwyNCBAQCBzdGF0aWMgTlNQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2
ZW50KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQNjRf
XykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAgICBj
YXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgog
I2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAg
ICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJh
Z2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNh
c2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNTY3JvbGxXaGVlbDoKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAgIHJldHVybiBnbG9iYWxQb2ludChbZXZl
bnQgbG9jYXRpb25JbldpbmRvd10sIFtldmVudCB3aW5kb3ddKTsKLSAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIHJldHVybiB7IDAsIDAgfTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6CisgICAgICAgIHJldHVy
biBnbG9iYWxQb2ludChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10sIFtldmVudCB3aW5kb3ddKTsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4geyAwLCAwIH07CiAgICAgfQogfQogCkBAIC04
MCwzMyArNzcsMzAgQEAgc3RhdGljIEludFBvaW50IHBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZl
bnQsIE5TVmlldyAqd2luZG93VmlldykKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewog
I2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBO
U01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBjYXNl
IE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VE
cmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TU2Ny
b2xsV2hlZWw6IHsKLSAgICAgICAgICAgIC8vIE5vdGU6IFRoaXMgd2lsbCBoYXZlIGl0cyBvcmln
aW4gYXQgdGhlIGJvdHRvbSBsZWZ0IG9mIHRoZSB3aW5kb3cgdW5sZXNzIHdpbmRvd1ZpZXcgaXMg
ZmxpcHBlZC4KLSAgICAgICAgICAgIC8vIEluIHRob3NlIGNhc2VzLCB0aGUgWSBjb29yZGluYXRl
IGdldHMgZmxpcHBlZCBieSBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdy4KLSAg
ICAgICAgICAgIE5TUG9pbnQgbG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107Ci0g
ICAgICAgICAgICBpZiAod2luZG93VmlldykKLSAgICAgICAgICAgICAgICBsb2NhdGlvbiA9IFt3
aW5kb3dWaWV3IGNvbnZlcnRQb2ludDpsb2NhdGlvbiBmcm9tVmlldzpuaWxdOwotICAgICAgICAg
ICAgcmV0dXJuIEludFBvaW50KGxvY2F0aW9uKTsKLSAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIEludFBv
aW50KCk7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2
ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVw
OgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
cmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZVNjcm9sbFdoZWVsOiB7CisgICAgICAgIC8vIE5vdGU6IFRoaXMgd2lsbCBoYXZlIGl0
cyBvcmlnaW4gYXQgdGhlIGJvdHRvbSBsZWZ0IG9mIHRoZSB3aW5kb3cgdW5sZXNzIHdpbmRvd1Zp
ZXcgaXMgZmxpcHBlZC4KKyAgICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5h
dGUgZ2V0cyBmbGlwcGVkIGJ5IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93Lgor
ICAgICAgICBOU1BvaW50IGxvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOworICAg
ICAgICBpZiAod2luZG93VmlldykKKyAgICAgICAgICAgIGxvY2F0aW9uID0gW3dpbmRvd1ZpZXcg
Y29udmVydFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07CisgICAgICAgIHJldHVybiBJbnRQ
b2ludChsb2NhdGlvbik7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBJbnRQ
b2ludCgpOwogICAgIH0KIH0KIApAQCAtMTE0LDcyICsxMDgsNjMgQEAgc3RhdGljIE1vdXNlQnV0
dG9uIG1vdXNlQnV0dG9uRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3Vy
ZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6
Ci0gICAgICAgICAgICByZXR1cm4gTGVmdEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmln
aHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gUmlnaHRCdXR0b247Ci0gICAgICAg
IGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIE1pZGRs
ZUJ1dHRvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIHJldHVybiBOb0J1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBMZWZ0QnV0dG9uOworICAg
IGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmln
aHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAg
ICAgcmV0dXJuIFJpZ2h0QnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93
bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5
cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIE1pZGRsZUJ1dHRvbjsKKyAgICBk
ZWZhdWx0OgorICAgICAgICByZXR1cm4gTm9CdXR0b247CiAgICAgfQogfQogCiBzdGF0aWMgUGxh
dGZvcm1FdmVudDo6VHlwZSBtb3VzZUV2ZW50VHlwZUZvckV2ZW50KE5TRXZlbnQqIGV2ZW50KQog
ewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNl
IE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNh
c2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkOwotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAg
ICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246
Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOwotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAg
ICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVu
dDo6TW91c2VSZWxlYXNlZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOwor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgICAg
IHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOworICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2
ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VVcDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CiAg
ICAgfQogfQogCiBzdGF0aWMgaW50IGNsaWNrQ291bnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBO
U0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAg
Y2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VEcmFnZ2VkOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICAgICAg
cmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAg
IHJldHVybiAwOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJh
Z2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdn
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2Vk
OgorICAgICAgICByZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIH0KIApAQCAtNDk3LDI4ICs0ODIsMjggQEAgU3RyaW5nIGtl
eUlkZW50aWZpZXJGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKIHsKICAgICBpZiAoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKSB7CiAgICAgICAgIHN3aXRjaCAoW2V2
ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgICAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCi0g
ICAgICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAgICAgICAgICAgICAgICByZXR1
cm4gU3RyaW5nKCJNZXRhIik7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlIDU3
OiAvLyBDYXBzbG9jawotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0g
ICAgICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAotICAgICAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoIlNoaWZ0Iik7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlIDU4
OiAvLyBMZWZ0IEFsdAotICAgICAgICAgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKLSAgICAgICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0
IEN0cmwKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDb250cm9sIik7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAg
ICAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCisgICAgICAgIGNhc2UgNTU6IC8vIExlZnQg
Q29tbWFuZAorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiTWV0YSIpOworCisgICAgICAgIGNh
c2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDYXBzTG9jayIp
OworCisgICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKKyAgICAgICAgY2FzZSA2MDogLy8g
UmlnaHQgU2hpZnQKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIlNoaWZ0Iik7CisKKyAgICAg
ICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKKyAgICAgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Cisg
ICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJBbHQiKTsKKworICAgICAgICBjYXNlIDU5OiAvLyBM
ZWZ0IEN0cmwKKyAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAorICAgICAgICAgICAgcmV0
dXJuIFN0cmluZygiQ29udHJvbCIpOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwog
ICAgICAgICB9CiAgICAgfQogICAgIApAQCAtNTM0LDQ0ICs1MTksMzggQEAgc3RhdGljIGJvb2wg
aXNLZXlwYWRFdmVudChOU0V2ZW50KiBldmVudCkKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMg
aXMgdGhlIHR5cGUgb2YgZXZlbnQgdGhhdCBoYXMgYSBrZXlDb2RlLgogICAgIHN3aXRjaCAoW2V2
ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAg
IGNhc2UgTlNLZXlEb3duOgotICAgICAgICBjYXNlIE5TS2V5VXA6Ci0gICAgICAgIGNhc2UgTlNG
bGFnc0NoYW5nZWQ6Ci0gICAgICAgICAgICBicmVhazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBj
YXNlIE5TRXZlbnRUeXBlS2V5RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZDoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU051bWVyaWNQ
YWRLZXlNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKICAgICBzd2l0Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBj
YXNlIDcxOiAvLyBDbGVhcgotICAgICAgICBjYXNlIDgxOiAvLyA9Ci0gICAgICAgIGNhc2UgNzU6
IC8vIC8KLSAgICAgICAgY2FzZSA2NzogLy8gKgotICAgICAgICBjYXNlIDc4OiAvLyAtCi0gICAg
ICAgIGNhc2UgNjk6IC8vICsKLSAgICAgICAgY2FzZSA3NjogLy8gRW50ZXIKLSAgICAgICAgY2Fz
ZSA2NTogLy8gLgotICAgICAgICBjYXNlIDgyOiAvLyAwCi0gICAgICAgIGNhc2UgODM6IC8vIDEK
LSAgICAgICAgY2FzZSA4NDogLy8gMgotICAgICAgICBjYXNlIDg1OiAvLyAzCi0gICAgICAgIGNh
c2UgODY6IC8vIDQKLSAgICAgICAgY2FzZSA4NzogLy8gNQotICAgICAgICBjYXNlIDg4OiAvLyA2
Ci0gICAgICAgIGNhc2UgODk6IC8vIDcKLSAgICAgICAgY2FzZSA5MTogLy8gOAotICAgICAgICBj
YXNlIDkyOiAvLyA5Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgfQorICAgIGNhc2Ug
NzE6IC8vIENsZWFyCisgICAgY2FzZSA4MTogLy8gPQorICAgIGNhc2UgNzU6IC8vIC8KKyAgICBj
YXNlIDY3OiAvLyAqCisgICAgY2FzZSA3ODogLy8gLQorICAgIGNhc2UgNjk6IC8vICsKKyAgICBj
YXNlIDc2OiAvLyBFbnRlcgorICAgIGNhc2UgNjU6IC8vIC4KKyAgICBjYXNlIDgyOiAvLyAwCisg
ICAgY2FzZSA4MzogLy8gMQorICAgIGNhc2UgODQ6IC8vIDIKKyAgICBjYXNlIDg1OiAvLyAzCisg
ICAgY2FzZSA4NjogLy8gNAorICAgIGNhc2UgODc6IC8vIDUKKyAgICBjYXNlIDg4OiAvLyA2Cisg
ICAgY2FzZSA4OTogLy8gNworICAgIGNhc2UgOTE6IC8vIDgKKyAgICBjYXNlIDkyOiAvLyA5Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KICAgICAgCiAgICAgIHJldHVybiBmYWxzZTsKIH0K
QEAgLTU4NSwxMCArNTY0LDcgQEAgaW50IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQoTlNFdmVu
dCogZXZlbnQpCiAgICAgLy8gMi4gS2V5cyBmb3Igd2hpY2ggdGhlcmUgaXMgbm8ga25vd24gTWFj
IHZpcnR1YWwga2V5IGNvZGVzLCBsaWtlIFByaW50U2NyZWVuLgogICAgIC8vIDMuIENlcnRhaW4g
cHVuY3R1YXRpb24ga2V5cy4gT24gV2luZG93cywgdGhlc2UgYXJlIGFsc28gcmVtYXBwZWQgZGVw
ZW5kaW5nIG9uIGN1cnJlbnQga2V5Ym9hcmQgbGF5b3V0LAogICAgIC8vICAgIGJ1dCBzZWUgY29t
bWVudCBpbiB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKCkuCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKCFpc0tleXBhZEV2ZW50KGV2ZW50KSAmJiAoW2V2ZW50
IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkpIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYm
IChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBO
U0V2ZW50VHlwZUtleVVwKSkgewogICAgICAgICAvLyBDbWQgc3dpdGNoZXMgUm9tYW4gbGV0dGVy
cyBmb3IgRHZvcmFrLVFXRVJUWSBsYXlvdXQsIHNvIHRyeSBtb2RpZmllZCBjaGFyYWN0ZXJzIGZp
cnN0LgogICAgICAgICBOU1N0cmluZyogcyA9IFtldmVudCBjaGFyYWN0ZXJzXTsKICAgICAgICAg
Y29kZSA9IFtzIGxlbmd0aF0gPiAwID8gd2luZG93c0tleUNvZGVGb3JDaGFyQ29kZShbcyBjaGFy
YWN0ZXJBdEluZGV4OjBdKSA6IDA7CkBAIC02NDYsMzUgKzYyMiwzMiBAQCBkb3VibGUgZXZlbnRU
aW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZlbnQpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkKLSAgICAg
ICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0tleVVwOworICAgIGlmIChbZXZlbnQgdHlwZV0g
IT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCisgICAgICAgIHJldHVybiBbZXZlbnQgdHlwZV0g
PT0gTlNFdmVudFR5cGVLZXlVcDsKICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBmYWlscyBpZiB0
aGUgdXNlciBwcmVzc2VzIGJvdGggU2hpZnQga2V5cyBhdCBvbmNlLCBmb3IgZXhhbXBsZToKICAg
ICAvLyB3ZSB0cmVhdCByZWxlYXNpbmcgb25lIG9mIHRoZW0gYXMga2V5RG93bi4KICAgICBzd2l0
Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5k
Ci0gICAgICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgcmV0dXJuIChb
ZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKSA9PSAwOwotICAgICAgICAg
ICAgCi0gICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICByZXR1cm4gKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAotICAgICAgICBjYXNlIDYwOiAv
LyBSaWdodCBTaGlmdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU1NoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU4OiAv
LyBMZWZ0IEFsdAotICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgIHJl
dHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSA9PSAwOwot
ICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAgICBjYXNl
IDYyOiAvLyBSaWdodCBDdHJsCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29udHJvbEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2Fz
ZSA2MzogLy8gRnVuY3Rpb24KLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNGdW5jdGlvbktleU1hc2spID09IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAorICAgIGNhc2UgNTU6IC8vIExlZnQg
Q29tbWFuZAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29tbWFuZCk7CisKKyAgICBjYXNlIDU3OiAvLyBDYXBzbG9jaworICAgICAg
ICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fw
c0xvY2spOworCisgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAorICAgIGNhc2UgNjA6IC8vIFJp
Z2h0IFNoaWZ0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZl
bnRNb2RpZmllckZsYWdTaGlmdCk7CisKKyAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAorICAgIGNh
c2UgNjE6IC8vIFJpZ2h0IEFsdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKTsKKworICAgIGNhc2UgNTk6IC8vIExlZnQg
Q3RybAorICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpOworCisgICAgY2Fz
ZSA2MzogLy8gRnVuY3Rpb24KKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNl
OwogfQpAQCAtODE4LDEwICs3OTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fa2V5ID0ga2V5Rm9y
S2V5RXZlbnQoZXZlbnQpOwogICAgICAgICBtX2NvZGUgPSBjb2RlRm9yS2V5RXZlbnQoZXZlbnQp
OwogICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9IHdpbmRvd3NLZXlDb2RlRm9yS2V5
RXZlbnQoZXZlbnQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBtX2F1dG9SZXBlYXQgPSBbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQgJiYgW2V2ZW50
IGlzQVJlcGVhdF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIG1fYXV0
b1JlcGVhdCA9IFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCAmJiBbZXZl
bnQgaXNBUmVwZWF0XTsKICAgICAgICAgbV9pc0tleXBhZCA9IGlzS2V5cGFkRXZlbnQoZXZlbnQp
OwogICAgICAgICBtX2lzU3lzdGVtS2V5ID0gZmFsc2U7IC8vIFN5c3RlbUtleSBpcyBhbHdheXMg
ZmFsc2Ugb24gdGhlIE1hYy4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IDkxY2JlZGQwY2RhMDcwNjViM2JmM2YxNzAxNThmMWQ2
Mjc3MzE4M2YuLjY0ZDg1NGE4ZTg0Yzg2MmE5MGFiZDQ1NzVjZTYzZWJlZTRkMmVlMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAg
LTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgor
I2luY2x1ZGUgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAv
LyBGSVhNRTogVGhlcmUgYXJlIHJlcGFpbnRpbmcgcHJvYmxlbXMgZHVlIHRvIEFxdWEgc2Nyb2xs
IGJhciBidXR0b25zJyB2aXN1YWwgb3ZlcmZsb3cuCiAKQEAgLTEzOSwxOCArMTQwLDE1IEBAIHN0
YXRpYyBTY3JvbGxiYXJCdXR0b25zUGxhY2VtZW50IGdCdXR0b25QbGFjZW1lbnQgPSBTY3JvbGxi
YXJCdXR0b25zRG91YmxlRW5kOwogCiBzdGF0aWMgTlNDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250
cm9sU2l6ZVRvTlNDb250cm9sU2l6ZShTY3JvbGxiYXJDb250cm9sU2l6ZSBjb250cm9sU2l6ZSkK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKGNvbnRy
b2xTaXplKSB7CiAgICAgY2FzZSBSZWd1bGFyU2Nyb2xsYmFyOgotICAgICAgICByZXR1cm4gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsK
ICAgICBjYXNlIFNtYWxsU2Nyb2xsYmFyOgotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xT
aXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOwogICAgIH0KIAogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3Vs
YXI7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OmRpZENyZWF0ZVNjcm9sbGVySW1wKFNj
cm9sbGJhciYgc2Nyb2xsYmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1t
CmluZGV4IDAyNDcyYzlhNjkwOGM2ZmRiMDM4MjgxZmFhYTgzOGRmYjUxNWU0ZDUuLmIxMDA0MWI1
ZWIxNzJmNDM3MmM0MDA1NWIxNjk5N2MxMzk0YzIzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvVGhlbWVNYWMubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgPHd0Zi9CbG9ja09i
akNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiBzdGF0aWMgTlNSZWN0IGZvY3VzUmluZ0NsaXBSZWN0Owogc3Rh
dGljIEJPT0wgdGhlbWVXaW5kb3dIYXNLZXlBcHBlYXJhbmNlOwpAQCAtNjcsMTEgKzY4LDggQEAg
c3RhdGljIEJPT0wgdGhlbWVXaW5kb3dIYXNLZXlBcHBlYXJhbmNlOwogewogICAgIC8vIFVzaW5n
IGRlZmVyOllFUyBwcmV2ZW50cyB1cyBmcm9tIHdhc3RpbmcgYW55IHdpbmRvdyBzZXJ2ZXIgcmVz
b3VyY2VzIGZvciB0aGlzIHdpbmRvdywgc2luY2Ugd2UncmUgbm90IGFjdHVhbGx5CiAgICAgLy8g
Z29pbmcgdG8gZHJhdyBpbnRvIGl0LiBUaGUgb3RoZXIgYXJndW1lbnRzIG1hdGNoIHdoYXQgeW91
IGdldCB3aGVuIGNhbGxpbmcgLVtOU1dpbmRvdyBpbml0XS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICAgICBzdGF0aWMgV2ViQ29yZVRoZW1lV2luZG93ICp3aW5kb3cgPSBb
W1dlYkNvcmVUaGVtZVdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0
KDEwMCwgMTAwLCAxMDAsIDEwMCkKLSAgICAgICAgc3R5bGVNYXNrOk5TVGl0bGVkV2luZG93TWFz
ayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrVGl0
bGVkIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwogICAgIHJldHVy
biB3aW5kb3c7CiB9CiAKQEAgLTE0NCwxNSArMTQyLDEyIEBAIFRoZW1lKiBwbGF0Zm9ybVRoZW1l
KCkKIAogc3RhdGljIE5TQ29udHJvbFNpemUgY29udHJvbFNpemVGb3JGb250KGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IGludCBmb250U2l6ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAgICAgaWYgKGZvbnRTaXplID49IDE2
KQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBO
U0NvbnRyb2xTaXplUmVndWxhcjsKICAgICBpZiAoZm9udFNpemUgPj0gMTEpCi0gICAgICAgIHJl
dHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6
ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIExlbmd0
aFNpemUgc2l6ZUZyb21OU0NvbnRyb2xTaXplKE5TQ29udHJvbFNpemUgbnNDb250cm9sU2l6ZSwg
Y29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgY29uc3Qgc3Rk
OjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMpCkBAIC0xNzUsMTYgKzE3MCwxMyBAQCBzdGF0aWMg
TGVuZ3RoU2l6ZSBzaXplRnJvbUZvbnQoY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIGNvbnN0IExl
bmd0aFNpemUmIHpvb21lZAogCiBzdGF0aWMgQ29udHJvbFNpemUgY29udHJvbFNpemVGcm9tUGl4
ZWxTaXplKGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzLCBjb25zdCBJbnRTaXpl
JiBtaW5ab29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGlj
X2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21GYWN0
b3IpICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50
PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSkKLSAg
ICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwotICAgIGlmIChtaW5ab29tZWRTaXpl
LndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLndp
ZHRoKCkgKiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5ab29tZWRTaXplLmhlaWdodCgpID49
IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpv
b21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJldHVy
biBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBp
ZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250
cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tRmFjdG9yKQorICAgICAgICAmJiBtaW5ab29t
ZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJl
Z3VsYXJdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xT
aXplUmVndWxhcjsKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0
PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0aCgpICogem9vbUZhY3RvcikKKyAg
ICAgICAgJiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVz
W05TQ29udHJvbFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSkKKyAgICAgICAgcmV0
dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9
CiAKIHN0YXRpYyB2b2lkIHNldENvbnRyb2xTaXplKE5TQ2VsbCogY2VsbCwgY29uc3Qgc3RkOjph
cnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNpemUmIG1pblpvb21lZFNpemUsIGZs
b2F0IHpvb21GYWN0b3IpCkBAIC00ODAsMTAgKzQ3Miw3IEBAIHN0YXRpYyB2b2lkIHNldFVwQnV0
dG9uQ2VsbChOU0J1dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IENvbnRy
b2xTCiB7CiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUgYmFzZWQgb2ZmIHRoZSByZWN0YW5n
bGUgd2UncmUgcGFpbnRpbmcgaW50by4KICAgICBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+
JiBzaXplcyA9IGJ1dHRvblNpemVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRTaXplLmhlaWdo
dCgpID4gYnV0dG9uU2l6ZXMoKVtOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKHBhcnQgPT0g
U3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRTaXplLmhlaWdodCgpID4gYnV0dG9uU2l6ZXMoKVtO
U0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7CiAgICAgICAgIC8v
IFVzZSB0aGUgc3F1YXJlIGJ1dHRvbgogICAgICAgICBpZiAoW2NlbGwgYmV6ZWxTdHlsZV0gIT0g
TlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZSkKICAgICAgICAgICAgIFtjZWxsIHNldEJlemVs
U3R5bGU6TlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZV07CkBAIC01NzksMTUgKzU2OCwxMiBA
QCBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc3RlcHBlclNpemVzKCkKIC8v
IHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNzIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcgdGV4dCBm
aWVsZCBoZWlnaHQsCiBzdGF0aWMgTlNDb250cm9sU2l6ZSBzdGVwcGVyQ29udHJvbFNpemVGb3JG
b250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAgICAgaWYg
KGZvbnRTaXplID49IDE4KQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7Cisg
ICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICBpZiAoZm9udFNpemUgPj0g
MTMpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWlu
aUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICByZXR1
cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0K
IAogc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpv
b21GYWN0b3IsIFNjcm9sbFZpZXcqKQpAQCAtNjAwLDE1ICs1ODYsMTIgQEAgc3RhdGljIHZvaWQg
cGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdAogICAgIGRyYXdJbmZvLnN0YXRlID0gY29udmVydENvbnRyb2xTdGF0ZXNUb1Ro
ZW1lRHJhd1N0YXRlKGtUaGVtZUluY0RlY0J1dHRvbiwgc3RhdGVzKTsKICAgICBkcmF3SW5mby5h
ZG9ybm1lbnQgPSBrVGhlbWVBZG9ybm1lbnREZWZhdWx0OwogICAgIENvbnRyb2xTaXplIGNvbnRy
b2xTaXplID0gY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKHN0ZXBwZXJTaXplcygpLCBJbnRTaXpl
KHpvb21lZFJlY3Quc2l6ZSgpKSwgem9vbUZhY3Rvcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xTaXplID09IE5TU21hbGxDb250cm9sU2l6ZSkK
KyAgICBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZVNtYWxsKQogICAgICAgICBkcmF3
SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uU21hbGw7Ci0gICAgZWxzZSBpZiAoY29udHJv
bFNpemUgPT0gTlNNaW5pQ29udHJvbFNpemUpCisgICAgZWxzZSBpZiAoY29udHJvbFNpemUgPT0g
TlNDb250cm9sU2l6ZU1pbmkpCiAgICAgICAgIGRyYXdJbmZvLmtpbmQgPSBrVGhlbWVJbmNEZWNC
dXR0b25NaW5pOwogICAgIGVsc2UKICAgICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVtZUluY0Rl
Y0J1dHRvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIEludFJlY3QgcmVj
dCh6b29tZWRSZWN0KTsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIo
Y29udGV4dCk7CkBAIC03NDksMTIgKzczMiw5IEBAIExlbmd0aFNpemUgVGhlbWVNYWM6Om1pbmlt
dW1Db250cm9sU2l6ZShDb250cm9sUGFydCBwYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9uCiAg
ICAgICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBMZW5ndGhTaXplKExl
bmd0aCgwLCBGaXhlZCksIExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KDE1ICogem9vbUZhY3Rvciks
IEZpeGVkKSk7CiAgICAgICAgIGNhc2UgSW5uZXJTcGluQnV0dG9uUGFydDp7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBJbnRTaXplIGJhc2UgPSBzdGVw
cGVyU2l6ZXMoKVtOU01pbmlDb250cm9sU2l6ZV07CisgICAgICAgICAgICBJbnRTaXplIGJhc2Ug
PSBzdGVwcGVyU2l6ZXMoKVtOU0NvbnRyb2xTaXplTWluaV07CiAgICAgICAgICAgICByZXR1cm4g
TGVuZ3RoU2l6ZShMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihiYXNlLndpZHRoKCkgKiB6b29tRmFj
dG9yKSwgRml4ZWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoKHN0YXRp
Y19jYXN0PGludD4oYmFzZS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpLCBGaXhlZCkpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICByZXR1cm4gVGhlbWU6Om1pbmltdW1Db250cm9sU2l6ZShwYXJ0LCBmb250LCB6b29t
RmFjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRl
b0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggZDNi
OWVlOThkZjk0MjBjY2Q3MTE2YjA0MDM1NjM4M2NmYzc0NmY5MC4uYjQ4NjA2Y2I1YTc0NGQ4NzBi
ODYxOTM0MzY2Mjg5OGJhOWZmNGVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRy
b2xsZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvQ29yZUdyYXBoaWNz
U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxWaWRlb0VsZW1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNzMs
MTAgKzc0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAtIChpZClpbml0V2l0aENvbnRl
bnRSZWN0OihOU1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihOU1VJbnRlZ2VyKWFTdHlsZSBi
YWNraW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlwZSBkZWZlcjooQk9PTClmbGFn
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGFTdHlsZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRS
ZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6YnVmZmVyaW5nVHlw
ZSBkZWZlcjpmbGFnXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBzZWxmID0g
W3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107CiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC0xMjIsMTUgKzEyMCwxMiBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogLSAoQk9PTClwZXJmb3JtS2V5RXF1aXZhbGVu
dDooTlNFdmVudCAqKWV2ZW50CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CiAgICAgLy8gQmxvY2sgYWxsIGNvbW1hbmQga2V5IGV2ZW50cyB3aGlsZSB0aGUgZnVsbHNjcmVl
biB3aW5kb3cgaXMgdXAuCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCisgICAg
aWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24pCiAgICAgICAgIHJldHVybiBO
TzsKICAgICAKLSAgICBpZiAoIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlN
YXNrKSkKKyAgICBpZiAoIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29tbWFuZCkpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKICAgICByZXR1cm4gWUVTOwogfQogCkBAIC0xNDUsMTEgKzE0MCw3IEBAIHN0YXRpYyBj
b25zdCBOU1RpbWVJbnRlcnZhbCBIVURXaW5kb3dGYWRlT3V0RGVsYXkgPSAzOwogCiAtIChpZClp
bml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNXaW5kb3cg
KndpbmRvdyA9IFtbV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGFsbG9jXSBpbml0V2l0aENv
bnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFz
ayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYlZpZGVvRnVsbHNj
cmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAs
IHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0Jv
cmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBz
ZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dpbmRvdyBzZXREZWxl
Z2F0ZTpzZWxmXTsKICAgICBbd2luZG93IHJlbGVhc2VdOwpAQCAtMTg4LDIwICsxNzksMTcgQEAg
c3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIEhVRFdpbmRvd0ZhZGVPdXREZWxheSA9IDM7CiAg
ICAgICAgICAgICBjYXNlICcgJzoKICAgICAgICAgICAgICAgICBbc2VsZiB0b2dnbGVQbGF5aW5n
Om5pbF07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgogICAgICAgICAgICAgY2FzZSBOU1VwQXJyb3dGdW5jdGlvbktleToKLSAgICAg
ICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNr
KQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzZXRWb2x1bWU6W3Nl
bGYgbWF4Vm9sdW1lXV07CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAg
ICBbc2VsZiBpbmNyZW1lbnRWb2x1bWVdOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToKLSAgICAgICAgICAgICAgICBpZiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKQorICAgICAgICAgICAg
ICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9u
KQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzZXRWb2x1bWU6MF07CiAgICAgICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBkZWNyZW1lbnRWb2x1bWVdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNzgsMTcgKzM2Niwx
MSBAQCBzdGF0aWMgTlNUZXh0RmllbGQgKmNyZWF0ZVRpbWVUZXh0RmllbGQoTlNSZWN0IGZyYW1l
KQogICAgIFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Ol90aW1lbGluZV07CiAKICAgICBfZWxhcHNl
ZFRpbWVUZXh0ID0gY3JlYXRlVGltZVRleHRGaWVsZChOU01ha2VSZWN0KHRpbWVUZXh0RmllbGRI
b3Jpem9udGFsTWFyZ2luLCB0aW1lbGluZUJvdHRvbU1hcmdpbiwgdGltZVRleHRGaWVsZFdpZHRo
LCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgW19lbGFwc2VkVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TTGVmdFRleHRBbGlnbm1l
bnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtfZWxhcHNlZFRpbWVUZXh0
IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0XTsKICAgICBbY29udGVudFZpZXcgYWRk
U3VidmlldzpfZWxhcHNlZFRpbWVUZXh0XTsKIAogICAgIF9yZW1haW5pbmdUaW1lVGV4dCA9IGNy
ZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh3aW5kb3dXaWR0aCAtIHRpbWVUZXh0RmllbGRI
b3Jpem9udGFsTWFyZ2luIC0gdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lbGluZUJvdHRvbU1hcmdp
biwgdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW19yZW1haW5pbmdUaW1lVGV4dCBzZXRBbGln
bm1lbnQ6TlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVudFJp
Z2h0XTsKICAgICBbY29udGVudFZpZXcgYWRkU3VidmlldzpfcmVtYWluaW5nVGltZVRleHRdOwog
CiAgICAgW3dpbmRvdyByZWNhbGN1bGF0ZUtleVZpZXdMb29wXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tCmluZGV4IDQ1OThhMDNlZDJm
YTMyMTUwZTY0YWY5Y2JiNjQ1OTk0NjlmZGRmNzcuLjdkZTVlYjUzN2M3ZmEwMjM1MjJiY2VmNjgz
MzIzYjI1ODRlY2M1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9X
ZWJXaW5kb3dBbmltYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YldpbmRvd0FuaW1hdGlvbi5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0
Zi9NYXRoRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNs
YXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTM4LDEwICszOSw3
IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHNsb3dNb3Rpb25GYWN0b3IgPSAxMDsKIAogc3RhdGlj
IE5TVGltZUludGVydmFsIFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKE5T
VGltZUludGVydmFsIGR1cmF0aW9uKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYg
TlNTaGlmdEtleU1hc2spID8gZHVyYXRpb24gKiBzbG93TW90aW9uRmFjdG9yIDogZHVyYXRpb247
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIChbW05TQXBwIGN1cnJl
bnRFdmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpID8gZHVy
YXRpb24gKiBzbG93TW90aW9uRmFjdG9yIDogZHVyYXRpb247CiB9CiAKIHN0YXRpYyBOU1JlY3Qg
c2NhbGVkUmVjdChOU1JlY3QgX2luaXRpYWxGcmFtZSwgTlNSZWN0IF9maW5hbEZyYW1lLCBDR0Zs
b2F0IGZhY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpp
bmRleCAzZWRkYzAzZTRkOGU5ZjYzNTE3YzUyNzFmMjAxYjU2NzgyMmI5MDI4Li44NTc2NDIzNTIz
YTkwYzhhNTI1MTgwNTRhZDkyYjUxNDRmNDE5Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC04MSw2ICs4MSw3IEBACiAjaW1wb3J0IDxDYXJib24v
Q2FyYm9uLmg+CiAjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgogI2ltcG9ydCA8bWF0aC5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBF
TkFCTEUoTUVURVJfRUxFTUVOVCkKICNpbXBvcnQgIlJlbmRlck1ldGVyLmgiCkBAIC0zNzksMjIg
KzM4MCwxMyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjp1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVz
Y3JpcHRpb24oQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBGbwogICAgICAgICAgICAgZm9udE5hbWUg
PSBBdG9taWNTdHJpbmcoIi1hcHBsZS1zdGF0dXMtYmFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1
ZVdlYmtpdE1pbmlDb250cm9sOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3Rl
bUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNNaW5pQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRP
ZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVN
aW5pXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFNt
YWxsQ29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAg
ICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpb
TlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXV07
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENvbnRyb2w6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU1JlZ3VsYXJDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5
c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVJlZ3VsYXJdXTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZm9udCA9IFtOU0Zv
bnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplXV07CkBAIC03NzcsMzAg
Kzc2OSwyNCBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU3VwcG9ydHNUaW50cyhjb25z
dCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1lTWFjOjpj
b250cm9sU2l6ZUZvckZvbnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAogewogICAg
IGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCiAgICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1cm4gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsK
ICAgICBpZiAoZm9udFNpemUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNp
emU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBO
U0NvbnRyb2xTaXplTWluaTsKIH0KIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29u
dHJvbFNpemVGb3JDZWxsKE5TQ2VsbCosIGNvbnN0IEludFNpemUqIHNpemVzLCBjb25zdCBJbnRT
aXplJiBtaW5TaXplLCBmbG9hdCB6b29tTGV2ZWwpIGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxldmVsKQot
ICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNS
ZWd1bGFyQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUxldmVsKSkKLSAgICAgICAgcmV0dXJu
IE5TUmVndWxhckNvbnRyb2xTaXplOworICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0gc3RhdGlj
X2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0ud2lkdGgoKSAqIHpvb21MZXZl
bCkKKyAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVz
W05TQ29udHJvbFNpemVSZWd1bGFyXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCisgICAgICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIAotICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0g
c3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29t
TGV2ZWwpCi0gICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50Pihz
aXplc1tOU1NtYWxsQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUxldmVsKSkKLSAgICAgICAg
cmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0
YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0aCgpICogem9vbUxl
dmVsKQorICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6
ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCisgICAgICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVN
aW5pOwogfQogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjpzZXRDb250cm9sU2l6ZShOU0NlbGwqIGNl
bGwsIGNvbnN0IEludFNpemUqIHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5TaXplLCBmbG9hdCB6
b29tTGV2ZWwpCkBAIC04NTcsMTUgKzg0MywxMiBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjpzZXRG
b250RnJvbUNvbnRyb2xTaXplKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYgc3R5bGUsCiAK
IE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yU3lzdGVtRm9udChj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCiAgICAgaW50IGZvbnRTaXplID0gc3R5bGUuZm9udFNpemUoKTsKLSAgICBp
ZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TUmVn
dWxhckNvbnRyb2xTaXplXSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwot
ICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6
TlNTbWFsbENvbnRyb2xTaXplXSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsK
LSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU0NvbnRyb2xTaXplUmVndWxhcl0pCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXpl
UmVndWxhcjsKKyAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNv
bnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF0pCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xT
aXplU21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBib29sIFJlbmRl
clRoZW1lTWFjOjpwYWludFRleHRGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmIG8sIGNvbnN0IFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QmIHIpCkBAIC0xMTQ3LDEwICsxMTMw
LDcgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRQcm9ncmVzc0Jhcihjb25zdCBSZW5kZXJP
YmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGEKICAgICBjb25zdCBhdXRvJiByZW5kZXJQcm9n
cmVzcyA9IGRvd25jYXN0PFJlbmRlclByb2dyZXNzPihyZW5kZXJPYmplY3QpOwogICAgIEhJVGhl
bWVUcmFja0RyYXdJbmZvIHRyYWNrSW5mbzsKICAgICB0cmFja0luZm8udmVyc2lvbiA9IDA7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xTaXplID09
IE5TUmVndWxhckNvbnRyb2xTaXplKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IGlmIChjb250cm9sU2l6ZSA9PSBOU0NvbnRyb2xTaXplUmVndWxhcikKICAgICAgICAgdHJhY2tJ
bmZvLmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZUxhcmdlSW5k
ZXRlcm1pbmF0ZUJhciA6IGtUaGVtZUxhcmdlUHJvZ3Jlc3NCYXI7CiAgICAgZWxzZQogICAgICAg
ICB0cmFja0luZm8ua2luZCA9IHJlbmRlclByb2dyZXNzLnBvc2l0aW9uKCkgPCAwID8ga1RoZW1l
TWVkaXVtSW5kZXRlcm1pbmF0ZUJhciA6IGtUaGVtZU1lZGl1bVByb2dyZXNzQmFyOwpAQCAtMTQz
OCwxNSArMTQxOCwxMiBAQCBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZSBSZW5kZXJUaGVt
ZU1hYzo6cG9wdXBNZW51U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYgcwogICAgIE5TUG9wVXBCdXR0
b25DZWxsKiBwb3B1cEJ1dHRvbiA9IHRoaXMtPnBvcHVwQnV0dG9uKCk7CiAgICAgTlNDb250cm9s
U2l6ZSBzaXplID0gY29udHJvbFNpemVGb3JDZWxsKHBvcHVwQnV0dG9uLCBwb3B1cEJ1dHRvblNp
emVzKCksIHJlY3Quc2l6ZSgpLCBzdHlsZS5lZmZlY3RpdmVab29tKCkpOwogICAgIHN3aXRjaCAo
c2l6ZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNS
ZWd1bGFyQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplUmVndWxhcjoKICAgICAg
ICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOwotICAgIGNhc2Ug
TlNTbWFsbENvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVNtYWxsOgogICAgICAg
ICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDsKLSAgICBjYXNlIE5T
TWluaUNvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZU1pbmk6CiAgICAgICAgIHJl
dHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIFBvcHVwTWVudVN0eWxl
OjpQb3B1cE1lbnVTaXplTm9ybWFsOwogICAgIH0KQEAgLTIwNTUsMTIgKzIwMzIsOSBAQCBOU1Ns
aWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwoKSBjb25zdAog
ewogICAgIGlmICghbV9zbGlkZXJUaHVtYkhvcml6b250YWwpIHsKICAgICAgICAgbV9zbGlkZXJU
aHVtYkhvcml6b250YWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0XSk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRlclRodW1i
SG9yaXpvbnRhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TTGluZWFyU2xpZGVyXTsKLSAgICAgICAg
W21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldENvbnRyb2xTaXplOk5TU21hbGxDb250
cm9sU2l6ZV07CisgICAgICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRTbGlk
ZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFttX3NsaWRlclRodW1iSG9yaXpv
bnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplU21hbGxdOwogICAgICAgICBb
bV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Rm9jdXNSaW5nVHlwZTpOU0ZvY3VzUmlu
Z1R5cGVFeHRlcmlvcl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAg
ICAgcmV0dXJuIG1fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpOwpAQCAtMjA3MCwxMSArMjA0
NCw4IEBAIE5TU2xpZGVyQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwo
KSBjb25zdAogewogICAgIGlmICghbV9zbGlkZXJUaHVtYlZlcnRpY2FsKSB7CiAgICAgICAgIG1f
c2xpZGVyVGh1bWJWZXJ0aWNhbCA9IGFkb3B0TlMoW1tOU1NsaWRlckNlbGwgYWxsb2NdIGluaXRd
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW21fc2xpZGVy
VGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TTGluZWFyU2xpZGVyXTsKLSAgICAg
ICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1NtYWxsQ29u
dHJvbFNpemVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBbbV9zbGlk
ZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldFNsaWRlclR5cGU6TlNTbGlkZXJUeXBlTGluZWFyXTsK
KyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU0Nv
bnRyb2xTaXplU21hbGxdOwogICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNl
dEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJpb3JdOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRleCBmMmEz
NTk3M2E3MWUwNjgyNjBhOTFjOTY3ZDI5MDUwZDJlZGU3NjBkLi5hNjlmNmYxZmE1MGE5YTRhZGQ4
NjNmNDc5NWJjMWQ3MTJmMGJhMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJi
b24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24v
Q2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzYsNiArNzYsNyBAQAogI2ltcG9ydCA8cnVudGlt
ZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2lt
cG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1wb3J0ICJX
ZWJOU09iamVjdEV4dHJhcy5oIgpAQCAtMTczLDEzICsxNzQsMTQgQEAgc3RhdGljIE9TU3RhdHVz
IE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFu
ZGxlckNhbGwKIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1hc2suCiAg
ICAgc3R5bGVNYXNrID0gV0tDYXJib25XaW5kb3dNYXNrKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93Q2xvc2VC
b3hBdHRyaWJ1dGUpIHN0eWxlTWFzayB8PSBOU0Nsb3NhYmxlV2luZG93TWFzazsKLSAgICBpZiAo
d2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpIHN0eWxlTWFzayB8
PSBOU1Jlc2l6YWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRv
d0NhbkNvbGxhcHNlKSBzdHlsZU1hc2sgfD0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2s7Ci0g
ICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0hhc1RpdGxlQmFyKSBzdHlsZU1hc2sgfD0g
TlNUaXRsZWRXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
ICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRlKQorICAgICAgICBz
dHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZTsKKyAgICBpZiAod2luZG93QXR0
cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpCisgICAgICAgIHN0eWxlTWFzayB8
PSBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMgJiBr
V2luZG93Q2FuQ29sbGFwc2UpCisgICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFz
a01pbmlhdHVyaXphYmxlOworICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dIYXNUaXRs
ZUJhcikKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVkOwogCiAg
ICAgb3NTdGF0dXMgPSBHZXRXaW5kb3dNb2RhbGl0eShfd2luZG93UmVmLCAmd2luZG93TW9kYWxp
dHksIE5VTEwpOwogICAgIGlmIChvc1N0YXR1cyAhPSBub0VycikgewpAQCAtMzkzLDE4ICszOTUs
MTIgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5k
bGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICAvLyBJZ25vcmUgc29tZSB1bmtub3du
IGV2ZW50IHRoYXQgZ2V0cyBzZW50IHdoZW4gTlNUZXh0Vmlld3MgaW4gcHJpbnRpbmcgYWNjZXNz
b3J5IHZpZXdzIGFyZSBmb2N1c2VkLiAgTS5QLiBOb3RpY2UgLSAxMi83LzAwCiAgICAgQk9PTCBp
Z25vcmVFdmVudCA9IE5POwogICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IFtpbkV2ZW50IHR5
cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5
cGU9PU5TU3lzdGVtRGVmaW5lZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZpbmVkKSB7CiAgICAgICAgIHNo
b3J0IGV2ZW50U3VidHlwZSA9IFtpbkV2ZW50IHN1YnR5cGVdOwotICAgICAgICBpZiAoZXZlbnRT
dWJ0eXBlPT03KSB7CisgICAgICAgIGlmIChldmVudFN1YnR5cGUgPT0gNykgewogICAgICAgICAg
ICAgaWdub3JlRXZlbnQgPSBZRVM7CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24pIHsKICAgICAgICAgLy8gSGFuZGxlIGNvbW1hbmQtc3BhY2UgYXMg
W05TQXBwIHNlbmRFdmVudDpdIGRvZXMuCiAgICAgICAgIGlmIChbTlNJbnB1dENvbnRleHQgcHJv
Y2Vzc0lucHV0S2V5QmluZGluZ3M6aW5FdmVudF0pIHsKICAgICAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SG9zdFByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHkubW0KaW5kZXggZWFkNTkzNjk2ZDRiOWE5NzY2YTNjYmNlMDNlYWQ2ZWFm
ZDA3OTU3OS4uNmQwNmM3MDEwYzUyYjgxZDUzMTUxZTE4NTJkNDE0NDFiOTEyOWQ5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHkubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSWRl
bnRpZmllclJlcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAjaW1w
b3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBleHRlcm4gIkMiIHsKICNpbXBvcnQgIldlYktpdFBs
dWdpbkhvc3QuaCIKQEAgLTIzMCwxMCArMjMxLDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eTo6YmVnaW5Nb2RhbCgpCiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2luZG93KTsKICAg
ICBBU1NFUlQoIW1fYWN0aXZhdGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dl
YlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtl
UmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgbV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0TlMoW1tXZWJQbGFjZWhv
bGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgMSwgMSkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAKICAgICBtX2FjdGl2YXRpb25PYnNl
cnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJG
b3JOYW1lOk5TQXBwbGljYXRpb25XaWxsQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpO
U0FwcCBxdWV1ZTpuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRp
b24gKil7IGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7IH1dOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tCmluZGV4IDFiNGQzYTk2ZmE5YWU3YTE3N2U0NTEyZjQ1NjQxZGFhMjQzN2Q0
YzkuLmFhMGRmNTQyNGE0MjZmZDNhZDc4MzQzNDZjZDdiMmFkNGMyOTU1MzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTY2LDYgKzY2LDcgQEAKICNpbXBvcnQgPHV0aWxpdHk+
CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVk
TGVha0NvdW50ZXIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBleHRlcm4gIkMiIHsK
QEAgLTQ2NSwxNSArNDY2LDEyIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Ojpz
eW50aGV0aWNLZXlEb3duV2l0aENvbW1hbmRNb2RpZmllcihpbnQga2V5Q29kCiB7CiAgICAgTlNE
YXRhICpjaGFyYWN0ZXJzRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczomY2hhcmFjdGVyIGxl
bmd0aDoxXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIF9XS1BI
UGx1Z2luSW5zdGFuY2VLZXlib2FyZEV2ZW50KG1fcGx1Z2luSG9zdFByb3h5LT5wb3J0KCksIG1f
cGx1Z2luSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW05TRGF0ZSB0
aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOUENvY29hRXZlbnRLZXlEb3duLCBOU0NvbW1hbmRLZXlNYXNrLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtleURvd24sIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFtj
aGFyYWN0ZXJzRGF0YSBieXRlc10pKSwgW2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0sIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFtjaGFyYWN0ZXJzRGF0YSBieXRlc10pKSwgW2NoYXJhY3Rl
cnNEYXRhIGxlbmd0aF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZh
bHNlLCBrZXlDb2RlLCBjaGFyYWN0ZXIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
fQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZmxhZ3NDaGFuZ2VkKE5TRXZl
bnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
V2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDM3NjY3MmI2ODY3
MzdjNzczZWRjNmRmNjg0YjI4Nzk4Mjk2NGY1NDEuLmRmYzhjY2E3MjgyNDhhODk2YTgxM2U2Zjc5
MjQyYzA5NDJiMjVjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTUyLDYg
KzUyLDcgQEAKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1
bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNDQzLDEwICs0NDQsNyBAQCBleHRl
cm4gIkMiIHsKIHsKICAgICBpZiAoX2NhY2hlZFNuYXBzaG90KSB7CiAgICAgICAgIE5TUmVjdCBz
b3VyY2VSZWN0ID0geyBOU1plcm9Qb2ludCwgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBzaXplXSB9
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbX2NhY2hlZFNu
YXBzaG90LmdldCgpIGRyYXdJblJlY3Q6W3NlbGYgYm91bmRzXSBmcm9tUmVjdDpzb3VyY2VSZWN0
IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgZHJhd0lu
UmVjdDpbc2VsZiBib3VuZHNdIGZyb21SZWN0OnNvdXJjZVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9z
aXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBl
UGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dl
Yk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KaW5kZXggYTFkMTU5YWY5NGUxNDg5
YTQ4YjA5OTIxMDhkMDNmMzk4MDVmMjk5Ni4uOWM1MjAxZmU2MmQyNjNiZDM1ZWI1ZTcxZDRhMzcw
MWFhYTkxN2U3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbQpAQCAtMzAsNiArMzAs
NyBAQAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0ICJXZWJOZXRz
Y2FwZVBsdWdpblZpZXcuaCIKICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBXZWJOZXRzY2FwZVBsdWdp
bkV2ZW50SGFuZGxlckNvY29hOjpXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hKFdl
Yk5ldHNjYXBlUGx1Z2luVmlldyogcGx1Z2luVmlldykKICAgICA6IFdlYk5ldHNjYXBlUGx1Z2lu
RXZlbnRIYW5kbGVyKHBsdWdpblZpZXcpCkBAIC0xNjEsMTAgKzE2Miw3IEBAIHZvaWQgV2ViTmV0
c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6c3ludGhldGljS2V5RG93bldpdGhDb21tYW5k
TW9kaWZpZXIoaW50CiAgICAgCiAgICAgTlBDb2NvYUV2ZW50IGV2ZW50OwogICAgIGluaXRpYWxp
emVFdmVudCgmZXZlbnQsIE5QQ29jb2FFdmVudEtleURvd24pOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGV2ZW50LmRhdGEua2V5Lm1vZGlmaWVyRmxhZ3MgPSBOU0Nv
bW1hbmRLZXlNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGV2ZW50LmRh
dGEua2V5Lm1vZGlmaWVyRmxhZ3MgPSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKICAgICBl
dmVudC5kYXRhLmtleS5rZXlDb2RlID0ga2V5Q29kZTsKICAgICBldmVudC5kYXRhLmtleS5pc0FS
ZXBlYXQgPSBmYWxzZTsKICAgICBldmVudC5kYXRhLmtleS5jaGFyYWN0ZXJzID0gKE5QTlNTdHJp
bmcgKiljaGFyYWN0ZXJzLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvUG9wdXBNZW51TWFjLm1tCmluZGV4IGM0NjY3MGI0ZDc5ZDhjZTg0ZmJkNDExNThmYjcz
MDgwYWU4MDQ3OWIuLjc5ZjI4ZmI4MmNiN2ZkOTM5Y2QzMzIzNGVjNDdlYzAzOTY2ZWU1MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0K
QEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUG9wdXBNZW51Q2xpZW50Lmg+CiAj
aW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNF
eGNlcHRpb25zLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJh
dGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTkwLDE3ICs5MSwxMSBA
QCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQogICAgICAgICB9CiAKICAgICAgICAgUmV0
YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0eWxlPiBwYXJhZ3JhcGhTdHlsZSA9IGFkb3B0TlMo
W1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNvcHldKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW3BhcmFncmFwaFN0
eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU0xlZnRUZXh0QWxp
Z25tZW50IDogTlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0
aW9uID09IExUUiA/IE5TVGV4dEFsaWdubWVudExlZnQgOiBOU1RleHRBbGlnbm1lbnRSaWdodF07
CiAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uID0gc3R5bGUudGV4
dERpcmVjdGlvbigpID09IExUUiA/IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNX
cml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRC
YXNlV3JpdGluZ0RpcmVjdGlvbjp3cml0aW5nRGlyZWN0aW9uXTsKICAgICAgICAgaWYgKHN0eWxl
Lmhhc1RleHREaXJlY3Rpb25PdmVycmlkZSgpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rp
b25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRp
bmdEaXJlY3Rpb24gKyBOU1RleHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIFJldGFpblB0cjxOU051bWJlcj4gd3Jp
dGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aElu
dGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7CiAg
ICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJheT4gd3JpdGluZ0RpcmVjdGlvbkFycmF5ID0gYWRv
cHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czp3cml0aW5nRGlyZWN0aW9uVmFs
dWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0OndyaXRp
bmdEaXJlY3Rpb25BcnJheS5nZXQoKSBmb3JLZXk6TlNXcml0aW5nRGlyZWN0aW9uQXR0cmlidXRl
TmFtZV07CiAgICAgICAgIH0KQEAgLTIwNiwxOCArMjAxLDE1IEBAIHZvaWQgUG9wdXBNZW51TWFj
OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogCiAgICAg
TlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZTsKICAgICBzd2l0Y2ggKG1fY2xpZW50LT5tZW51U3R5
bGUoKS5tZW51U2l6ZSgpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgY2FzZSBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDoKLSAgICAgICAgY29u
dHJvbFNpemUgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBO
U0NvbnRyb2xTaXplUmVndWxhcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb3B1cE1lbnVT
dHlsZTo6UG9wdXBNZW51U2l6ZVNtYWxsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TU21hbGxD
b250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplU21hbGw7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5p
OgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TTWluaUNvbnRyb2xTaXplOworICAgICAgICBjb250
cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVNaW5pOwogICAgICAgICBicmVhazsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBXS1BvcHVwTWVudShtZW51LCBsb2NhdGlv
biwgcm91bmRmKE5TV2lkdGgocikpLCBkdW1teVZpZXcuZ2V0KCksIGluZGV4LCB0b05TRm9udChm
b250KSwgY29udHJvbFNpemUsICFtX2NsaWVudC0+bWVudVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVh
cmFuY2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDb250ZXh0TWVudUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCmluZGV4IDkxNGQ4ZTA2M2U4ZWIwZmNhOWVhZTlkN2Ji
YmM4MWY2MWI3Yjg4ZDYuLmEzOWI5M2U3N2UyNmE2NDMzYjkyODg4ZjE5MzNhMDk5NTUxNWM2M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRN
ZW51Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50Lm1tCkBAIC02MCw2ICs2MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9VUkwuaD4KICNpbXBv
cnQgPFdlYktpdExlZ2FjeS9ET01Qcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENv
bXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTI2OSwxMCArMjcwLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c2hvd0NvbnRl
eHRNZW51KCkKIAogICAgIE5TVmlldyogdmlldyA9IGZyYW1lVmlldy0+ZG9jdW1lbnRWaWV3KCk7
CiAgICAgSW50UG9pbnQgcG9pbnQgPSBmcmFtZVZpZXctPmNvbnRlbnRzVG9XaW5kb3cocGFnZS0+
Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGl0VGVzdFJlc3VsdCgpLnJvdW5kZWRQb2ludEluSW5u
ZXJOb2RlRnJhbWUoKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
TlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNl
RG93biBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVt
YmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0gY29udGV4dDowIGV2ZW50TnVtYmVyOjAg
Y2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24gbG9jYXRpb246cG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFt
cDowIHdpbmRvd051bWJlcjpbW3ZpZXcgd2luZG93XSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6MCBl
dmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXTsKIAogICAgIC8vIFNob3cgdGhl
IGNvbnRleHR1YWwgbWVudSBmb3IgdGhpcyBldmVudC4KICAgICBib29sIGlzU2VydmljZXNNZW51
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbQppbmRleCAxMTQ3NmEwMzI3NmVkZDk0ZTc1NTUxMzkzMGFiNDYxOWJj
ZWRmOTUzLi4xNjBiMmRmNTc0N2Y1M2FlZGIzNTk2ODgzYjQyYzBmYzlmNDNjMjIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbQpAQCAtMTMwLDYgKzEzMCw3IEBACiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5o
PgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKFBMVUdJTl9IT1NUX1BST0NFU1Mp
ICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtMTU2MSwxNyArMTU2MiwxNCBAQCBO
U0RpY3Rpb25hcnkgKldlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0aW9uYXJ5KGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIGFjdAogI2lmICFQTEFURk9STShJT1MpCiAgICAgY29uc3QgVUlF
dmVudFdpdGhLZXlTdGF0ZSoga2V5U3RhdGVFdmVudCA9IGZpbmRFdmVudFdpdGhLZXlTdGF0ZShj
b25zdF9jYXN0PEV2ZW50Kj4oZXZlbnQpKTsKICAgICBpZiAoa2V5U3RhdGVFdmVudCAmJiBrZXlT
dGF0ZUV2ZW50LT5pc1RydXN0ZWQoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgogICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+Y3RybEtleSgpKQotICAgICAgICAgICAg
bW9kaWZpZXJGbGFncyB8PSBOU0NvbnRyb2xLZXlNYXNrOworICAgICAgICAgICAgbW9kaWZpZXJG
bGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKICAgICAgICAgaWYgKGtleVN0YXRl
RXZlbnQtPmFsdEtleSgpKQotICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0FsdGVybmF0
ZUtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZs
YWdPcHRpb247CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5zaGlmdEtleSgpKQotICAgICAg
ICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU1NoaWZ0S2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlm
aWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogICAgICAgICBpZiAoa2V5U3Rh
dGVFdmVudC0+bWV0YUtleSgpKQotICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0NvbW1h
bmRLZXlNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKICAgICB9CiAjZWxzZQog
ICAgIC8vIE5vIG1vZGlmaWVyIGZsYWdzIG9uIGlPUyByaWdodCBub3cKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQppbmRl
eCA5MDc4N2Q2MjBiMzgxZTUzOGM3YjFhZGRjNzZmMmQyOWM1OTMyMjA5Li43NmIyY2QyY2JmMTBi
MjBhMzk5M2MyZjNmN2I3MTljYmU3YTU4MTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCkBAIC01Myw2ICs1Myw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdh
Y3kvRE9NRXh0ZW5zaW9ucy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogCiBTT0ZUX0xJTktfU1RBR0VEX0ZSQU1FV09SSyhXZWJJ
bnNwZWN0b3JVSSwgUHJpdmF0ZUZyYW1ld29ya3MsIEEpCkBAIC0xOTEsMTAgKzE5Miw3IEBAIHZv
aWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmF0dGFjaEF2YWlsYWJpbGl0eUNoYW5nZWQo
Ym9vbCBhdmFpbGFibGUpCiAKIGJvb2wgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmNhbkF0
dGFjaCgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtb
bV9mcm9udGVuZFdpbmRvd0NvbnRyb2xsZXIgd2luZG93XSBzdHlsZU1hc2tdICYgTlNGdWxsU2Ny
ZWVuV2luZG93TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW1tt
X2Zyb250ZW5kV2luZG93Q29udHJvbGxlciB3aW5kb3ddIHN0eWxlTWFza10gJiBOU1dpbmRvd1N0
eWxlTWFza0Z1bGxTY3JlZW4pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBj
YW5BdHRhY2hXaW5kb3coKTsKQEAgLTQ2NSwxMCArNDYzLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6YXBwZW5kKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBT
dHJpbmcKICAgICBpZiAod2luZG93KQogICAgICAgICByZXR1cm4gd2luZG93OwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNVSW50ZWdlciBzdHlsZU1hc2sgPSBO
U1RpdGxlZFdpbmRvd01hc2sgfCBOU0Nsb3NhYmxlV2luZG93TWFzayB8IE5TTWluaWF0dXJpemFi
bGVXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrIHwgTlNGdWxsU2l6ZUNvbnRlbnRW
aWV3V2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU1VJbnRl
Z2VyIHN0eWxlTWFzayA9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVkIHwgTlNXaW5kb3dTdHlsZU1h
c2tDbG9zYWJsZSB8IE5TV2luZG93U3R5bGVNYXNrTWluaWF0dXJpemFibGUgfCBOU1dpbmRvd1N0
eWxlTWFza1Jlc2l6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVDb250ZW50VmlldzsK
ICAgICB3aW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFr
ZVJlY3QoMCwgMCwgaW5pdGlhbFdpbmRvd1dpZHRoLCBpbml0aWFsV2luZG93SGVpZ2h0KSBzdHls
ZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107
CiAgICAgW3dpbmRvdyBzZXREZWxlZ2F0ZTpzZWxmXTsKICAgICBbd2luZG93IHNldE1pblNpemU6
TlNNYWtlU2l6ZShtaW5pbXVtV2luZG93V2lkdGgsIG1pbmltdW1XaW5kb3dIZWlnaHQpXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0K
aW5kZXggMDJhNzU2Zjc2NzczMTVjNjIyZGQ4MWQ5OWEyOWZhYzNmYjViZjllMi4uZmM1M2QwYzFi
MGFlMjBmODhhYTE1YjYzYzQwN2Y5MDVhZjQwZDgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KQEAgLTMyLDYgKzMyLDggQEAK
IAogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW1wb3J0IDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CisKIAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgIldlYkZyYW1lUHJpdmF0
ZS5oIgpAQCAtOTEsMTAgKzkzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgX2lu
c3BlY3RvckNvbnRyb2xsZXIgPSBpbnNwZWN0b3JDb250cm9sbGVyOwogCiAjaWYgIVBMQVRGT1JN
KElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpbnQgc3R5bGVN
YXNrID0gTlNCb3JkZXJsZXNzV2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBpbnQgc3R5bGVNYXNrID0gTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzOwogICAg
IE5TUmVjdCBjb250ZW50UmVjdCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1lUmVjdDpb
c2VsZiBfY29tcHV0ZUhpZ2hsaWdodFdpbmRvd0ZyYW1lXSBzdHlsZU1hc2s6c3R5bGVNYXNrXTsK
ICAgICBfaGlnaGxpZ2h0V2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3Rv
cmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW19oaWdobGlnaHRXaW5kb3cgc2V0QmFja2dyb3Vu
ZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZVZpZXcubW0KaW5kZXggNWVjMTk3ODVkYTcyOTdiMWEyNDRjNTc2MzIwNzBjNGJkZTk0
NmIwNS4uMzVlMDExYmFmNDBiZDcwODZlZmRmMjhmMDRjM2FiMTc2Yjk4NzQ0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KQEAgLTY2LDYgKzY2LDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZVZpZXcuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVy
ZmFjZS5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQogI2lt
cG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgpAQCAtOTE1LDkgKzkxNiw3IEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywg
Q2xhc3Mgb2JqQ0NsCiAgICAgQk9PTCBjYWxsU3VwZXIgPSBZRVM7CiAgICAgRnJhbWUqIGNvcmVG
cmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIEJPT0wgbWFpbnRhaW5zQmFja0ZvcndhcmRM
aXN0ID0gY29yZUZyYW1lICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlzdCo+KGNvcmVGcmFt
ZS0+cGFnZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+ZW5hYmxlZCgpID8gWUVTIDogTk87
Ci0gICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisKICAgICBjb3VudCA9
IFtjaGFyYWN0ZXJzIGxlbmd0aF07CiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7
ICsraW5kZXgpIHsKICAgICAgICAgc3dpdGNoIChbY2hhcmFjdGVycyBjaGFyYWN0ZXJBdEluZGV4
OmluZGV4XSkgewpAQCAtOTI4LDcgKzkyNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBl
c0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIFRoaXMgb2RkIGJlaGF2aW9yIG1h
dGNoZXMgc29tZSBleGlzdGluZyBicm93c2VycywKICAgICAgICAgICAgICAgICAvLyBpbmNsdWRp
bmcgV2luZG93cyBJRQotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlm
dEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRN
b2RpZmllckZsYWdTaGlmdCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBfZ29Gb3J3YXJk
XTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBf
Z29CYWNrXTsKQEAgLTk0Myw3ICs5NDIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNG
cm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAg
ICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYg
c2Nyb2xsUGFnZVVwOm5pbF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZURvd246bmlsXTsKQEAgLTk4NCw3ICs5ODMsNyBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAq
YWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSBOU1VwQXJyb3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24n
dCBoYW5kbGUgc2hpZnRlZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVy
IGhhdmUgYSBjaGFuY2UuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNT
aGlmdEtleU1hc2sgfCBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmICht
b2RpZmllckZsYWdzICYgKE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmll
ckZsYWdDb250cm9sKSkgewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTk5OCw5ICs5
OTcsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGlj
dGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIHNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudDpuaWxdOwotICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZs
YWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZVVwOm5pbF07
CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Ny
b2xsTGluZVVwOm5pbF07CkBAIC0xMDA5LDcgKzEwMDgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
YWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9i
akNDbAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25BcnJv
d0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVk
IG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4K
LSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5T
Q29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAo
TlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7
CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTAyMyw5ICsxMDIyLDkgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5
cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0Nv
bW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3Jv
bGxUb0VuZE9mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7CiAgICAgICAg
ICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VEb3duOm5pbF07CiAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsTGluZURvd246bmlsXTsK
QEAgLTEwMzQsMTIgKzEwMzMsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNs
YXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNMZWZ0QXJyb3dGdW5jdGlvbktleToK
ICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRlZCBvciBjb250cm9sLWFy
cm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2UuCi0gICAgICAgICAgICAg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBOU0NvbnRyb2xLZXlNYXNr
KSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewogICAgICAgICAgICAg
ICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAvLyBDaGVjayBiYWNrL2ZvcndhcmQgcmVs
YXRlZCBrZXlzLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNDb21tYW5k
S2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYWludGFpbnNC
YWNrRm9yd2FyZExpc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlF
UzsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA1Miw3ICsxMDUxLDcgQEAg
c3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkg
KmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBbc2VsZiBfcGFnZUhvcml6b250YWxseTpZRVNdOwogICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX3Njcm9sbExpbmVI
b3Jpem9udGFsbHk6WUVTXTsKQEAgLTEwNjIsMTIgKzEwNjEsMTIgQEAgc3RhdGljIGlubGluZSB2
b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFz
cyBvYmpDQ2wKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNSaWdo
dEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNo
aWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hh
bmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNr
IHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gQ2hl
Y2sgYmFjay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICghbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAg
LTEwODAsNyArMTA3OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhO
U011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAg
ICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
bikgewogICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX3BhZ2VIb3Jpem9udGFsbHk6Tk9d
OwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAg
W3NlbGYgX3Njcm9sbExpbmVIb3Jpem9udGFsbHk6Tk9dOwpAQCAtMTA5MCw3ICsxMDg5LDYgQEAg
c3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkg
KmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBpZiAoY2FsbFN1cGVy
KSB7CiAgICAgICAgIFtzdXBlciBrZXlEb3duOmV2ZW50XTsKICAgICB9IGVsc2UgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0K
aW5kZXggOWZkOTU2NjE3ZjA3YzZjZjZmNDg1N2NjOWUyMjE0MGIyMTg4YjJlNC4uZjU0MzQxZmRi
YjRlNGQzY2VkOWRlZDE2M2YxODQzMmIwNDZkOWIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCkBAIC00Nyw2ICs0Nyw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYldpbmRvd0FuaW1hdGlvbi5oPgogI2ltcG9ydCA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTg2LDExICs4Nyw4IEBAIHN0YXRpYyBOU1JlY3QgY29udmVy
dFJlY3RUb1NjcmVlbihOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgcmVjdCkKICNwcmFnbWEgbWFy
ayBJbml0aWFsaXphdGlvbgogLSAoaWQpaW5pdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgogICAgIC8vIERvIG5vdCBkZWZlciB3aW5kb3cgY3JlYXRpb24sIHRvIG1ha2Ug
c3VyZSAtd2luZG93TnVtYmVyIGlzIGNyZWF0ZWQgKG5lZWRlZCBieSBXZWJXaW5kb3dTY2FsZUFu
aW1hdGlvbikuCi0gICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZUZ1bGxTY3JlZW5XaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6TlNDbG9z
YWJsZVdpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tX
ZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU1plcm9S
ZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFdpbmRv
dzp3aW5kb3ddOwogICAgIFt3aW5kb3cgcmVsZWFzZV07CiAgICAgaWYgKCFzZWxmKQpAQCAtNDYy
LDEwICs0NjAsNyBAQCBzdGF0aWMgTlNSZWN0IGNvbnZlcnRSZWN0VG9TY3JlZW4oTlNXaW5kb3cg
KndpbmRvdywgTlNSZWN0IHJlY3QpCiAKIHN0YXRpYyBSZXRhaW5QdHI8TlNXaW5kb3c+IGNyZWF0
ZUJhY2tncm91bmRGdWxsc2NyZWVuV2luZG93KE5TUmVjdCBmcmFtZSkKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tOU1dpbmRv
dyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW05TV2lu
ZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0
eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5P
XTsKICAgICBbd2luZG93IHNldE9wYXF1ZTpZRVNdOwogICAgIFt3aW5kb3cgc2V0QmFja2dyb3Vu
ZENvbG9yOltOU0NvbG9yIGJsYWNrQ29sb3JdXTsKICAgICBbd2luZG93IHNldFJlbGVhc2VkV2hl
bkNsb3NlZDpOT107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRl
eCA1NWYxYWUyZDQ1OGY1NjEzOTVmYzMyNmFhY2JjNjBmNGRiMzIxM2M0Li5jZDc5NDc1NmNmNDQ5
MTlkYjFlZDMyMWUzNTM1ZDJiZmEyMmFmYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KQEAgLTEzOCw2ICsxMzgsNyBAQAogI2ltcG9ydCA8d3RmL01hdGhFeHRy
YXMuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1
bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiAjaWYgIVBMQVRGT1JNKElPUykKICNpbXBvcnQgPEFwcEtpdC9OU0FjY2Vzc2liaWxp
dHkuaD4KQEAgLTEzNTEsMTIgKzEzNTIsOSBAQCBzdGF0aWMgTlNVUkwqIHVuaXF1ZVVSTFdpdGhS
ZWxhdGl2ZVBhcnQoTlNTdHJpbmcgKnJlbGF0aXZlUGFydCkKIAogLSAodm9pZClfcG9zdEZha2VN
b3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudDooTlNFdmVudCAqKWZsYWdzQ2hhbmdl
ZEV2ZW50CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVu
dCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBs
b2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2
ZW50U3RyZWFtCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53
aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCiAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZlbnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFu
Z2VkRXZlbnQudGltZXN0YW1wIHdpbmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dO
dW1iZXIKICAgICAgICAgY29udGV4dDpudWxscHRyIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDow
IHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtzZWxmIG1v
dXNlTW92ZWQ6ZmFrZUV2ZW50XTsKIH0KIApAQCAtMTUwNiwxMCArMTUwNCw3IEBAIHN0YXRpYyBO
U1VSTCogdW5pcXVlVVJMV2l0aFJlbGF0aXZlUGFydChOU1N0cmluZyAqcmVsYXRpdmVQYXJ0KQog
I2VuZGlmCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBBU1NFUlQoIWV2ZW50IHx8IFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3Vz
ZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TUmlnaHRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVd
ID09IE5TT3RoZXJNb3VzZURvd24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8fCBbZXZlbnQg
dHlwZV0gPT0gTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bik7CiAjZWxzZQogICAgIEFTU0VSVCgh
ZXZlbnQgfHwgZXZlbnQudHlwZSA9PSBXZWJFdmVudE1vdXNlRG93bik7CiAjZW5kaWYKQEAgLTE2
NjEsMTYgKzE2NTYsMTcgQEAgc3RhdGljIE5TVVJMKiB1bmlxdWVVUkxXaXRoUmVsYXRpdmVQYXJ0
KE5TU3RyaW5nICpyZWxhdGl2ZVBhcnQpCiAKIC0gKHZvaWQpX3VwZGF0ZU1vdXNlb3ZlcldpdGhG
YWtlRXZlbnQKIHsKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAgIGxvY2F0aW9uOltbc2VsZiB3
aW5kb3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAq
ZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAotICAg
ICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50
IG1vdXNlTG9jYXRpb25dXQorICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1v
dXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtb2Rp
ZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICB0
aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAg
IHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgIGNvbnRl
eHQ6bnVsbHB0cgogICAgICAgICBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTow
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIFtzZWxmIF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6ZmFrZUV2ZW50XTsKIH0KQEAgLTE4NjgsMTEgKzE4NjQsOCBAQCBzdGF0
aWMgTlNVUkwqIHVuaXF1ZVVSTFdpdGhSZWxhdGl2ZVBhcnQoTlNTdHJpbmcgKnJlbGF0aXZlUGFy
dCkKICNpZiAhUExBVEZPUk0oSU9TKQogc3RhdGljIEJPT0wgaXNRdWlja0xvb2tFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBj
b25zdCBpbnQga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9uUmVsZWFzZWQg
PSA5OwotICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNTeXN0ZW1EZWZpbmVkICYmIFtldmVu
dCBzdWJ0eXBlXSA9PSBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxl
YXNlZCAmJiBbZXZlbnQgZGF0YTFdID09ICdsa3VwJzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlU3lzdGVtRGVmaW5l
ZCAmJiBbZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJp
bmF0aW9uUmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7CiB9CiAjZW5kaWYKIApA
QCAtMTkyOCwxNCArMTkyMSwxMSBAQCBzdGF0aWMgQk9PTCBpc1F1aWNrTG9va0V2ZW50KE5TRXZl
bnQgKmV2ZW50KQogICAgIGVsc2UgewogICAgICAgICAvLyBGSVhNRTogV2h5IGRvZXNuJ3QgdGhp
cyBpbmNsdWRlIG1vdXNlIGVudGVyZWQvZXhpdGVkIGV2ZW50cywgb3Igb3RoZXIgbW91c2UgYnV0
dG9uIGV2ZW50cz8KICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbW3NlbGYgd2luZG93XSBjdXJy
ZW50RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBj
YXB0dXJlSGl0c09uU3Vidmlld3MgPSAhKFtldmVudCB0eXBlXSA9PSBOU01vdXNlTW92ZWQKLSAg
ICAgICAgICAgIHx8IFtldmVudCB0eXBlXSA9PSBOU1JpZ2h0TW91c2VEb3duCi0gICAgICAgICAg
ICB8fCAoW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgIT0gMCkKLSAgICAgICAgICAgIHx8IFtldmVudCB0
eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZAorICAgICAgICBjYXB0dXJlSGl0c09uU3Vidmlld3MgPSAh
KFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgIHx8IFtl
dmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCisgICAgICAgICAgICB8fCAo
W2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiBbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKKyAgICAgICAgICAgIHx8IFtl
dmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZAogICAgICAgICAgICAgfHwgaXNR
dWlja0xvb2tFdmVudChldmVudCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAg
IH0KIAogICAgIGlmICghY2FwdHVyZUhpdHNPblN1YnZpZXdzKSB7CkBAIC0yMDIzLDkgKzIwMTMs
NyBAQCBzdGF0aWMgQk9PTCBpc1F1aWNrTG9va0V2ZW50KE5TRXZlbnQgKmV2ZW50KQogLSAodm9p
ZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNl
cHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVu
dGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUV4aXRlZAorICAgIE5TRXZlbnQgKmZha2VFdmVu
dCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUV4aXRl
ZAogICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKQogICAgICAgICBtb2RpZmllckZs
YWdzOjAKICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTIwMzQsMTYgKzIwMjIsMTMgQEAgc3RhdGlj
IEJPT0wgaXNRdWlja0xvb2tFdmVudChOU0V2ZW50ICpldmVudCkKICAgICAgICAgZXZlbnROdW1i
ZXI6MAogICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICB1
c2VyRGF0YTpfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAogICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0T3duZXIgbW91c2VFeGl0
ZWQ6ZmFrZUV2ZW50XTsKIH0KIAogLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUVudGVyZWQKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBOb3RoaW5nIG1hdHRl
cnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSAgICBOU0V2
ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VF
bnRlcmVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZAogICAgICAgICBsb2NhdGlvbjpOU01ha2VQ
b2ludCgwLCAwKQogICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0YW1wOjAK
QEAgLTIwNTMsNyArMjAzOCw2IEBAIHN0YXRpYyBCT09MIGlzUXVpY2tMb29rRXZlbnQoTlNFdmVu
dCAqZXZlbnQpCiAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAg
ICAgIHVzZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1JlY3RVc2VyRGF0YV07CiAgICAgW19wcml2
YXRlLT50cmFja2luZ1JlY3RPd25lciBtb3VzZUVudGVyZWQ6ZmFrZUV2ZW50XTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCkBAIC0y
MDg5LDIxICsyMDczLDE4IEBAIHN0YXRpYyBCT09MIGlzUXVpY2tMb29rRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCiBzdGF0aWMgYm9vbCBtb3VzZUV2ZW50SXNQYXJ0T2ZDbGlja09yRHJhZyhOU0V2ZW50
ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNP
dGhlck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2Fz
ZSBOU090aGVyTW91c2VEcmFnZ2VkOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiB9CiAKQEAgLTIxMzQsMTYgKzIxMTUsMTQgQEAgc3RhdGljIGJvb2wgbW91c2VF
dmVudElzUGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIGZsb2F0IHlT
Y3JvbGwgPSB2aXNpYmxlUmVjdC5vcmlnaW4ueTsKICAgICAgICAgZmxvYXQgeFNjcm9sbCA9IHZp
c2libGVSZWN0Lm9yaWdpbi54OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
TW91c2VNb3ZlZAorICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFr
ZVBvaW50KC0xIC0geFNjcm9sbCwgLTEgLSB5U2Nyb2xsKQogICAgICAgICAgICAgbW9kaWZpZXJG
bGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgIHRp
bWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAg
ICAgIHdpbmRvd051bWJlcjpbW3ZpZXcgd2luZG93XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgICAg
ICBjb250ZXh0Om51bGxwdHIKICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDow
IHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiAgICAgICAgIGlm
IChGcmFtZSogbGFzdEhpdENvcmVGcmFtZSA9IGNvcmUoW2xhc3RIaXRWaWV3IF9mcmFtZV0pKQog
ICAgICAgICAgICAgbGFzdEhpdENvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChl
dmVudCwgW1tzZWxmIF93ZWJWaWV3XSBfcHJlc3N1cmVFdmVudF0pOwogICAgIH0KQEAgLTIzMzAs
MTYgKzIzMDksMTggQEAgc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWco
TlNFdmVudCAqZXZlbnQpCiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKKyAgICBOU0V2ZW50
ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0
TW91c2VEcmFnZ2VkCisgICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCiAjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRHJhZ2dlZAotICAgICAgICBsb2NhdGlv
bjpbW3NlbGYgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRp
b25dXQorICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25d
XQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtb2RpZmllckZsYWdzOltb
TlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICB0aW1lc3RhbXA6W05T
RGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJl
cjpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgog
ICAgICAgICBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKwogICAgIFtzZWxmIG1vdXNlRHJhZ2dlZDpmYWtlRXZlbnRd
OwogI2VuZGlmCiB9CkBAIC0zMzU0LDEyICszMzM1LDkgQEAgV0VCQ09SRV9DT01NQU5EKHRvZ2ds
ZVVuZGVybGluZSkKICAgICAvLyBvciBmcm9tIGNhbGxzIGJhY2sgZnJvbSBXZWJDb3JlIG9uY2Ug
d2UgYmVnaW4gbW91c2UtZG93biBldmVudCBoYW5kbGluZy4KICNpZiAhUExBVEZPUk0oSU9TKSAg
ICAgICAgICAgIAogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSA9
PSBOU0xlZnRNb3VzZURvd24KKyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTGVm
dE1vdXNlRG93bgogICAgICAgICAgICAgJiYgIV9wcml2YXRlLT5oYW5kbGluZ01vdXNlRG93bkV2
ZW50CiAgICAgICAgICAgICAmJiBOU1BvaW50SW5SZWN0KFtldmVudCBsb2NhdGlvbkluV2luZG93
XSwgW3NlbGYgY29udmVydFJlY3Q6W3NlbGYgdmlzaWJsZVJlY3RdIHRvVmlldzpuaWxdKSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICByZXR1cm4gTk87CiAgICAgfQog
I2Vsc2UKQEAgLTM1MjgsMTMgKzM1MDYsMTAgQEAgV0VCQ09SRV9DT01NQU5EKHRvZ2dsZVVuZGVy
bGluZSkKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIGlmICghX3ByaXZhdGUtPmZsYWdz
Q2hhbmdlZEV2ZW50TW9uaXRvcikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgICAgICAgICAgX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2
ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1h
c2sgaGFuZGxlcjpeKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CisgICAgICAgICAgICBf
cHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25p
dG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6
XihOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewogICAgICAgICAgICAgICAgIFtzZWxmIF9w
b3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50OmZsYWdzQ2hhbmdlZEV2
ZW50XTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CiAgICAgICAg
ICAgICB9XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogICAgIH0g
ZWxzZSB7CiAgICAgICAgIFtOU0V2ZW50IHJlbW92ZU1vbml0b3I6X3ByaXZhdGUtPmZsYWdzQ2hh
bmdlZEV2ZW50TW9uaXRvcl07CkBAIC00NTQwLDExICs0NTE1LDEyIEBAIHN0YXRpYyBCT09MIGN1
cnJlbnRTY3JvbGxJc0JsaXQoTlNWaWV3ICpjbGlwVmlldykKICAgICBOU0lucHV0TWFuYWdlciAq
Y3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2Vy
XTsKIAogICAgIGlmICghW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNlRXZl
bnRzXSB8fCAhW2N1cnJlbnRJbnB1dE1hbmFnZXIgaGFuZGxlTW91c2VFdmVudDpldmVudF0pIHsK
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW19wcml2YXRlLT5jb21wbGV0
aW9uQ29udHJvbGxlciBlbmRSZXZlcnRpbmdDaGFuZ2U6Tk8gbW92ZUxlZnQ6Tk9dOwogCiAgICAg
ICAgIC8vIElmIHRoZSB3ZWIgcGFnZSBoYW5kbGVzIHRoZSBjb250ZXh0IG1lbnUgZXZlbnQgYW5k
IG1lbnVGb3JFdmVudDogcmV0dXJucyBuaWwsIHdlJ2xsIGdldCBjb250cm9sIGNsaWNrIGV2ZW50
cyBoZXJlLgogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHBhc3MgdGhlbSBhbG9uZyB0byBL
SFRNTCBhIHNlY29uZCB0aW1lLgotICAgICAgICBpZiAoIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICBpZiAoIShbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAgICAgICAgIF9wcml2YXRl
LT5pZ25vcmluZ01vdXNlRHJhZ2dlZEV2ZW50cyA9IE5POwogCiAgICAgICAgICAgICAvLyBMZXQg
V2ViQ29yZSBnZXQgYSBjaGFuY2UgdG8gZGVhbCB3aXRoIHRoZSBldmVudC4gVGhpcyB3aWxsIGNh
bGwgYmFjayB0byB1cwpAQCAtNDU1Myw3ICs0NTI5LDYgQEAgc3RhdGljIEJPT0wgY3VycmVudFNj
cm9sbElzQmxpdChOU1ZpZXcgKmNsaXBWaWV3KQogICAgICAgICAgICAgICAgIGNvcmVmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkubW91c2VEb3duKGV2ZW50LCBbW3NlbGYgX3dlYlZpZXddIF9wcmVzc3Vy
ZUV2ZW50XSk7CiAgICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAjZW5kaWYKIAogICAgIF9wcml2YXRlLT5oYW5kbGluZ01vdXNlRG93bkV2ZW50ID0gTk87CkBA
IC00ODE4LDE5ICs0NzkzLDEyIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1
cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAwOwog
CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5RG93bjogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZvcm1L
ZXlib2FyZEV2ZW50IHBsYXRmb3JtRXZlbnQgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRl
UGxhdGZvcm1LZXlib2FyZEV2ZW50KGV2ZW50KTsKICAgICAgICAgcGxhdGZvcm1FdmVudC5kaXNh
bWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bik7CiAgICAgICAg
IHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGxhdGZvcm1FdmVudCwgY29yZUZyYW1lLT5k
b2N1bWVudCgpLT5kZWZhdWx0VmlldygpKTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0tleVVwOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKICAgICAgICAgcmV0dXJuIEtleWJvYXJk
RXZlbnQ6OmNyZWF0ZShQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50KGV2ZW50KSwgY29yZUZyYW1lLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKTsKICAg
ICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTU1MjQsMTEgKzU0OTIsOCBAQCBzdGF0
aWMgUGFzc1JlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSog
Y29yZUZyYW1lKQogICAgIGlmICghW3NlbGYgX2NhbkVkaXRdKQogICAgICAgICByZXR1cm4gTk87
CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2sp
ICE9IE5TQ29tbWFuZEtleU1hc2spCisgICAgaWYgKChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBO
U0V2ZW50TW9kaWZpZXJGbGFnRGV2aWNlSW5kZXBlbmRlbnRGbGFnc01hc2spICE9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAKICAgICBOU1N0cmluZyAqc3RyaW5nID0gW2V2ZW50IGNoYXJhY3RlcnNd
OwogICAgIGlmIChbc3RyaW5nIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJiIl0gPT0gTlNPcmRl
cmVkU2FtZSkgewpAQCAtNjQ0OCwxNCArNjQxMywxMSBAQCBzdGF0aWMgQk9PTCB3cml0aW5nRGly
ZWN0aW9uS2V5QmluZGluZ3NFbmFibGVkKCkKICAgICAgICAgcmV0dXJuIE5POwogCiAgICAgTlNF
dmVudCAqbWFjRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5tYWNFdmVudCgpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNLZXlE
b3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZmlsdGVyS2V5RG93bjptYWNF
dmVudF0pCisgICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gJiYg
W19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBmaWx0ZXJLZXlEb3duOm1hY0V2ZW50XSkK
ICAgICAgICAgcmV0dXJuIFlFUzsKICAgICAKLSAgICBpZiAoW21hY0V2ZW50IHR5cGVdID09IE5T
RmxhZ3NDaGFuZ2VkKQorICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFn
c0NoYW5nZWQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKICAgICAKICAgICBwYXJhbWV0ZXJzLmV2ZW50ID0gZXZlbnQ7CiAgICAgX3ByaXZhdGUtPmlu
dGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgPSAmcGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCA3OGY1NmU0OTFlMDg2YWFlOTgzYjM4MDY5OWE1
NTE1N2NkOThmZGJhLi45NjBjNjM3OWQxYWNlNjAwN2JlMTIwNTJhZTI4NDc0NzM1NDdkODgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCkBAIC02NSw2ICs2NSw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oPgogI2ltcG9y
dCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9y
dCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNh
dGlvblNlcnZpY2VzUHJpdi5oPgpAQCAtMzIxLDEwICszMjIsNyBAQCBzdGF0aWMgQk9PTCBfUERG
U2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9u
ICpzZWxlYwogICAgIC8vIE92ZXJyaWRlIGhpdFRlc3Qgc28gd2UgY2FuIG92ZXJyaWRlIG1lbnVG
b3JFdmVudC4KICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAg
IE5TRXZlbnRUeXBlIHR5cGUgPSBbZXZlbnQgdHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgaWYgKHR5cGUgPT0gTlNSaWdodE1vdXNlRG93biB8fCAodHlwZSA9
PSBOU0xlZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtl
eU1hc2spKSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAodHlwZSA9PSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8ICh0eXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNl
RG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRy
b2wpKSkKICAgICAgICAgcmV0dXJuIHNlbGY7CiAKICAgICByZXR1cm4gW3N1cGVyIGhpdFRlc3Q6
cG9pbnRdOwpAQCAtMTAwOSwzOSArMTAwNywzMyBAQCBzdGF0aWMgQk9PTCBpc0ZyYW1lSW5SYW5n
ZShXZWJGcmFtZSAqZnJhbWUsIERPTVJhbmdlICpyYW5nZSkKICAgICBpbnQgYnV0dG9uID0gbm9C
dXR0b247CiAgICAgUmVmUHRyPEV2ZW50PiBldmVudDsKICAgICBzd2l0Y2ggKFtuc0V2ZW50IHR5
cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IDA7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IDE7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAg
ICAgICAgIGJ1dHRvbiA9IFtuc0V2ZW50IGJ1dHRvbk51bWJlcl07Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBOU0tleURvd246IHsKLSAgICAgICAgICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudCBwZSA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJk
RXZlbnQobnNFdmVudCk7Ci0gICAgICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQo
UGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bik7Ci0gICAgICAgICAgICBldmVudCA9IEtleWJvYXJk
RXZlbnQ6OmNyZWF0ZShwZSwgMCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgICAgICBidXR0b24g
PSAwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgor
ICAgICAgICBidXR0b24gPSAxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
T3RoZXJNb3VzZVVwOgorICAgICAgICBidXR0b24gPSBbbnNFdmVudCBidXR0b25OdW1iZXJdOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogeworICAgICAgICBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQgcGUgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxh
dGZvcm1LZXlib2FyZEV2ZW50KG5zRXZlbnQpOworICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlE
b3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bik7CisgICAgICAgIGV2ZW50ID0gS2V5
Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCAwKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9u
KSB7CiAgICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlj
a0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50
XSwgMCwgMCwgMCwgMCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwg
MCwKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAg
ICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrLAotICAgICAgICAg
ICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2ssCi0gICAgICAg
ICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrLAotICAgICAgICAg
ICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrLAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlm
aWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbiwKKyAgICAgICAgICAgIFtuc0V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0LAorICAgICAgICAg
ICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCwK
ICAgICAgICAgICAgIGJ1dHRvbiwgMCwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCAwLCAwLCB0cnVl
KTsKICAgICB9CiAKQEAgLTExNDksOSArMTE0MSw3IEBAIHN0YXRpYyBCT09MIGlzRnJhbWVJblJh
bmdlKFdlYkZyYW1lICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQogICAgIC8vIEZJWE1FIDQ0MDA0
ODA6IHdoZW4gUERGVmlldyBpbXBsZW1lbnRzIHRoZSBzdGFuZGFyZCBzY3JvbGxpbmcgc2VsZWN0
b3JzIHRoYXQgdGhpcwogICAgIC8vIG1ldGhvZCBpcyB1c2VkIHRvIG1pbWljLCB3ZSBjYW4gZWxp
bWluYXRlIHRoaXMgbWV0aG9kIGFuZCBjYWxsIHRoZW0gZGlyZWN0bHkuCiAgICAgTlNTdHJpbmcg
KmtleUFzU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZmdW5jdGlvbktl
eSBsZW5ndGg6MV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0
dXJuIFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlEb3duCisgICAgcmV0dXJuIFtOU0V2
ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9jYXRpb246TlNaZXJvUG9pbnQKICAgICAgICAgICAgICAgICAgICAgICAg
bW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MApA
QCAtMTE2MSw3ICsxMTUxLDYgQEAgc3RhdGljIEJPT0wgaXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUg
KmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgICAgICBjaGFyYWN0ZXJzSWdub3JpbmdNb2Rp
ZmllcnM6a2V5QXNTdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQVJlcGVhdDpO
TwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlDb2RlOjBdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogfQogCiAtICh2b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlGcm9tTWVu
dTooaWQpc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRl
eHRDb21wbGV0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
VGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tCmluZGV4IDQzODJiMDQ0NzRlNjBjOGMyMzczMzA0
N2I4MTM5NjRhNGY3ODQyNjMuLjdiOWU1ZGJjZjQ4YzIxNmI2YzU2NjMxMGMxNzRlNDMxMmM1NjI4
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRp
b25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENv
bXBsZXRpb25Db250cm9sbGVyLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJXZWJUeXBl
c0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1l
Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
IAogQGludGVyZmFjZSBOU1dpbmRvdyAoV2ViTlNXaW5kb3dEZXRhaWxzKQogLSAodm9pZClfc2V0
Rm9yY2VBY3RpdmVDb250cm9sczooQk9PTClmbGFnOwpAQCAtMTEyLDEwICsxMTMsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBbc2Nyb2xsVmlldyBzZXREb2N1bWVudFZpZXc6X3Rh
YmxlVmlld107CiAgICAgW190YWJsZVZpZXcgcmVsZWFzZV07CiAgICAgCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgX3BvcHVwV2luZG93ID0gW1tOU1dpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIF9wb3B1cFdpbmRvdyA9IFtbTlNXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6c2Nyb2xsRnJhbWUgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dOwogICAgIFtfcG9wdXBXaW5kb3cgc2V0QWxwaGFWYWx1ZTowLjg4Zl07CiAgICAgW19wb3B1
cFdpbmRvdyBzZXRDb250ZW50VmlldzpzY3JvbGxWaWV3XTsKICAgICBbc2Nyb2xsVmlldyByZWxl
YXNlXTsKQEAgLTE1NSw4ICsxNTMsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgbWF4V2lkdGggPSBjZWlsZihb
TlNTY3JvbGxWaWV3IGZyYW1lU2l6ZUZvckNvbnRlbnRTaXplOk5TTWFrZVNpemUobWF4V2lkdGgs
IDEwMC4wZikgaGFzSG9yaXpvbnRhbFNjcm9sbGVyOk5PIGhhc1ZlcnRpY2FsU2Nyb2xsZXI6WUVT
IGJvcmRlclR5cGU6TlNOb0JvcmRlcl0ud2lkdGgpOwotICAgICAgICBtYXhXaWR0aCA9IGNlaWxm
KFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAuMGYs
IG1heFdpZHRoLCAxMDAuMGYpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXS5zaXpl
LndpZHRoKTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbWF4V2lkdGgg
PSBjZWlsZihbTlNXaW5kb3cgZnJhbWVSZWN0Rm9yQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLjBm
LCAwLjBmLCBtYXhXaWR0aCwgMTAwLjBmKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3Jk
ZXJsZXNzXS5zaXplLndpZHRoKTsKICAgICAgICAgbWF4V2lkdGggKz0gNS4wZjsKICAgICAgICAg
d2luZG93RnJhbWUuc2l6ZS53aWR0aCA9IHN0ZDo6bWF4KG1heFdpZHRoLCB3aW5kb3dGcmFtZS5z
aXplLndpZHRoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXgg
N2NmYWE4N2I1NTZlYjQ3NmJmM2M1ZmVkNWUwM2U2OGZiYTJkZTRiZi4uYmUzMjZlN2Y4ZTczMjc2
OTk2ZGRjZTVjOTMzMmFmNDZiOWFmNzE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQpAQCAtMjEzLDYgKzIxMyw3IEBACiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0
IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYv
c3BpL2Rhcndpbi9keWxkU1BJLmg+CiAKICNpZiAhUExBVEZPUk0oSU9TKQpAQCAtNjA5NSwxMCAr
NjA5Niw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxl
RmFjdG9yS2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgICAgIGZsYWdzIHw9IERyYWdB
cHBsaWNhdGlvbkhhc0F0dGFjaGVkU2hlZXQ7CiAgICAgaWYgKFtkcmFnZ2luZ0luZm8gZHJhZ2dp
bmdTb3VyY2VdID09IHNlbGYpCiAgICAgICAgIGZsYWdzIHw9IERyYWdBcHBsaWNhdGlvbklzU291
cmNlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW05TQXBw
IGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtbTlNBcHAgY3VycmVudEV2ZW50XSBt
b2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgIGZsYWdz
IHw9IERyYWdBcHBsaWNhdGlvbklzQ29weUtleURvd247CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PERyYWdBcHBsaWNhdGlvbkZsYWdzPihmbGFncyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4IDJlNjU4MDZkYjVkNjhmMGE0YTI4MmQzODNi
OTZlN2I0NTE2YjkwNDAuLmIwYzU1NGQ0ZGE2MjNkOTliMDE0MzU4NjdiMjA3NzI1Yjg2NzQ1MzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCkBAIC0z
OSw2ICszOSw3IEBACiAjaW1wb3J0IDxwd2QuaD4KICNpbXBvcnQgPHN0ZGxpYi5oPgogI2ltcG9y
dCA8c3lzZXhpdHMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogCiAjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKQEAgLTE5NywxMCArMTk4LDcgQEAgdm9pZCBDaGlsZFBy
b2Nlc3M6OnN0b3BOU0FwcFJ1bkxvb3AoKQogICAgIEFTU0VSVChbTlNBcHAgaXNSdW5uaW5nXSk7
CiAgICAgW05TQXBwIHN0b3A6bmlsXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5T
QXBwbGljYXRpb25EZWZpbmVkIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApIG1vZGlmaWVyRmxh
Z3M6MCB0aW1lc3RhbXA6MC4wIHdpbmRvd051bWJlcjowIGNvbnRleHQ6bmlsIHN1YnR5cGU6MCBk
YXRhMTowIGRhdGEyOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TRXZl
bnQgKmV2ZW50ID0gW05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlQXBwbGlj
YXRpb25EZWZpbmVkIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApIG1vZGlmaWVyRmxhZ3M6MCB0
aW1lc3RhbXA6MC4wIHdpbmRvd051bWJlcjowIGNvbnRleHQ6bmlsIHN1YnR5cGU6MCBkYXRhMTow
IGRhdGEyOjBdOwogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDp0cnVlXTsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZh
Y3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpp
bmRleCBhODVlZmNhZWU5YTUyZDhjMDQ1NjY2ZDk0YzQ5MTg3MGNhNjhhN2QzLi4yZjE1OGMwM2Uz
YmUzODM4YzA2M2IyMWIyMGZjOWY2N2M3MmI5YzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAtNjMsNzggKzYzLDY5IEBAIHN0YXRpYyBXZWJN
b3VzZUV2ZW50OjpCdXR0b24gY3VycmVudE1vdXNlQnV0dG9uKCkKIAogc3RhdGljIFdlYk1vdXNl
RXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVd
KSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0
dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
RG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0
dG9uOwotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAg
IHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViTW91c2VF
dmVudDo6TGVmdEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmln
aHRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRv
bjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6
CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVCdXR0b247CiAjaWYgZGVmaW5l
ZChfX0xQNjRfXykKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVk
OgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gY3VycmVu
dE1vdXNlQnV0dG9uKCk7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gV2Vi
TW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgICAgIHJldHVybiBjdXJyZW50
TW91c2VCdXR0b24oKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVu
dDo6Tm9CdXR0b247CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBz
dGF0aWMgV2ViRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVGb3JFdmVudChOU0V2ZW50KiBldmVu
dCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtl
dmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAg
Y2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAg
ICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2Vi
RXZlbnQ6Ok1vdXNlTW92ZTsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgot
ICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247Ci0gICAgICAgIGNhc2UgTlNM
ZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBO
U090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VVcDsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgICAg
IHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91
c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VE
b3duOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
ICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VVcDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoW2V2ZW50
IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5T
TGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VE
b3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJN
b3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOwotICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBbZXZlbnQgY2xpY2tD
b3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgTlNQb2ludCBnbG9iYWxQb2ludEZvckV2
ZW50KE5TRXZlbnQgKmV2ZW50KQpAQCAtMTQzLDIyICsxMzQsMTkgQEAgc3RhdGljIE5TUG9pbnQg
Z2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKICNpZiBkZWZpbmVkKF9fTFA2NF9f
KQogICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgIGNhc2Ug
TlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICBjYXNlIE5T
TW91c2VFbnRlcmVkOgotICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICBjYXNlIE5TTW91c2VN
b3ZlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgY2FzZSBOU090aGVyTW91c2VE
cmFnZ2VkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VE
b3duOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TUmlnaHRNb3Vz
ZVVwOgotICAgIGNhc2UgTlNTY3JvbGxXaGVlbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91
c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6
CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlU2Nyb2xsV2hlZWw6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpnbG9iYWxQb2ludChbZXZl
bnQgbG9jYXRpb25JbldpbmRvd10sIFtldmVudCB3aW5kb3ddKTsKICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gTlNaZXJvUG9pbnQ7CkBAIC0xNzEsMjIgKzE1OSwxOSBAQCBzdGF0aWMgTlNQ
b2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiAj
aWYgZGVmaW5lZChfX0xQNjRfXykKICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5k
aWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TTGVmdE1v
dXNlRG93bjoKLSAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6
Ci0gICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAg
IGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0g
ICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICBjYXNlIE5TU2Nyb2xsV2hlZWw6IHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNl
TW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6IHsKICAgICAgICAgLy8gTm90ZTog
VGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2YgdGhlIHdpbmRv
dyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgogICAgICAgICAvLyBJbiB0aG9zZSBjYXNl
cywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNv
bnRhaW5pbmdXaW5kb3cuCiAgICAgICAgIE5TUG9pbnQgbG9jYXRpb24gPSBbZXZlbnQgbG9jYXRp
b25JbldpbmRvd107CkBAIC0yNDAsMTAgKzIyNSw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHRl
eHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UpCiB7CiAg
ICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVd
ID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCiAgICAgICAgIHJldHVy
biBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmcoW2V2ZW50IGNoYXJhY3RlcnNdKTsK
IH0KQEAgLTI1MiwxMCArMjM0LDcgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgdW5tb2RpZmllZFRl
eHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFjZXNTb2Z0U3AKIHsKICAgICBp
ZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0g
TlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtl
dmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmluZyhbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5n
TW9kaWZpZXJzXSk7CiB9CkBAIC0yNjQsNzQgKzI0Myw2OCBAQCBzdGF0aWMgYm9vbCBpc0tleXBh
ZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUg
dHlwZSBvZiBldmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlw
ZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBO
U0tleURvd246Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hh
bmdlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNF
dmVudFR5cGVLZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlRmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0p
IHsKLSAgICAgICAgY2FzZSA3MTogLy8gQ2xlYXIKLSAgICAgICAgY2FzZSA4MTogLy8gPQotICAg
ICAgICBjYXNlIDc1OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6IC8vICoKLSAgICAgICAgY2FzZSA3
ODogLy8gLQotICAgICAgICBjYXNlIDY5OiAvLyArCi0gICAgICAgIGNhc2UgNzY6IC8vIEVudGVy
Ci0gICAgICAgIGNhc2UgNjU6IC8vIC4KLSAgICAgICAgY2FzZSA4MjogLy8gMAotICAgICAgICBj
YXNlIDgzOiAvLyAxCi0gICAgICAgIGNhc2UgODQ6IC8vIDIKLSAgICAgICAgY2FzZSA4NTogLy8g
MwotICAgICAgICBjYXNlIDg2OiAvLyA0Ci0gICAgICAgIGNhc2UgODc6IC8vIDUKLSAgICAgICAg
Y2FzZSA4ODogLy8gNgotICAgICAgICBjYXNlIDg5OiAvLyA3Ci0gICAgICAgIGNhc2UgOTE6IC8v
IDgKLSAgICAgICAgY2FzZSA5MjogLy8gOQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
IH0KKyAgICBjYXNlIDcxOiAvLyBDbGVhcgorICAgIGNhc2UgODE6IC8vID0KKyAgICBjYXNlIDc1
OiAvLyAvCisgICAgY2FzZSA2NzogLy8gKgorICAgIGNhc2UgNzg6IC8vIC0KKyAgICBjYXNlIDY5
OiAvLyArCisgICAgY2FzZSA3NjogLy8gRW50ZXIKKyAgICBjYXNlIDY1OiAvLyAuCisgICAgY2Fz
ZSA4MjogLy8gMAorICAgIGNhc2UgODM6IC8vIDEKKyAgICBjYXNlIDg0OiAvLyAyCisgICAgY2Fz
ZSA4NTogLy8gMworICAgIGNhc2UgODY6IC8vIDQKKyAgICBjYXNlIDg3OiAvLyA1CisgICAgY2Fz
ZSA4ODogLy8gNgorICAgIGNhc2UgODk6IC8vIDcKKyAgICBjYXNlIDkxOiAvLyA4CisgICAgY2Fz
ZSA5MjogLy8gOQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgIAogICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtl
dmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkKLSAgICAgICAgcmV0dXJuIFtldmVudCB0eXBl
XSA9PSBOU0tleVVwOworICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0No
YW5nZWQpCisgICAgICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlVcDsK
ICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBmYWlscyBpZiB0aGUgdXNlciBwcmVzc2VzIGJvdGgg
U2hpZnQga2V5cyBhdCBvbmNlLCBmb3IgZXhhbXBsZToKICAgICAvLyB3ZSB0cmVhdCByZWxlYXNp
bmcgb25lIG9mIHRoZW0gYXMga2V5RG93bi4KICAgICBzd2l0Y2ggKFtldmVudCBrZXlDb2RlXSkg
ewotICAgICAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCi0gICAgICAgIGNhc2UgNTU6IC8v
IExlZnQgQ29tbWFuZAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0NvbW1hbmRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTc6
IC8vIENhcHNsb2NrCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TQWxwaGFTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1
NjogLy8gTGVmdCBTaGlmdAotICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAotICAgICAg
ICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU1NoaWZ0S2V5TWFzaykgPT0g
MDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAotICAgICAgICBj
YXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAg
IGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCi0g
ICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1h
c2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA2MzogLy8gRnVuY3Rpb24KLSAg
ICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNGdW5jdGlvbktleU1h
c2spID09IDA7CisgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAorICAgIGNhc2UgNTU6IC8v
IExlZnQgQ29tbWFuZAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBO
U0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCk7CisKKyAgICBjYXNlIDU3OiAvLyBDYXBzbG9jawor
ICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJG
bGFnQ2Fwc0xvY2spOworCisgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAorICAgIGNhc2UgNjA6
IC8vIFJpZ2h0IFNoaWZ0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCk7CisKKyAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAor
ICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKTsKKworICAgIGNhc2UgNTk6IC8v
IExlZnQgQ3RybAorICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKKyAgICAgICAgcmV0dXJuICEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpOworCisg
ICAgY2FzZSA2MzogLy8gRnVuY3Rpb24KKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uKTsKICAgICB9Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC00ODQsMTAgKzQ1
Nyw3IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhhCiAgICAgaW50IHdpbmRvd3NWaXJ0dWFsS2V5
Q29kZSAgICAgICA9IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQoZXZlbnQpOwogICAgIGludCBu
YXRpdmVWaXJ0dWFsS2V5Q29kZSAgICAgICAgPSBbZXZlbnQga2V5Q29kZV07CiAgICAgaW50IG1h
Y0NoYXJDb2RlICAgICAgICAgICAgICAgICA9IFdLR2V0TlNFdmVudEtleUNoYXIoZXZlbnQpOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGJvb2wgYXV0b1JlcGVhdCAg
ICAgICAgICAgICAgICAgPSAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKSAmJiBbZXZl
bnQgaXNBUmVwZWF0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBib29sIGF1
dG9SZXBlYXQgICAgICAgICAgICAgICAgID0gW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxh
Z3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwogICAgIGJvb2wgaXNLZXlwYWQgICAgICAg
ICAgICAgICAgICAgPSBpc0tleXBhZEV2ZW50KGV2ZW50KTsKICAgICBib29sIGlzU3lzdGVtS2V5
ICAgICAgICAgICAgICAgID0gZmFsc2U7IC8vIFN5c3RlbUtleSBpcyBhbHdheXMgZmFsc2Ugb24g
dGhlIE1hYy4KICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycyAgID0gbW9kaWZpZXJz
Rm9yRXZlbnQoZXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCmluZGV4IDMyZTYzOWM0ZDkxOWFkMTZlOWE5NDgyYjkzNWNlZjA0NjM3NzFmYmEu
Ljc2M2Q5MDYwNTc1OTkzZDhjYjA3M2M2YWE0ZTA5NWMwZGJiNGE4M2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTkzLDYgKzkzLDcgQEAK
ICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8c3lzL3N0YXQuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRD
b21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlZpZXdJbXBsSW5jbHVkZXMuaD4KQEAgLTYy
MCwxMSArNjIxLDggQEAgYm9vbCBXZWJWaWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIoKQog
ICAgIGlmIChkaXJlY3Rpb24gIT0gTlNEaXJlY3RTZWxlY3Rpb24pIHsKICAgICAgICAgTlNFdmVu
dCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKICAgICAgICAgTlNFdmVudCAqa2V5Ym9h
cmRFdmVudCA9IG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5
VXApCisgICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlEb3duIHx8IFtl
dmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleVVwKQogICAgICAgICAgICAga2V5Ym9hcmRFdmVu
dCA9IGV2ZW50OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtX3BhZ2Ut
PnNldEluaXRpYWxGb2N1cyhkaXJlY3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2
ZW50ICE9IG5pbCwgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwg
ZmFsc2UsIHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKICAgICB9
CiAgICAgcmV0dXJuIHRydWU7CkBAIC04NDgsMTAgKzg0Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpYygpCiAgICAgICAgIHJldHVybjsKIAogICAg
IE5TV2luZG93ICp3aW5kb3cgPSBtX3ZpZXcud2luZG93OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIGlmICgod2luZG93LnN0eWxlTWFzayAmIE5TRnVsbFNpemVDb250
ZW50Vmlld1dpbmRvd01hc2spICYmICF3aW5kb3cudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQg
JiYgIVttX3ZpZXcgZW5jbG9zaW5nU2Nyb2xsVmlld10pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBpZiAoKHdpbmRvdy5zdHlsZU1hc2sgJiBOU1dpbmRvd1N0eWxlTWFza0Z1
bGxTaXplQ29udGVudFZpZXcpICYmICF3aW5kb3cudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQg
JiYgIVttX3ZpZXcgZW5jbG9zaW5nU2Nyb2xsVmlld10pIHsKICAgICAgICAgTlNSZWN0IGNvbnRl
bnRMYXlvdXRSZWN0ID0gW21fdmlldyBjb252ZXJ0UmVjdDp3aW5kb3cuY29udGVudExheW91dFJl
Y3QgZnJvbVZpZXc6bmlsXTsKICAgICAgICAgQ0dGbG9hdCBuZXdUb3BDb250ZW50SW5zZXQgPSBO
U01heFkoY29udGVudExheW91dFJlY3QpIC0gTlNIZWlnaHQoY29udGVudExheW91dFJlY3QpOwog
ICAgICAgICBpZiAobV90b3BDb250ZW50SW5zZXQgIT0gbmV3VG9wQ29udGVudEluc2V0KQpAQCAt
MTIyOCwxMCArMTIyMyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3co
KQogCiAgICAgICAgIGlmICghbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKICAgICAgICAg
ICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9
IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hh
bmdlZE1hc2sgaGFuZGxlcjpbd2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgbV9mbGFnc0NoYW5n
ZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGlu
Z01hc2s6TlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgaGFuZGxlcjpbd2Vha1RoaXNdIChOU0V2ZW50
ICpmbGFnc0NoYW5nZWRFdmVudCkgewogICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAg
ICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxh
Z3NDaGFuZ2VkRXZlbnQoZmxhZ3NDaGFuZ2VkRXZlbnQpOwogICAgICAgICAgICAgICAgIHJldHVy
biBmbGFnc0NoYW5nZWRFdmVudDsKQEAgLTEzMDIsMTIgKzEyOTQsOSBAQCBOU1ZpZXcgKldlYlZp
ZXdJbXBsOjpoaXRUZXN0KENHUG9pbnQgcG9pbnQpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnBvc3RG
YWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoTlNFdmVudCAqZmxhZ3NDaGFu
Z2VkRXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3Zl
ZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVP
ZkV2ZW50U3RyZWFtCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVu
dC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCiAgICAgICAgIG1vZGlm
aWVyRmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZlbnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3ND
aGFuZ2VkRXZlbnQudGltZXN0YW1wIHdpbmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5k
b3dOdW1iZXIKICAgICAgICAgY29udGV4dDpudWxscHRyIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3Vu
dDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIE5hdGl2
ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZmFrZUV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50Lmdl
dCgpLCBtX3ZpZXcpOwogICAgIG1fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7CiB9
CkBAIC0xNjU2LDEwICsxNjQ1LDcgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlblBs
YWNlaG9sZGVyVmlldygpCiBOU1dpbmRvdyAqV2ViVmlld0ltcGw6OmNyZWF0ZUZ1bGxTY3JlZW5X
aW5kb3coKQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0g
c3R5bGVNYXNrOihOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNr
KSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dIGF1dG9yZWxlYXNlXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxT
Y3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2Ny
ZWVuXSBmcmFtZV0gc3R5bGVNYXNrOihOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgfCBOU1dp
bmRvd1N0eWxlTWFza1Jlc2l6YWJsZSkgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRl
ZmVyOk5PXSBhdXRvcmVsZWFzZV07CiAjZWxzZQogICAgIHJldHVybiBuaWw7CiAjZW5kaWYKQEAg
LTI2MzEsOSArMjYxNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlbW92ZVRyYWNraW5nUmVjdHMo
TlNUcmFja2luZ1JlY3RUYWcgKnRhZ3MsIGludCBjb3VudCkKIHZvaWQgV2ViVmlld0ltcGw6OnNl
bmRUb29sVGlwTW91c2VFeGl0ZWQoKQogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQg
d2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVy
RXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUV4aXRlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9
IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUV4aXRlZAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246
TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTI2NDIsMTYgKzI2MjYsMTMgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUV4aXRlZCgpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGE6
bV90cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAg
ICAgW21fdHJhY2tpbmdSZWN0T3duZXIgbW91c2VFeGl0ZWQ6ZmFrZUV2ZW50XTsKIH0KIAogdm9p
ZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogewogICAgIC8vIE5vdGhp
bmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVu
dCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUVudGVyZWQKKyAgICBO
U0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlTW91c2VFbnRlcmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjY2MCw3ICsy
NjQxLDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6MAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tpbmdOdW1iZXI6
VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVzZXJEYXRhOm1fdHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIFttX3RyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpm
YWtlRXZlbnRdOwogfQogCkBAIC0yODE2LDEwICsyNzk2LDcgQEAgc3RhdGljIFdlYkNvcmU6OkRy
YWdBcHBsaWNhdGlvbkZsYWdzIGFwcGxpY2F0aW9uRmxhZ3NGb3JEcmFnKE5TVmlldyAqdmlldywg
aWQgPE4KICAgICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSGFzQXR0YWNo
ZWRTaGVldDsKICAgICBpZiAoZHJhZ2dpbmdJbmZvLmRyYWdnaW5nU291cmNlID09IHZpZXcpCiAg
ICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbklzU291cmNlOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbTlNBcHAgY3VycmVudEV2ZW50
XS5tb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIGlmIChbTlNBcHAgY3VycmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYg
TlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJh
Z0FwcGxpY2F0aW9uSXNDb3B5S2V5RG93bjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3M+KGZsYWdzKTsKIApAQCAtMzM1OSwxMCArMzMzNiw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnNtYXJ0TWFnbmlmeVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkK
IAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2ZW50KE5TRXZlbnQgKmV2ZW50
KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIEFTU0VSVCghZXZl
bnQgfHwgZXZlbnQudHlwZSA9PSBOU0xlZnRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU1Jp
Z2h0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNPdGhlck1vdXNlRG93bik7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlUmln
aHRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duKTsK
IAogICAgIGlmIChldmVudCA9PSBtX2xhc3RNb3VzZURvd25FdmVudC5nZXQoKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMzM5OSwxMSArMzM3Myw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZFJlc3Rv
cmVTY3JvbGxQb3NpdGlvbigpCiAKIHZvaWQgV2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQo
TlNFdmVudCAqZXZlbnQsIGJvb2wgZXZlbnRXYXNIYW5kbGVkKQogewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQor
ICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1
cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBpZiAodHJ5UG9zdFByb2Nl
c3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihldmVudCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTM0NzksMTEgKzM0NTAsOCBAQCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBX
ZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFuZHNGb3JFdgogewogICAgIFZl
Y3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGNvbW1hbmRzOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURvd24p
CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24pCiAgICAgICAgIHJl
dHVybiBjb21tYW5kczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIEFTU0VS
VCghbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzKTsKICAgICBtX2NvbGxlY3RlZEtleXByZXNz
Q29tbWFuZHMgPSAmY29tbWFuZHM7CkBAIC0zODU4LDExICszODI2LDggQEAgYm9vbCBXZWJWaWV3
SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgLy8gV2UgZ2V0
IEVzYyBrZXkgaGVyZSBhZnRlciBwcm9jZXNzaW5nIGVpdGhlciBFc2Mgb3IgQ21kK3BlcmlvZC4g
VGhlIGZvcm1lciBzdGFydHMgYXMgYSBrZXlEb3duLCBhbmQgdGhlIGxhdHRlciBzdGFydHMgYXMg
YSBrZXkgZXF1aXZhbGVudCwKICAgICAvLyBidXQgYm90aCBnZXQgdHJhbnNmb3JtZWQgdG8gYSBj
YW5jZWxPcGVyYXRpb246IGNvbW1hbmQsIGV4ZWN1dGluZyB3aGljaCBwYXNzZXMgYW4gRXNjIGtl
eSBldmVudCB0byAtcGVyZm9ybUtleUVxdWl2YWxlbnQ6LgogICAgIC8vIERvbid0IGludGVycHJl
dCB0aGlzIGV2ZW50IGFnYWluLCBhdm9pZGluZyByZS1lbnRyYW5jeSBhbmQgaW5maW5pdGUgbG9v
cHMuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbZXZlbnQg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NN
YXNrKSkKKyAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdIGlzRXF1
YWxUb1N0cmluZzpAIlxlIl0gJiYgIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnRGV2aWNlSW5kZXBlbmRlbnRGbGFnc01hc2spKQogICAgICAgICByZXR1cm4gW21f
dmlldyBfd2ViX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogCiAgICAgaWYgKG1fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpIHsK
ICAgICAgICAgLy8gV2ViQ29yZSBoYXMgYWxyZWFkeSBzZWVuIHRoZSBldmVudCwgbm8gbmVlZCBm
b3IgY3VzdG9tIHByb2Nlc3NpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBmMDdk
Mjc5ZDYzN2QzMGY4ZjUwNTMxN2Q4ZjA5NjA1NTdhMTFkMmQyLi44ZjM3ZDQyNjE1MmI2MTdkNTVj
OTE0ODgxNTExNGY4YzMzOWU3YzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KQEAgLTM5
LDYgKzM5LDcgQEAKICNpbXBvcnQgPGNydF9leHRlcm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHls
ZC5oPgogI2ltcG9ydCA8c3Bhd24uaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBAaW50
ZXJmYWNlIFdLUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyA6IE5TV2luZG93IApAQCAtMjMxLDEwICsy
MzIsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6YmVnaW5Nb2RhbCgpCiAgICAgQVNTRVJU
KCFtX3BsYWNlaG9sZGVyV2luZG93KTsKICAgICBBU1NFUlQoIW1fYWN0aXZhdGlvbk9ic2VydmVy
KTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBtX3BsYWNl
aG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dLUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZ
RVNdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2lu
ZG93ID0gYWRvcHROUyhbW1dLUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxl
TWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10p
OwogICAgIFttX3BsYWNlaG9sZGVyV2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpOT107CiAg
ICAgCiAgICAgbV9hY3RpdmF0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9uV2lsbEJlY29tZUFj
dGl2ZU5vdGlmaWNhdGlvbiBvYmplY3Q6TlNBcHAgcXVldWU6bmlsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXgg
YTQ4Mzk2NGQ4ZjFmMjI2ZDRhZWNjMjdjY2IwZjA3NjA3MWI3YmJkMS4uYmI1YWQ3YzIxZTgxMGNh
MzY1NjVlY2M3NzdkMDZhZjMxYmIwMjg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNDgsNiArNDgsNyBA
QAogI2ltcG9ydCA8V2ViQ29yZS9OU1NoYXJpbmdTZXJ2aWNlU1BJLmg+CiAjaW1wb3J0IDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQg
PHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtNDYzLDEwICs0NjQsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51
UHJveHlNYWM6OnNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4
dE1lbgogICAgIFtbV0tNZW51VGFyZ2V0IHNoYXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0
aGlzXTsKIAogICAgIE5TUG9pbnQgbWVudUxvY2F0aW9uID0gW21fd2ViVmlldyBjb252ZXJ0UG9p
bnQ6bV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpIHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmll
ckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2luZG93
TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwIGxvY2F0aW9u
Om1lbnVMb2NhdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOm1f
d2ViVmlldy53aW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xp
Y2tDb3VudDowIHByZXNzdXJlOjBdOwogICAgIFtOU01lbnUgcG9wVXBDb250ZXh0TWVudTptX21l
bnUuZ2V0KCkgd2l0aEV2ZW50OmV2ZW50IGZvclZpZXc6bV93ZWJWaWV3XTsKIAogICAgIGlmICht
X2NvbnRleHRNZW51TGlzdGVuZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDBhNzk5MTM0NmQxNWNjZmFjNzc0
MzVlZjMwZWY4ZGY4MjJhZmFlMjMuLmYwNmI1ODQyYWNkNTM0ZGZlMjQxMGZlY2E5YTFhZGZiNmVh
OTc3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVj
dG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNw
ZWN0b3JQcm94eU1hYy5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0
cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQv
QmFzZTY0Lmg+CiAKIFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQ
cml2YXRlRnJhbWV3b3JrcywgQSkKQEAgLTQ4LDEwICs0OSw3IEBAIFNPRlRfTElOS19TVEFHRURf
RlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJhbWV3b3JrcywgQSkKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotc3RhdGljIGNvbnN0IE5TVUludGVnZXIgd2luZG93U3R5
bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNrIHwgTlNDbG9zYWJsZVdpbmRvd01hc2sgfCBOU01p
bmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzayB8IE5TRnVsbFNp
emVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitz
dGF0aWMgY29uc3QgTlNVSW50ZWdlciB3aW5kb3dTdHlsZU1hc2sgPSBOU1dpbmRvd1N0eWxlTWFz
a1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dpbmRvd1N0eWxlTWFza01p
bmlhdHVyaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUgfCBOU1dpbmRvd1N0eWxl
TWFza0Z1bGxTaXplQ29udGVudFZpZXc7CiAKIC8vIFRoZSB0aW1lIHdlIGtlZXAgb3VyIFdlYlZp
ZXcgYWxpdmUgYmVmb3JlIGNsb3NpbmcgaXQgYW5kIGl0cyBwcm9jZXNzLgogLy8gUmV1c2luZyB0
aGUgV2ViVmlldyBpbXByb3ZlcyBzdGFydCB1cCB0aW1lIGZvciBwZW9wbGUgdGhhdCBqdW1wIGlu
IGFuZCBvdXQgb2YgdGhlIEluc3BlY3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4IGQyOWQwODkwNTJjODg3YWZi
ODY0MjM4NDU1YWExODg0YjRkZDQ2NWMuLmMyMjlmYmQwYjhiZWJiYWYxMTVjMzUzZTgzYzdlMDg0
NjUwNjAzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9w
dXBNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQ
b3B1cE1lbnVQcm94eU1hYy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiU3RyaW5nVXRp
bGl0aWVzLmgiCiAjaW1wb3J0ICJXZWJQb3B1cEl0ZW0uaCIKICNpbXBvcnQgPFdlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03NCwxOSArNzUsMTMg
QEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUoY29uc3QgVmVjdG9yPFdlYlBv
cHVwSXRlbT4mIGl0ZW1zLCBOU0ZvbnQgKmYKICAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFi
bGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhT
dHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11dGFibGVDb3B5XSk7CiAgICAgICAgICAgICBO
U1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiA9IGl0ZW1zW2ldLm1fdGV4dERpcmVj
dGlvbiA9PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0Rp
cmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VX
cml0aW5nRGlyZWN0aW9uOndyaXRpbmdEaXJlY3Rpb25dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpt
ZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU0xlZnRUZXh0QWxpZ25tZW50IDogTlNSaWdodFRl
eHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAg
W3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBO
U1RleHRBbGlnbm1lbnRMZWZ0IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICAgICAg
UmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IGF0dHJpYnV0ZXMgPSBhZG9wdE5TKFtbTlNN
dXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAg
ICAgICAgICBwYXJhZ3JhcGhTdHlsZS5nZXQoKSwgTlNQYXJhZ3JhcGhTdHlsZUF0dHJpYnV0ZU5h
bWUsCiAgICAgICAgICAgICAgICAgZm9udCwgTlNGb250QXR0cmlidXRlTmFtZSwKICAgICAgICAg
ICAgIG5pbF0pOwogICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLm1faGFzVGV4dERpcmVjdGlvbk92
ZXJyaWRlKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAg
ICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5T
KFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNU
ZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9u
VmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5n
RGlyZWN0aW9uICsgTlNXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKICAgICAgICAgICAgICAg
ICBSZXRhaW5QdHI8TlNBcnJheT4gd3JpdGluZ0RpcmVjdGlvbkFycmF5ID0gYWRvcHROUyhbW05T
QXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czp3cml0aW5nRGlyZWN0aW9uVmFsdWUuZ2V0KCks
IG5pbF0pOwogICAgICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGly
ZWN0aW9uQXJyYXkuZ2V0KCkgZm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVd
OwogICAgICAgICAgICAgfQpAQCAtMTU0LDE4ICsxNDksMTUgQEAgdm9pZCBXZWJQb3B1cE1lbnVQ
cm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9u
IHRleHQKIAogICAgIE5TQ29udHJvbFNpemUgY29udHJvbFNpemU7CiAgICAgc3dpdGNoIChkYXRh
Lm1lbnVTaXplKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgY2Fz
ZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDoKLSAgICAgICAg
Y29udHJvbFNpemUgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUg
PSBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3Jl
OjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZVNtYWxsOgotICAgICAgICBjb250cm9sU2l6
ZSA9IE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xT
aXplU21hbGw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51U3R5
bGU6OlBvcHVwTWVudVNpemVNaW5pOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TTWluaUNvbnRy
b2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVNaW5pOwogICAgICAg
ICBicmVhazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBSZWY8
V2ViUG9wdXBNZW51UHJveHlNYWM+IHByb3RlY3QoKnRoaXMpOwpAQCAtMTgzLDEzICsxNzUsMTEg
QEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0
JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICBpZiAoIW1fY2xpZW50LT5jdXJyZW50bHlQ
cm9jZXNzZWRNb3VzZURvd25FdmVudCgpKQogICAgICAgICByZXR1cm47CiAgICAgCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgTlNFdmVudCogaW5pdGlhdGluZ05TRXZl
bnQgPSBtX2NsaWVudC0+Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKS0+bmF0aXZl
RXZlbnQoKTsKLSAgICBpZiAoW2luaXRpYXRpbmdOU0V2ZW50IHR5cGVdICE9IE5TTGVmdE1vdXNl
RG93bikKKyAgICBpZiAoW2luaXRpYXRpbmdOU0V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlTGVm
dE1vdXNlRG93bikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICpm
YWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91
c2VVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlv
bjpbaW5pdGlhdGluZ05TRXZlbnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdOU0V2ZW50IG1v
ZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGltZXN0YW1wOltpbml0aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBdCkBAIC0xOTgsMTMgKzE4OCwx
NCBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJl
Y3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBldmVudE51bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQgZXZlbnROdW1iZXJd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlja0NvdW50Oltp
bml0aWF0aW5nTlNFdmVudCBjbGlja0NvdW50XQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmVzc3VyZTpbaW5pdGlhdGluZ05TRXZlbnQgcHJlc3N1cmVdXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFr
ZUV2ZW50IGF0U3RhcnQ6WUVTXTsKKyAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3IHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNNb3VzZU1vdmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Y2F0aW9uOltbbV93ZWJWaWV3IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBt
b3VzZUxvY2F0aW9uXV0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jh
c2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5n
TlNFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRpbWVzdGFtcDpbaW5pdGlhdGluZ05TRXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQgd2luZG93TnVt
YmVyXQpAQCAtMjEyLDcgKzIwMyw2IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQ
b3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNsaWNrQ291bnQ6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBb
TlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdp
bi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBE
RlBsdWdpbi5tbQppbmRleCA1ZWRlNTZlZWU0MGFjZmRiOTkwMTE5ZGU3YWNlOTE4ZTY3OGJjNjY2
Li4xMjUxOGRmMzM0Y2YzZmRkNjU4ZGY4OTE5YzMzNjFiMDg0MmUyZGFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4u
bW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVk
UERGUGx1Z2luLm1tCkBAIC04MCw2ICs4MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1doZWVsRXZl
bnRUZXN0VHJpZ2dlci5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1w
b3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTI3
OCwzMyArMTI3OSwyOCBAQCB2b2lkIFBERlBsdWdpbjo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0KHVp
bnQ2NF90LCBjb25zdCBXVEY6OlN0cmluZyYpCiAgICAgCiBzdGF0aWMgTlNVSW50ZWdlciBtb2Rp
ZmllckZsYWdzRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCkKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gKGV2ZW50LnNoaWZ0S2V5KCkg
PyBOU1NoaWZ0S2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/IE5T
Q29udHJvbEtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5hbHRLZXkoKSA/IE5TQWx0ZXJu
YXRlS2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50Lm1ldGFLZXkoKSA/IE5TQ29tbWFuZEtl
eU1hc2sgOiAwKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gKGV2
ZW50LnNoaWZ0S2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgOiAwKQorICAgICAgICB8
IChldmVudC5jb250cm9sS2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCA6IDApCisg
ICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbiA6IDAp
CisgICAgICAgIHwgKGV2ZW50Lm1ldGFLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5k
IDogMCk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29u
c3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeXBlKQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoZXZlbnQudHlwZSgpKSB7CiAg
ICAgY2FzZSBXZWJFdmVudDo6S2V5RG93bjoKLSAgICAgICAgZXZlbnRUeXBlID0gTlNLZXlEb3du
OworICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUtleURvd247CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIGNhc2UgV2ViRXZlbnQ6OktleVVwOgotICAgICAgICBldmVudFR5cGUgPSBO
U0tleVVwOworICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUtleVVwOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZURvd246CiAgICAgICAgIHN3aXRj
aCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewog
ICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVu
dFR5cGUgPSBOU0xlZnRNb3VzZURvd247CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd247CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2Fz
ZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5T
UmlnaHRNb3VzZURvd247CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0
TW91c2VEb3duOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzEyLDEwICsxMzA4LDEwIEBAIHN0YXRpYyBi
b29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZl
bnRUeXBlJiBldmVudFR5CiAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VVcDoKICAgICAgICAgc3dp
dGNoIChzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7
CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2
ZW50VHlwZSA9IE5TTGVmdE1vdXNlVXA7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50
VHlwZUxlZnRNb3VzZVVwOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2Ug
V2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1Jp
Z2h0TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzIzLDEzICsxMzE5LDEzIEBAIHN0YXRpYyBib29sIGdl
dEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBl
JiBldmVudFR5CiAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VNb3ZlOgogICAgICAgICBzd2l0Y2gg
KHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAg
ICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRU
eXBlID0gTlNMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVu
dFR5cGVMZWZ0TW91c2VEcmFnZ2VkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUg
PSBOU1JpZ2h0TW91c2VEcmFnZ2VkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5
cGVSaWdodE1vdXNlRHJhZ2dlZDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBj
YXNlIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNN
b3VzZU1vdmVkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVNb3VzZU1vdmVk
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0xMzM3LDcgKzEzMzMsNiBAQCBzdGF0aWMgYm9vbCBnZXRFdmVu
dFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZl
bnRUeQogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAgICAgCiBOU0V2ZW50ICpQREZQbHVnaW46Om5zRXZl
bnRGb3JXZWJNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5u
b3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luVGV4dEFubm90YXRpb24ubW0KaW5kZXggNmM2MGJkZGU5NWZkZDMxN2Y2YjcxNGUxZjQ0ZjZl
ZWIyZjMzZDMwYi4uNjAzMWM1OTBkYzIzMWVjY2ZlZWEyMGEwNDdmODU2OTZjYTVkOGEzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5U
ZXh0QW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCkBAIC00NCw2ICs0NCw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL0hUTUxUZXh0QXJlYUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5Ym9h
cmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTUzLDIxICs1NCwxOCBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBz
dGF0aWMgY29uc3QgU3RyaW5nIGNzc0FsaWdubWVudFZhbHVlRm9yTlNUZXh0QWxpZ25tZW50KE5T
VGV4dEFsaWdubWVudCBhbGlnbm1lbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCiAgICAgc3dpdGNoIChhbGlnbm1lbnQpIHsKLSAgICBjYXNlIE5TTGVmdFRleHRBbGln
bm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnRMZWZ0OgogICAgICAgICByZXR1cm4gImxl
ZnQiOwotICAgIGNhc2UgTlNSaWdodFRleHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGln
bm1lbnRSaWdodDoKICAgICAgICAgcmV0dXJuICJyaWdodCI7Ci0gICAgY2FzZSBOU0NlbnRlclRl
eHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnRDZW50ZXI6CiAgICAgICAgIHJl
dHVybiAiY2VudGVyIjsKLSAgICBjYXNlIE5TSnVzdGlmaWVkVGV4dEFsaWdubWVudDoKKyAgICBj
YXNlIE5TVGV4dEFsaWdubWVudEp1c3RpZmllZDoKICAgICAgICAgcmV0dXJuICJqdXN0aWZ5IjsK
LSAgICBjYXNlIE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1l
bnROYXR1cmFsOgogICAgICAgICByZXR1cm4gIi13ZWJraXQtc3RhcnQiOwogICAgIH0KLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQppbmRleCBh
MzZmM2IzMjNhYjkxNjUxNDc3YmQzYzdiZTI4YzZhMjNkZTliMTdkLi42MjZlNDM2YzZhYzRmZTZi
OWE3ZWI1M2MyZDM1NmJmNzk2ZmY0NDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMu
bW0KQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU3RyaW5nVHJ1bmNhdG9yLmg+
CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CkBAIC02MywxMCArNjQsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNv
bnZlcnRJbWFnZVRvQml0bWFwKE5TSW1hZ2UgKmltYWdlLCBjb25zdCBJbgogICAgIFJldGFpblB0
cjxOU0dyYXBoaWNzQ29udGV4dD4gc2F2ZWRDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1
cnJlbnRDb250ZXh0XTsKIAogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4
dDpbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9ydDpncmFw
aGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpIGZsaXBwZWQ6WUVTXV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW2ltYWdlIGRyYXdJblJlY3Q6TlNNYWtlUmVj
dCgwLCAwLCBiaXRtYXAtPnNpemUoKS53aWR0aCgpLCBiaXRtYXAtPnNpemUoKS5oZWlnaHQoKSkg
ZnJvbVJlY3Q6TlNaZXJvUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0
aW9uOjEgcmVzcGVjdEZsaXBwZWQ6WUVTIGhpbnRzOm5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgW2ltYWdlIGRyYXdJblJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBiaXRtYXAt
PnNpemUoKS53aWR0aCgpLCBiaXRtYXAtPnNpemUoKS5oZWlnaHQoKSkgZnJvbVJlY3Q6TlNaZXJv
UmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246
MSByZXNwZWN0RmxpcHBlZDpZRVMgaGludHM6bmlsXTsKIAogICAgIFtOU0dyYXBoaWNzQ29udGV4
dCBzZXRDdXJyZW50Q29udGV4dDpzYXZlZENvbnRleHQuZ2V0KCldOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294100</attachid>
            <date>2016-11-07 16:36:04 -0800</date>
            <delta_ts>2016-11-07 17:02:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107163156.patch</filename>
            <type>text/plain</type>
            <size>159024</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLmQ1MGYzNTBiMmVkNTE5NTBhNTRhYTNmY2ZiYWE1MzFkZjFjZjYzM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xMjEwLDggKzEyMTAsNiBAQCBOU0RpY3Rpb25hcnkgKkhUTUxDb252ZXJ0
ZXI6OmNvbXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICAg
ICAgU3RyaW5nIHRleHRBbGlnbiA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGNvcmVC
bG9ja0VsZW1lbnQsIENTU1Byb3BlcnR5VGV4dEFsaWduKTsKICAgICAgICAgaWYgKHRleHRBbGln
bi5sZW5ndGgoKSkgewogICAgICAgICAgICAgLy8gV2ViS2l0IGNhbiByZXR1cm4gLWtodG1sLWxl
ZnQsIC1raHRtbC1yaWdodCwgLWtodG1sLWNlbnRlcgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgogICAgICAgICAgICAgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgibGVmdCIpKQog
ICAgICAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25t
ZW50TGVmdF07CiAgICAgICAgICAgICBlbHNlIGlmICh0ZXh0QWxpZ24uZW5kc1dpdGgoInJpZ2h0
IikpCkBAIC0xMjIwLDcgKzEyMTgsNiBAQCBOU0RpY3Rpb25hcnkgKkhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICAgICAgICAg
ICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVudENlbnRlcl07
CiAgICAgICAgICAgICBlbHNlIGlmICh0ZXh0QWxpZ24uZW5kc1dpdGgoImp1c3RpZnkiKSkKICAg
ICAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVu
dEp1c3RpZmllZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIH0KIAog
ICAgICAgICBTdHJpbmcgZGlyZWN0aW9uID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUo
Y29yZUJsb2NrRWxlbWVudCwgQ1NTUHJvcGVydHlEaXJlY3Rpb24pOwpAQCAtMTg1MSwxOCArMTg0
OCwxMiBAQCBCT09MIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzRWxlbWVudChFbGVtZW50JiBlbGVt
ZW50LCBOU0ludGVnZXIgZGVwdGgpCiAgICAgZWxzZSB7CiAgICAgICAgIFN0cmluZyBiaWRpID0g
X2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVydHlVbmljb2Rl
QmlkaSk7CiAgICAgICAgIGlmIChiaWRpID09ICJlbWJlZCIpIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIE5TVUludGVnZXIgdmFsID0gTlNUZXh0V3Jp
dGluZ0RpcmVjdGlvbkVtYmVkZGluZzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgICAgIE5TVUludGVnZXIgdmFsID0gTlNXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5nOwog
ICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQsIENT
U1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0gTlNX
cml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJlY3Rp
b25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6dmFs
XV07CiAgICAgICAgIH0gZWxzZSBpZiAoYmlkaSA9PSAiYmlkaS1vdmVycmlkZSIpIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIE5TVUludGVnZXIgdmFs
ID0gTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25P
dmVycmlkZTsKICAgICAgICAgICAgIGlmIChfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShl
bGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbikgPT0gInJ0bCIpCiAgICAgICAgICAgICAgICAg
dmFsIHw9IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICAgICAgW193cml0
aW5nRGlyZWN0aW9uQXJyYXkgYWRkT2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJ
bnRlZ2VyOnZhbF1dOwpAQCAtMjA2MywxNCArMjA1NCw3IEBAIHZvaWQgSFRNTENvbnZlcnRlcjo6
X2FkZE1hcmtlcnNUb0xpc3QoTlNUZXh0TGlzdCAqbGlzdCwgTlNSYW5nZSByYW5nZSkKICAgICAg
ICAgICAgICAgICAgICAgdGFiID0gW1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhU
eXBlOk5TTGVmdFRhYlN0b3BUeXBlIGxvY2F0aW9uOm1hcmtlckxvY2F0aW9uXTsKICAgICAgICAg
ICAgICAgICAgICAgW25ld1N0eWxlIGFkZFRhYlN0b3A6dGFiXTsKICAgICAgICAgICAgICAgICAg
ICAgW3RhYiByZWxlYXNlXTsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICAgICAgICAgICAg
IHRhYiA9IFtbUGxhdGZvcm1OU1RleHRUYWIgYWxsb2NdIGluaXRXaXRoVGV4dEFsaWdubWVudDpO
U1RleHRBbGlnbm1lbnROYXR1cmFsIGxvY2F0aW9uOmxpc3RMb2NhdGlvbiBvcHRpb25zOkB7IH1d
OwotI2Vsc2UKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAg
ICAgICAgICAgdGFiID0gW1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxp
Z25tZW50Ok5TTmF0dXJhbFRleHRBbGlnbm1lbnQgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlv
bnM6QHsgfV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKICAgICAgICAg
ICAgICAgICAgICAgW25ld1N0eWxlIGFkZFRhYlN0b3A6dGFiXTsKICAgICAgICAgICAgICAgICAg
ICAgW3RhYiByZWxlYXNlXTsKICAgICAgICAgICAgICAgICAgICAgW19hdHRyU3RyIGFkZEF0dHJp
YnV0ZTpOU1BhcmFncmFwaFN0eWxlQXR0cmlidXRlTmFtZSB2YWx1ZTpuZXdTdHlsZSByYW5nZTpw
YXJhZ3JhcGhSYW5nZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVu
dEhhbmRsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW0KaW5kZXggMzM1ZTYyNjE0OGU5MzI5ZjVkYWNmMzMzYzNjMThjYzY4NjI0NTYxZC4uZDFlODll
MjE2YzQxMzRkMTQxMjY2NmVhMjA3ZWI0MTgyMWEwNGNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtNjcsNiArNjcsNyBAQAogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRT
KQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL0V2ZW50SGFuZGxlck1hY0dlc3R1cmUuY3BwPgpA
QCAtMTUwLDEwICsxNTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZlbnQoTlNFdmVudCAq
ZXZlbnQpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0tl
eURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFTU0VSVChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlEb3duIHx8
IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleVVwKTsKIAogICAgIEN1cnJlbnRFdmVudFNj
b3BlIHNjb3BlKGV2ZW50LCBuaWwpOwogICAgIHJldHVybiBrZXlFdmVudChQbGF0Zm9ybUV2ZW50
RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KGV2ZW50KSk7CkBAIC0yMDYsMTIg
KzIwNCw5IEBAIHN0YXRpYyBib29sIGxhc3RFdmVudElzTW91c2VVcCgpCiAKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgTlNFdmVudCAqY3VycmVudEV2ZW50QWZ0ZXJIYW5k
bGluZ01vdXNlRG93biA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIHJldHVybiBFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50
KCkgIT0gY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNlRG93bgotICAgICAgICAmJiBbY3Vy
cmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNlRG93biB0eXBlXSA9PSBOU0xlZnRNb3VzZVVwCisg
ICAgICAgICYmIFtjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5T
RXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAgICAgJiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxp
bmdNb3VzZURvd24gdGltZXN0YW1wXSA+PSBbRXZlbnRIYW5kbGVyOjpjdXJyZW50TlNFdmVudCgp
IHRpbWVzdGFtcF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTM3NSw1OCArMzcwLDU1
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzU3ViZnJhbWVFdmVudFRvU3ViZnJhbWUoTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNo
IChbY3VycmVudE5TRXZlbnQoKSB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJh
Z2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5T
UmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICAvLyBUaGlzIGNoZWNrIGlzIGJvZ3VzIGFu
ZCByZXN1bHRzIGluIDxyZGFyOi8vNjgxMzgzMD4sIGJ1dCByZW1vdmluZyBpdCBicmVha3MgYSBu
dW1iZXIgb2YKLSAgICAgICAgICAgIC8vIGxheW91dCB0ZXN0cy4KLSAgICAgICAgICAgIGlmICgh
bV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFn
Z2VkOgorICAgICAgICAvLyBUaGlzIGNoZWNrIGlzIGJvZ3VzIGFuZCByZXN1bHRzIGluIDxyZGFy
Oi8vNjgxMzgzMD4sIGJ1dCByZW1vdmluZyBpdCBicmVha3MgYSBudW1iZXIgb2YKKyAgICAgICAg
Ly8gbGF5b3V0IHRlc3RzLgorICAgICAgICBpZiAoIW1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAg
ICAgICAgICAgaWYgKHN1YmZyYW1lLT5wYWdlKCktPmRyYWdDb250cm9sbGVyKCkuZGlkSW5pdGlh
dGVEcmFnKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoc3Vi
ZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWcoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoK
LSAgICAgICAgICAgIC8vIFNpbmNlIHdlJ3JlIHBhc3NpbmcgaW4gY3VycmVudE5TRXZlbnQoKSBo
ZXJlLCB3ZSBjYW4gY2FsbAotICAgICAgICAgICAgLy8gaGFuZGxlTW91c2VNb3ZlRXZlbnQoKSBk
aXJlY3RseSwgc2luY2UgdGhlIHNhdmUvcmVzdG9yZSBvZgotICAgICAgICAgICAgLy8gY3VycmVu
dE5TRXZlbnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0Lgot
ICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAgICAg
ICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VF
dmVudCgpLCBob3ZlcmVkTm9kZSk7Ci0gICAgICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vidmll
dyA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU1vdXNlTW92ZWQ6CisgICAgICAgIC8vIFNpbmNlIHdlJ3JlIHBhc3NpbmcgaW4gY3VycmVudE5T
RXZlbnQoKSBoZXJlLCB3ZSBjYW4gY2FsbAorICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVu
dCgpIGRpcmVjdGx5LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCisgICAgICAgIC8vIGN1cnJl
bnROU0V2ZW50KCkgdGhhdCBtb3VzZU1vdmVkKCkgZG9lcyB3b3VsZCBoYXZlIG5vIGVmZmVjdC4K
KyAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7CisgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKKyAgICAgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxl
cigpLmhhbmRsZU1vdXNlTW92ZUV2ZW50KGN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSwgaG92
ZXJlZE5vZGUpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3du
OiB7Ci0gICAgICAgICAgICBOb2RlKiBub2RlID0gZXZlbnQudGFyZ2V0Tm9kZSgpOwotICAgICAg
ICAgICAgaWYgKCFub2RlKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIGF1dG8qIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKLSAgICAgICAgICAgIGlmICgh
aXM8UmVuZGVyV2lkZ2V0PihyZW5kZXJlcikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgV2lkZ2V0KiB3aWRnZXQgPSBkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KCpy
ZW5kZXJlcikud2lkZ2V0KCk7Ci0gICAgICAgICAgICBpZiAoIXdpZGdldCB8fCAhd2lkZ2V0LT5p
c0ZyYW1lVmlldygpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IGlmICghcGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoZG93bmNhc3Q8UmVuZGVyV2lk
Z2V0PihyZW5kZXJlcikpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIG1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6IHsKLSAgICAgICAg
ICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQotICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgICAgIEFTU0VSVCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOwot
ICAgICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSB0cnVlOwotICAgICAgICAgICAg
c3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KGN1cnJlbnRQ
bGF0Zm9ybU1vdXNlRXZlbnQoKSk7Ci0gICAgICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vidmll
dyA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAg
ZGVmYXVsdDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjogeworICAgICAgICBO
b2RlKiBub2RlID0gZXZlbnQudGFyZ2V0Tm9kZSgpOworICAgICAgICBpZiAoIW5vZGUpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGF1dG8qIHJlbmRlcmVyID0gbm9kZS0+cmVu
ZGVyZXIoKTsKKyAgICAgICAgaWYgKCFpczxSZW5kZXJXaWRnZXQ+KHJlbmRlcmVyKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgV2lkZ2V0KiB3aWRnZXQgPSBkb3duY2FzdDxS
ZW5kZXJXaWRnZXQ+KCpyZW5kZXJlcikud2lkZ2V0KCk7CisgICAgICAgIGlmICghd2lkZ2V0IHx8
ICF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGlmICghcGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoZG93bmNhc3Q8UmVuZGVy
V2lkZ2V0PihyZW5kZXJlcikpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBt
X21vdXNlRG93bldhc0luU3ViZnJhbWUgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOiB7CisgICAgICAgIGlmICghbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpKTsKKyAgICAg
ICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
IAogICAgIHJldHVybiBmYWxzZTsKQEAgLTQ3OSwxMSArNDcxLDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW4KICAgICAgICAgcmV0dXJuIGRvd25jYXN0PEZyYW1lVmlldz4od2lkZ2V0KS5mcmFt
ZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAgICAgfQog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtjdXJyZW50TlNF
dmVudCgpIHR5cGVdICE9IE5TU2Nyb2xsV2hlZWwgfHwgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcp
CisgICAgaWYgKFtjdXJyZW50TlNFdmVudCgpIHR5cGVdICE9IE5TRXZlbnRUeXBlU2Nyb2xsV2hl
ZWwgfHwgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIEFTU0VSVChub2RlVmlldyk7CiAgICAg
QVNTRVJUKFtub2RlVmlldyBzdXBlcnZpZXddKTsKQEAgLTU4NiwxMiArNTc1LDEwIEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcoTlNFdmVudCAq
aW5pdGlhdGluZ0V2ZW50KQogCiAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsK
ICAgICBpbnQgZXZlbnRUeXBlID0gW2luaXRpYXRpbmdFdmVudCB0eXBlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoZXZlbnRUeXBlID09IE5TTGVmdE1vdXNl
RG93biB8fCBldmVudFR5cGUgPT0gTlNLZXlEb3duKSB7CisgICAgaWYgKGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd24gfHwgZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlS2V5RG93
bikgewogICAgICAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBuaWw7Ci0gICAgICAgIGlmIChldmVu
dFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duKSB7Ci0gICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAorICAgICAgICBpZiAoZXZlbnRU
eXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bikgeworICAgICAgICAgICAgZmFrZUV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlh
dGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0
aWF0aW5nRXZlbnQgdGltZXN0YW1wXQpAQCAtNjAyLDggKzU4OSw4IEBAIHZvaWQgRXZlbnRIYW5k
bGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGlu
Z0V2ZW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNz
dXJlOltpbml0aWF0aW5nRXZlbnQgcHJlc3N1cmVdXTsKICAgICAgICAgCiAgICAgICAgICAgICBb
TlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107Ci0gICAgICAgIH0gZWxzZSB7
IC8vIGV2ZW50VHlwZSA9PSBOU0tleURvd24KLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2
ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAorICAgICAgICB9IGVsc2UgeyAvLyBldmVudFR5
cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duCisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNFdmVu
dCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W2luaXRpYXRpbmdFdmVudCBsb2NhdGlvbklu
V2luZG93XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFn
czpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nRXZlbnQgdGltZXN0YW1wXQpA
QCAtNjE5LDggKzYwNiwxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVudHNBZnRl
cldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCByZWFsbHkgZ2V0IHRoZSBjdXJyZW50IG1vZGlmaWVyRmxhZ3MgaGVyZSwg
YnV0IHRoZXJlJ3Mgbm8gd2F5IHRvIHBvbGwKICAgICAgICAgLy8gdGhlbSBpbiBDb2NvYSwgYW5k
IGJlY2F1c2UgdGhlIGV2ZW50IHN0cmVhbSB3YXMgc3RvbGVuIGJ5IHRoZSBDYXJib24gbWVudSBj
b2RlIHdlIGhhdmUKICAgICAgICAgLy8gbm8gdXAtdG8tZGF0ZSBjYWNoZSBvZiB0aGVtIGFueXdo
ZXJlLgotICAgICAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNN
b3VzZU1vdmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlv
bjpbW3ZpZXctPnBsYXRmb3JtV2lkZ2V0KCkgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltO
U0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW3ZpZXctPnBsYXRmb3JtV2lkZ2V0KCkgd2lu
ZG93XQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2Nh
dGlvbl1dCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxh
Z3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5p
dGlhdGluZ0V2ZW50IHRpbWVzdGFtcF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2luZG93TnVtYmVyOltpbml0aWF0aW5nRXZlbnQgd2luZG93TnVtYmVyXQpAQCAtNjI4LDcg
KzYxOSw2IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJh
Y2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsaWNrQ291bnQ6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIFtO
U0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKICAgICB9CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRleCBhNzRk
YTg1YWNlY2EzYzY2OThkZDE1NmFiMzFhNmM5NzFhMzU0ZTZlLi4xNGZmMGU3YzdkOWU2OWRlNGZj
YmIzNGNiMWZiNThlNDhmNjcxZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIlF1YXJ0ekNv
cmVTUEkuaCIKICNpbXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKICNpbXBvcnQgIldlYkFjdGlvbkRp
c2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRp
YmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIGNvbnN0IENGVGltZUludGVydmFsIGJvdW5jZUFuaW1h
dGlvbkR1cmF0aW9uID0gMC4xMjsKIGNvbnN0IENGVGltZUludGVydmFsIGJvdW5jZVdpdGhDcm9z
c2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKQEAgLTQ1NywxMyArNDU4LDEwIEBAIHZvaWQg
VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4g
dGV4dEluZGljYXRvciwgQ0dSCiAgICAgdmVydGljYWxNYXJnaW4gPSBDR0NlaWxpbmcodmVydGlj
YWxNYXJnaW4pOwogCiAgICAgQ0dSZWN0IGNvbnRlbnRSZWN0ID0gQ0dSZWN0SW5zZXQodGV4dEJv
dW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIC1ob3Jpem9udGFsTWFyZ2luLCAtdmVydGlj
YWxNYXJnaW4pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TUmVj
dCB3aW5kb3dDb250ZW50UmVjdCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1lUmVjdDpO
U1JlY3RGcm9tQ0dSZWN0KGNvbnRlbnRSZWN0KSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93
TWFza107CisgICAgTlNSZWN0IHdpbmRvd0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRS
ZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZyb21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpO
U1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3NdOwogICAgIE5TUmVjdCBpbnRlZ3JhbFdpbmRvd0Nv
bnRlbnRSZWN0ID0gTlNJbnRlZ3JhbFJlY3Qod2luZG93Q29udGVudFJlY3QpOwogICAgIE5TUG9p
bnQgZnJhY3Rpb25hbFRleHRPZmZzZXQgPSBOU01ha2VQb2ludCh3aW5kb3dDb250ZW50UmVjdC5v
cmlnaW4ueCAtIGludGVncmFsV2luZG93Q29udGVudFJlY3Qub3JpZ2luLngsIHdpbmRvd0NvbnRl
bnRSZWN0Lm9yaWdpbi55IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueSk7Ci0g
ICAgbV90ZXh0SW5kaWNhdG9yV2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0OmludGVncmFsV2luZG93Q29udGVudFJlY3Qgc3R5bGVNYXNrOk5TQm9y
ZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5P
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgbV90ZXh0SW5kaWNhdG9yV2lu
ZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmludGVn
cmFsV2luZG93Q29udGVudFJlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVz
cyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBbbV90ZXh0
SW5kaWNhdG9yV2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBjbGVhckNvbG9yXV07
CiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRPcGFxdWU6Tk9dOwogICAgIFttX3RleHRJ
bmRpY2F0b3JXaW5kb3cgc2V0SWdub3Jlc01vdXNlRXZlbnRzOllFU107CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tCmluZGV4IDVhNDlmM2FiM2Jk
MGU0YjJhMjJlNDRmYjVjMTJjNmNiODdiNDVjZTMuLjJiNDg1ZDlkYjU3NzY5YTkyMTg2NmMwMDUz
NmRmNjgxOTQ4MTFmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9JY29uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9JY29uTWFjLm1tCkBAIC0yOCw3ICsyOCw4IEBACiAjaW1wb3J0ICJMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIlVUSVV0aWxpdGllcy5oIgogI2ltcG9ydCA8d3Rm
L1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05OCwxMCArOTksNyBA
QCB2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQogCiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ3VycmVu
dEdDKGNvbnRleHQpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
W21fbnNJbWFnZSBkcmF3SW5SZWN0OnJlY3QgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbbV9u
c0ltYWdlIHNpemVdLndpZHRoLCBbbV9uc0ltYWdlIHNpemVdLmhlaWdodCkgb3BlcmF0aW9uOk5T
Q29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBbbV9uc0ltYWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VS
ZWN0KDAsIDAsIFttX25zSW1hZ2Ugc2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0
KSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4w
Zl07CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJz
b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4
IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5YzBiZDBmNjY5ZWIyNTRkMGMuLjcyOGQzNDRhOTQ1MDM0
YjljN2EyMDg1ZjQ1NjNkYzFiYjY5NjRlNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9DdXJzb3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0N1cnNvck1hYy5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oIgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIFdlYkNvcmVDdXJzb3JCdW5kbGUgOiBOU09i
amVjdCB7IH0KIEBlbmQKQEAgLTY0LDEwICs2NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJz
b3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJbWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RT
CiAgICAgICAgIE5TUmVjdCBmcm9tUmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgaW1hZ2UtPndpZHRo
KCksIGltYWdlLT5oZWlnaHQoKSk7CiAKICAgICAgICAgW2V4cGFuZGVkSW1hZ2UgbG9ja0ZvY3Vz
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW25zSW1hZ2Ug
ZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRl
U291cmNlT3ZlciBmcmFjdGlvbjoxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgW25zSW1hZ2UgZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0
aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwogICAgICAg
ICBbZXhwYW5kZWRJbWFnZSB1bmxvY2tGb2N1c107CiAKICAgICAgICAgcmV0dXJuIGFkb3B0TlMo
W1tOU0N1cnNvciBhbGxvY10gaW5pdFdpdGhJbWFnZTpleHBhbmRlZEltYWdlLmdldCgpIGhvdFNw
b3Q6aG90U3BvdF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMu
bW0KaW5kZXggNjgyNDZiZWZhNTIzZWRmZjNiNjA1YzYwMTE4NzE5ZDQ3Mjk4ZDA5Yi4uMGZmNDIw
MjAwY2M4YmQzNDg3ZTQ1NmY3NzkwZWRlZTk1ZThmNTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJT
dHJpbmdUcnVuY2F0b3IuaCIKICNpbXBvcnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzUsMTAgKzc2LDcgQEAgUmV0
YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihSZXRhaW5QdHI8TlNJ
bWFnZT4gaW1hZ2UsIGZsb2F0IGQKICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVkSW1h
Z2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBhbGxvY10gaW5pdFdpdGhTaXplOltpbWFnZS5nZXQoKSBz
aXplXV0pOwogICAgIAogICAgIFtkaXNzb2x2ZWRJbWFnZS5nZXQoKSBsb2NrRm9jdXNdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtpbWFnZS5nZXQoKSBkcmF3QXRQ
b2ludDpOU1plcm9Qb2ludCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXplXS53
aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdodCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weSBmcmFj
dGlvbjpkZWx0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlLmdl
dCgpIGRyYXdBdFBvaW50Ok5TWmVyb1BvaW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2lt
YWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGluZ09wZXJhdGlvbkNvcHkgZnJhY3Rpb246ZGVsdGFdOwogICAgIFtkaXNzb2x2ZWRJbWFnZS5n
ZXQoKSB1bmxvY2tGb2N1c107CiAKICAgICByZXR1cm4gZGlzc29sdmVkSW1hZ2U7CkBAIC0xMTks
MTAgKzExNyw4IEBAIFJldGFpblB0cjxOU0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2Uo
SW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpCiAgICAgICAgICAgICBbY29jb2FU
cmFuc2Zvcm0uZ2V0KCkgc2V0VHJhbnNmb3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1
Y3QqKSZ0cmFuc2Zvcm1dOwogICAgICAgICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIGNvbmNh
dF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtp
bWFnZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01h
a2VSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29t
cG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxLjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICAgICAgW2ltYWdlLT5zbmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRl
c3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdo
dCgpKSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246
MS4wXTsKKwogICAgICAgICAgICAgW3JvdGF0ZWREcmFnSW1hZ2UuZ2V0KCkgdW5sb2NrRm9jdXNd
OwogCiAgICAgICAgICAgICByZXR1cm4gcm90YXRlZERyYWdJbWFnZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tCmluZGV4IGFmMGEzOTkyYjY2ZTlkNmZmYzAx
NzcxMjQ4NTc2MjZhMDA1YTVlOTAuLmI5Y2M1NDVhOTg0OTM0ZDU0NjBkZGJkZjViZDRlYzNlYTcx
NTkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQpA
QCAtMjUsMTYgKzI1LDE0IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVu
dExvb3AuaCIKKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQog
ewogICAgIFtOU0FwcCBzZXRXaW5kb3dzTmVlZFVwZGF0ZTpZRVNdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVu
dE1hdGNoaW5nTWFzazpOU0FueUV2ZW50TWFzayB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRp
bWVJbnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1
ZXVlOllFU11dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtOU0FwcCBzZW5k
RXZlbnQ6W05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0V2ZW50TWFza0FueSB1bnRpbERh
dGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0Rl
ZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU11dOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4
IGE1ZGYzNDc0YzMxMWM2YTc1NjFkN2Y0ZDQ0NTUzMTRhYTA0ZDAwNzAuLjFjNGUzYzE5ODAzMWNm
ZmE2ZmE5YjY2NTI3MWFiZmE0NzMyZDc2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC01NSw2ICs1NSw3IEBACiAjaW1wb3J0ICJtYXJrdXAu
aCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
I2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2ltcG9ydCA8d3RmL3VuaWNvZGUv
Q2hhcmFjdGVyTmFtZXMuaD4KIApAQCAtNjUzLDExICs2NTQsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6
OnNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBsb2NhdGlv
bikKICAgICAvLyBIYWNrOiBXZSBtdXN0IHBvc3QgYW4gZXZlbnQgdG8gd2FrZSB1cCB0aGUgTlNE
cmFnTWFuYWdlciwgd2hpY2ggaXMgc2l0dGluZyBpbiBhIG5leHRFdmVudCBjYWxsCiAgICAgLy8g
dXAgdGhlIHN0YWNrIGZyb20gdXMgYmVjYXVzZSB0aGUgQ29yZUZvdW5kYXRpb24gZHJhZyBtYW5h
Z2VyIGRvZXMgbm90IHVzZSB0aGUgcnVuIGxvb3AgYnkgaXRzZWxmLgogICAgIC8vIFRoaXMgaXMg
dGhlIG1vc3QgaW5ub2N1b3VzIGV2ZW50IHRvIHVzZSwgcGVyIEtyaXN0ZW4gRm9yc3Rlci4KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9p
bnQKKyAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9pbnQKICAgICAgICAgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjowIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVy
OjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDpZRVNdOwogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMubW0KaW5kZXggZDM0ZDZlYWU5NDhmN2FmY2JhYjMzMDMxNGZkY2JhNzhlOWU0MDBiOC4u
MGQyZTMxOGVjZGZiMTMwNDIzODc3YTczMmQ4MmY4NjkxOTc2OTdlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpA
QCAtNTIsMjcgKzUyLDI0IEBAIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNF
dmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVk
KF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0g
ICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJl
c3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2Vk
OgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVy
ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92
ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNl
IE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBv
aW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOwotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIHsgMCwgMCB9OworICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91
c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246
CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKKyAgICAg
ICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdp
bmRvd10pOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiB7IDAsIDAgfTsKICAgICB9CiB9
CiAKQEAgLTgwLDMzICs3NywzMCBAQCBzdGF0aWMgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2
ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5
cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEID49IDEwMTAwMwotICAgICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNl
IE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAg
ICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAg
ICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmln
aHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNh
c2UgTlNTY3JvbGxXaGVlbDogewotICAgICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUg
aXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93
VmlldyBpcyBmbGlwcGVkLgotICAgICAgICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNv
b3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2lu
ZG93LgotICAgICAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2lu
ZG93XTsKLSAgICAgICAgICAgIGlmICh3aW5kb3dWaWV3KQotICAgICAgICAgICAgICAgIGxvY2F0
aW9uID0gW3dpbmRvd1ZpZXcgY29udmVydFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0g
ICAgICAgICAgICByZXR1cm4gSW50UG9pbnQobG9jYXRpb24pOwotICAgICAgICB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1
cm4gSW50UG9pbnQoKTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVm
dE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmln
aHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6IHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxs
IGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mg
d2luZG93VmlldyBpcyBmbGlwcGVkLgorICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkg
Y29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdX
aW5kb3cuCisgICAgICAgIE5TUG9pbnQgbG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRv
d107CisgICAgICAgIGlmICh3aW5kb3dWaWV3KQorICAgICAgICAgICAgbG9jYXRpb24gPSBbd2lu
ZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9jYXRpb24gZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgcmV0
dXJuIEludFBvaW50KGxvY2F0aW9uKTsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIEludFBvaW50KCk7CiAgICAgfQogfQogCkBAIC0xMTQsNzIgKzEwOCw2MyBAQCBzdGF0aWMg
TW91c2VCdXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBz
d2l0Y2ggKFtldmVudCB0eXBlXSkgewogI2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlw
ZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93
bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5T
UmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNh
c2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsK
LSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1
cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIExlZnRCdXR0
b247CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2Vk
OgorICAgICAgICByZXR1cm4gUmlnaHRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9u
OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBOb0J1dHRvbjsKICAgICB9CiB9CiAKIHN0
YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCog
ZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAg
ICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dl
ZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJu
IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3du
OgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1v
dXNlRG93bjoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0
Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
TW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBO
U0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6
CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoK
KyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3du
OgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
VXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZVVwOgorICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxl
YXNlZDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VN
b3ZlZDsKICAgICB9CiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQg
KmV2ZW50KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
VXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090
aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAg
ICAgICAgICByZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogfQogCkBAIC00OTcsMjggKzQ4MiwyOCBAQCBT
dHJpbmcga2V5SWRlbnRpZmllckZvcktleUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIGlm
IChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpIHsKICAgICAgICAgc3dp
dGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENv
bW1hbmQKLSAgICAgICAgICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAg
ICAgIHJldHVybiBTdHJpbmcoIk1ldGEiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fw
c0xvY2siKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTY6IC8vIExlZnQg
U2hpZnQKLSAgICAgICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAgICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQK
LSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJBbHQiKTsKLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAgICAgICAgY2FzZSA2Mjog
Ly8gUmlnaHQgQ3RybAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsK
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7CisgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAgICAgICAgY2FzZSA1NTog
Ly8gTGVmdCBDb21tYW5kCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJNZXRhIik7CisKKyAg
ICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNh
cHNMb2NrIik7CisKKyAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAorICAgICAgICBjYXNl
IDYwOiAvLyBSaWdodCBTaGlmdAorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsK
KworICAgICAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAorICAgICAgICBjYXNlIDYxOiAvLyBSaWdo
dCBBbHQKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkFsdCIpOworCisgICAgICAgIGNhc2Ug
NTk6IC8vIExlZnQgQ3RybAorICAgICAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAg
ICAgICByZXR1cm4gU3RyaW5nKCJDb250cm9sIik7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC01MzQsNDQgKzUxOSwzOCBAQCBzdGF0
aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRo
YXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICAgICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAg
Y2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAgICAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5T
TnVtZXJpY1BhZEtleU1hc2spCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYg
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0g
ICAgICAgIGNhc2UgNzE6IC8vIENsZWFyCi0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAg
Y2FzZSA3NTogLy8gLwotICAgICAgICBjYXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8v
IC0KLSAgICAgICAgY2FzZSA2OTogLy8gKwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAg
ICAgICBjYXNlIDY1OiAvLyAuCi0gICAgICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4
MzogLy8gMQotICAgICAgICBjYXNlIDg0OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAg
ICAgICAgY2FzZSA4NjogLy8gNAotICAgICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2Ug
ODg6IC8vIDYKLSAgICAgICAgY2FzZSA4OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0g
ICAgICAgIGNhc2UgOTI6IC8vIDkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9Cisg
ICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAgICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8g
LworICAgIGNhc2UgNjc6IC8vICoKKyAgICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8g
KworICAgIGNhc2UgNzY6IC8vIEVudGVyCisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6
IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAxCisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6
IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6
IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6
IC8vIDkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZh
bHNlOwogfQpAQCAtNTg1LDEwICs1NjQsNyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVu
dChOU0V2ZW50KiBldmVudCkKICAgICAvLyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBr
bm93biBNYWMgdmlydHVhbCBrZXkgY29kZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4g
Q2VydGFpbiBwdW5jdHVhdGlvbiBrZXlzLiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1h
cHBlZCBkZXBlbmRpbmcgb24gY3VycmVudCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0
IHNlZSBjb21tZW50IGluIHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYm
IChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSkg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICghaXNLZXlwYWRFdmVudChl
dmVudCkgJiYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlS2V5VXApKSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21h
biBsZXR0ZXJzIGZvciBEdm9yYWstUVdFUlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJh
Y3RlcnMgZmlyc3QuCiAgICAgICAgIE5TU3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwog
ICAgICAgICBjb2RlID0gW3MgbGVuZ3RoXSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2Rl
KFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pIDogMDsKQEAgLTY0NiwzNSArNjIyLDMyIEBAIGRvdWJs
ZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKIAogc3RhdGljIGlubGlu
ZSBib29sIGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2Vk
KQotICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVu
dCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZh
aWxzIGlmIHRoZSB1c2VyIHByZXNzZXMgYm90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFt
cGxlOgogICAgIC8vIHdlIHRyZWF0IHJlbGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgog
ICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0
IENvbW1hbmQKLSAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICBy
ZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJl
dHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsK
LSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNh
c2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgNTg6IC8vIExlZnQgQWx0Ci0gICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAg
ICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2sp
ID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAg
ICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1v
ZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAg
ICAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9uS2V5TWFzaykgPT0gMDsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTog
Ly8gTGVmdCBDb21tYW5kCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2Nr
CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdDYXBzTG9jayk7CisKKyAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2
MDogLy8gUmlnaHQgU2hpZnQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0
CisgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTog
Ly8gTGVmdCBDdHJsCisgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4g
IShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisK
KyAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KICAgICByZXR1
cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAgKzc5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9rZXkg
PSBrZXlGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fY29kZSA9IGNvZGVGb3JLZXlFdmVu
dChldmVudCk7CiAgICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gd2luZG93c0tleUNv
ZGVGb3JLZXlFdmVudChldmVudCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgIG1fYXV0b1JlcGVhdCA9IFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCAm
JiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2Vk
ICYmIFtldmVudCBpc0FSZXBlYXRdOwogICAgICAgICBtX2lzS2V5cGFkID0gaXNLZXlwYWRFdmVu
dChldmVudCk7CiAgICAgICAgIG1faXNTeXN0ZW1LZXkgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlz
IGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KaW5kZXggOTFjYmVkZDBjZGEwNzA2NWIzYmYzZjE3
MDE1OGYxZDYyNzczMTgzZi4uNjRkODU0YThlODRjODYyYTkwYWJkNDU3NWNlNjNlYmVlNGQyZWUz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1l
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1h
Yy5tbQpAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hh
bmdlLmg+CisjaW5jbHVkZSA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25z
Lmg+CiAKIC8vIEZJWE1FOiBUaGVyZSBhcmUgcmVwYWludGluZyBwcm9ibGVtcyBkdWUgdG8gQXF1
YSBzY3JvbGwgYmFyIGJ1dHRvbnMnIHZpc3VhbCBvdmVyZmxvdy4KIApAQCAtMTM5LDE4ICsxNDAs
MTUgQEAgc3RhdGljIFNjcm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9
IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVFbmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9s
bGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRy
b2xTaXplKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRj
aCAoY29udHJvbFNpemUpIHsKICAgICBjYXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJl
dHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVS
ZWd1bGFyOwogICAgIGNhc2UgU21hbGxTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxs
Q29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xT
aXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xT
aXplUmVndWxhcjsKIH0KIAogdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xs
ZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhl
bWVNYWMubW0KaW5kZXggMDI0NzJjOWE2OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4u
YjEwMDQxYjVlYjE3MmY0MzcyYzQwMDU1YjE2OTk3YzEzOTRjMjNmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHN0YXRpYyBOU1JlY3QgZm9jdXNSaW5nQ2xpcFJl
Y3Q7CiBzdGF0aWMgQk9PTCB0aGVtZVdpbmRvd0hhc0tleUFwcGVhcmFuY2U7CkBAIC02NywxMSAr
NjgsOCBAQCBzdGF0aWMgQk9PTCB0aGVtZVdpbmRvd0hhc0tleUFwcGVhcmFuY2U7CiB7CiAgICAg
Ly8gVXNpbmcgZGVmZXI6WUVTIHByZXZlbnRzIHVzIGZyb20gd2FzdGluZyBhbnkgd2luZG93IHNl
cnZlciByZXNvdXJjZXMgZm9yIHRoaXMgd2luZG93LCBzaW5jZSB3ZSdyZSBub3QgYWN0dWFsbHkK
ICAgICAvLyBnb2luZyB0byBkcmF3IGludG8gaXQuIFRoZSBvdGhlciBhcmd1bWVudHMgbWF0Y2gg
d2hhdCB5b3UgZ2V0IHdoZW4gY2FsbGluZyAtW05TV2luZG93IGluaXRdLgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN0YXRpYyBXZWJDb3JlVGhlbWVXaW5kb3cgKndp
bmRvdyA9IFtbV2ViQ29yZVRoZW1lV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5T
TWFrZVJlY3QoMTAwLCAxMDAsIDEwMCwgMTAwKQotICAgICAgICBzdHlsZU1hc2s6TlNUaXRsZWRX
aW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBzdHlsZU1hc2s6TlNXaW5kb3dTdHls
ZU1hc2tUaXRsZWQgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CiAg
ICAgcmV0dXJuIHdpbmRvdzsKIH0KIApAQCAtMTQ0LDE1ICsxNDIsMTIgQEAgVGhlbWUqIHBsYXRm
b3JtVGhlbWUoKQogCiBzdGF0aWMgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZUZvckZvbnQoY29u
c3QgRm9udENhc2NhZGUmIGZvbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgaW50IGZvbnRTaXplID0gZm9udC5waXhlbFNpemUoKTsKICAgICBpZiAoZm9udFNp
emUgPj0gMTYpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAg
cmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGlmIChmb250U2l6ZSA+PSAxMSkKLSAg
ICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJv
bFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0Nv
bnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0
aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbU5TQ29udHJvbFNpemUoTlNDb250cm9sU2l6ZSBuc0NvbnRy
b2xTaXplLCBjb25zdCBMZW5ndGhTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yLCBj
b25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcykKQEAgLTE3NSwxNiArMTcwLDEzIEBA
IHN0YXRpYyBMZW5ndGhTaXplIHNpemVGcm9tRm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCwg
Y29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkCiAKIHN0YXRpYyBDb250cm9sU2l6ZSBjb250cm9sU2l6
ZUZyb21QaXhlbFNpemUoY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0
IEludFNpemUmIG1pblpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+
PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRyb2xTaXplXS53aWR0aCgpICog
em9vbUZhY3RvcikgJiYKLSAgICAgICAgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0
b3IpKQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7Ci0gICAgaWYgKG1pblpv
b21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9s
U2l6ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3IpICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVp
Z2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLmhlaWdo
dCgpICogem9vbUZhY3RvcikpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0g
ICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXpl
c1tOU0NvbnRyb2xTaXplUmVndWxhcl0ud2lkdGgoKSAqIHpvb21GYWN0b3IpCisgICAgICAgICYm
IG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRy
b2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5T
Q29udHJvbFNpemVSZWd1bGFyOworICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3Rh
dGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxdLndpZHRoKCkgKiB6b29tRmFj
dG9yKQorICAgICAgICAmJiBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGlu
dD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQorICAg
ICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXpl
TWluaTsKIH0KIAogc3RhdGljIHZvaWQgc2V0Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25z
dCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluWm9vbWVk
U2l6ZSwgZmxvYXQgem9vbUZhY3RvcikKQEAgLTQ4MCwxMCArNDcyLDcgQEAgc3RhdGljIHZvaWQg
c2V0VXBCdXR0b25DZWxsKE5TQnV0dG9uQ2VsbCAqY2VsbCwgQ29udHJvbFBhcnQgcGFydCwgY29u
c3QgQ29udHJvbFMKIHsKICAgICAvLyBTZXQgdGhlIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYgdGhl
IHJlY3RhbmdsZSB3ZSdyZSBwYWludGluZyBpbnRvLgogICAgIGNvbnN0IHN0ZDo6YXJyYXk8SW50
U2l6ZSwgMz4mIHNpemVzID0gYnV0dG9uU2l6ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBpZiAocGFydCA9PSBTcXVhcmVCdXR0b25QYXJ0IHx8IHpvb21lZFNp
emUuaGVpZ2h0KCkgPiBidXR0b25TaXplcygpW05TUmVndWxhckNvbnRyb2xTaXplXS5oZWlnaHQo
KSAqIHpvb21GYWN0b3IpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAo
cGFydCA9PSBTcXVhcmVCdXR0b25QYXJ0IHx8IHpvb21lZFNpemUuaGVpZ2h0KCkgPiBidXR0b25T
aXplcygpW05TQ29udHJvbFNpemVSZWd1bGFyXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpIHsKICAg
ICAgICAgLy8gVXNlIHRoZSBzcXVhcmUgYnV0dG9uCiAgICAgICAgIGlmIChbY2VsbCBiZXplbFN0
eWxlXSAhPSBOU1NoYWRvd2xlc3NTcXVhcmVCZXplbFN0eWxlKQogICAgICAgICAgICAgW2NlbGwg
c2V0QmV6ZWxTdHlsZTpOU1NoYWRvd2xlc3NTcXVhcmVCZXplbFN0eWxlXTsKQEAgLTU3OSwxNSAr
NTY4LDEyIEBAIHN0YXRpYyBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBzdGVwcGVyU2l6
ZXMoKQogLy8gc2hvdWxkIGJlIGVxdWFsIHRvIG9yIGxlc3MgdGhhbiB0aGUgY29ycmVzcG9uZGlu
ZyB0ZXh0IGZpZWxkIGhlaWdodCwKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHN0ZXBwZXJDb250cm9s
U2l6ZUZvckZvbnQoY29uc3QgRm9udENhc2NhZGUmIGZvbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50IGZvbnRTaXplID0gZm9udC5waXhlbFNpemUoKTsK
ICAgICBpZiAoZm9udFNpemUgPj0gMTgpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9s
U2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGlmIChmb250
U2l6ZSA+PSAxMykKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsKLSAgICByZXR1
cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVN
aW5pOwogfQogCiBzdGF0aWMgdm9pZCBwYWludFN0ZXBwZXIoQ29udHJvbFN0YXRlcyYgc3RhdGVz
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwg
ZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyopCkBAIC02MDAsMTUgKzU4NiwxMiBAQCBzdGF0
aWMgdm9pZCBwYWludFN0ZXBwZXIoQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0CiAgICAgZHJhd0luZm8uc3RhdGUgPSBjb252ZXJ0Q29udHJvbFN0
YXRlc1RvVGhlbWVEcmF3U3RhdGUoa1RoZW1lSW5jRGVjQnV0dG9uLCBzdGF0ZXMpOwogICAgIGRy
YXdJbmZvLmFkb3JubWVudCA9IGtUaGVtZUFkb3JubWVudERlZmF1bHQ7CiAgICAgQ29udHJvbFNp
emUgY29udHJvbFNpemUgPSBjb250cm9sU2l6ZUZyb21QaXhlbFNpemUoc3RlcHBlclNpemVzKCks
IEludFNpemUoem9vbWVkUmVjdC5zaXplKCkpLCB6b29tRmFjdG9yKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoY29udHJvbFNpemUgPT0gTlNTbWFsbENvbnRy
b2xTaXplKQorICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU0NvbnRyb2xTaXplU21hbGwpCiAgICAg
ICAgIGRyYXdJbmZvLmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b25TbWFsbDsKLSAgICBlbHNlIGlm
IChjb250cm9sU2l6ZSA9PSBOU01pbmlDb250cm9sU2l6ZSkKKyAgICBlbHNlIGlmIChjb250cm9s
U2l6ZSA9PSBOU0NvbnRyb2xTaXplTWluaSkKICAgICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVt
ZUluY0RlY0J1dHRvbk1pbmk7CiAgICAgZWxzZQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1Ro
ZW1lSW5jRGVjQnV0dG9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgSW50
UmVjdCByZWN0KHpvb21lZFJlY3QpOwogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcihjb250ZXh0KTsKQEAgLTc0OSwxMiArNzMyLDkgQEAgTGVuZ3RoU2l6ZSBUaGVtZU1h
Yzo6bWluaW11bUNvbnRyb2xTaXplKENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRDYXNjYWRl
JiBmb24KICAgICAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgICAgICAgICAgcmV0dXJuIExlbmd0
aFNpemUoTGVuZ3RoKDAsIEZpeGVkKSwgTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oMTUgKiB6b29t
RmFjdG9yKSwgRml4ZWQpKTsKICAgICAgICAgY2FzZSBJbm5lclNwaW5CdXR0b25QYXJ0OnsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIEludFNpemUgYmFz
ZSA9IHN0ZXBwZXJTaXplcygpW05TTWluaUNvbnRyb2xTaXplXTsKKyAgICAgICAgICAgIEludFNp
emUgYmFzZSA9IHN0ZXBwZXJTaXplcygpW05TQ29udHJvbFNpemVNaW5pXTsKICAgICAgICAgICAg
IHJldHVybiBMZW5ndGhTaXplKExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KGJhc2Uud2lkdGgoKSAq
IHpvb21GYWN0b3IpLCBGaXhlZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5n
dGgoc3RhdGljX2Nhc3Q8aW50PihiYXNlLmhlaWdodCgpICogem9vbUZhY3RvciksIEZpeGVkKSk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIH0KICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIHJldHVybiBUaGVtZTo6bWluaW11bUNvbnRyb2xTaXplKHBhcnQsIGZv
bnQsIHpvb21GYWN0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQpp
bmRleCBkM2I5ZWU5OGRmOTQyMGNjZDcxMTZiMDQwMzU2MzgzY2ZjNzQ2ZjkwLi5iNDg2MDZjYjVh
NzQ0ZDg3MGI4NjE5MzQzNjYyODk4YmE5ZmY0ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2lu
ZG93Q29udHJvbGxlci5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db3Jl
R3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTFZpZGVvRWxlbWVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZVN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRD
b21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkBAIC03MywxMCArNzQsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIC0gKGlkKWluaXRX
aXRoQ29udGVudFJlY3Q6KE5TUmVjdCljb250ZW50UmVjdCBzdHlsZU1hc2s6KE5TVUludGVnZXIp
YVN0eWxlIGJhY2tpbmc6KE5TQmFja2luZ1N0b3JlVHlwZSlidWZmZXJpbmdUeXBlIGRlZmVyOihC
T09MKWZsYWcKIHsKICAgICBVTlVTRURfUEFSQU0oYVN0eWxlKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6
Y29udGVudFJlY3Qgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpidWZm
ZXJpbmdUeXBlIGRlZmVyOmZsYWddOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6
TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6YnVmZmVyaW5nVHlwZSBkZWZlcjpm
bGFnXTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKQEAgLTEyMiwxNSAr
MTIwLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAtIChCT09MKXBlcmZvcm1LZXlF
cXVpdmFsZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKICAgICAvLyBCbG9jayBhbGwgY29tbWFuZCBrZXkgZXZlbnRzIHdoaWxlIHRoZSBm
dWxsc2NyZWVuIHdpbmRvdyBpcyB1cC4KLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93
bikKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAg
cmV0dXJuIE5POwogICAgIAotICAgIGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29t
bWFuZEtleU1hc2spKQorICAgIGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kKSkKICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAogICAgIHJldHVybiBZRVM7CiB9CiAKQEAgLTE0NSwxMSArMTQwLDcgQEAg
c3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIEhVRFdpbmRvd0ZhZGVPdXREZWxheSA9IDM7CiAK
IC0gKGlkKWluaXQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBO
U1dpbmRvdyAqd2luZG93ID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3cgYWxsb2NdIGlu
aXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCB3aW5kb3dXaWR0aCwgd2luZG93SGVp
Z2h0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NX
aW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJl
Y3QoMCwgMCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCkgc3R5bGVNYXNrOk5TV2luZG93U3R5
bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9d
OwogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsKICAgICBbd2luZG93
IHNldERlbGVnYXRlOnNlbGZdOwogICAgIFt3aW5kb3cgcmVsZWFzZV07CkBAIC0xODgsMjAgKzE3
OSwxNyBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwgSFVEV2luZG93RmFkZU91dERlbGF5
ID0gMzsKICAgICAgICAgICAgIGNhc2UgJyAnOgogICAgICAgICAgICAgICAgIFtzZWxmIHRvZ2ds
ZVBsYXlpbmc6bmlsXTsKICAgICAgICAgICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgICAgICBjYXNlIE5TVXBBcnJvd0Z1bmN0aW9uS2V5
OgotICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0
ZUtleU1hc2spCisgICAgICAgICAgICAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5T
RXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNldFZv
bHVtZTpbc2VsZiBtYXhWb2x1bWVdXTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIFtzZWxmIGluY3JlbWVudFZvbHVtZV07CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgY2FzZSBOU0Rvd25BcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAg
ICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAg
ICAgICAgICAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZs
YWdPcHRpb24pCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNldFZvbHVtZTowXTsKICAgICAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIGRlY3JlbWVudFZvbHVt
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM3OCwx
NyArMzY2LDExIEBAIHN0YXRpYyBOU1RleHRGaWVsZCAqY3JlYXRlVGltZVRleHRGaWVsZChOU1Jl
Y3QgZnJhbWUpCiAgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X3RpbWVsaW5lXTsKIAogICAg
IF9lbGFwc2VkVGltZVRleHQgPSBjcmVhdGVUaW1lVGV4dEZpZWxkKE5TTWFrZVJlY3QodGltZVRl
eHRGaWVsZEhvcml6b250YWxNYXJnaW4sIHRpbWVsaW5lQm90dG9tTWFyZ2luLCB0aW1lVGV4dEZp
ZWxkV2lkdGgsIHRpbWVUZXh0RmllbGRIZWlnaHQpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBbX2VsYXBzZWRUaW1lVGV4dCBzZXRBbGlnbm1lbnQ6TlNMZWZ0VGV4
dEFsaWdubWVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW19lbGFwc2Vk
VGltZVRleHQgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVudExlZnRdOwogICAgIFtjb250ZW50
VmlldyBhZGRTdWJ2aWV3Ol9lbGFwc2VkVGltZVRleHRdOwogCiAgICAgX3JlbWFpbmluZ1RpbWVU
ZXh0ID0gY3JlYXRlVGltZVRleHRGaWVsZChOU01ha2VSZWN0KHdpbmRvd1dpZHRoIC0gdGltZVRl
eHRGaWVsZEhvcml6b250YWxNYXJnaW4gLSB0aW1lVGV4dEZpZWxkV2lkdGgsIHRpbWVsaW5lQm90
dG9tTWFyZ2luLCB0aW1lVGV4dEZpZWxkV2lkdGgsIHRpbWVUZXh0RmllbGRIZWlnaHQpKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbX3JlbWFpbmluZ1RpbWVUZXh0
IHNldEFsaWdubWVudDpOU1JpZ2h0VGV4dEFsaWdubWVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgW19yZW1haW5pbmdUaW1lVGV4dCBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxp
Z25tZW50UmlnaHRdOwogICAgIFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Ol9yZW1haW5pbmdUaW1l
VGV4dF07CiAKICAgICBbd2luZG93IHJlY2FsY3VsYXRlS2V5Vmlld0xvb3BdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0KaW5kZXggNDU5
OGEwM2VkMmZhMzIxNTBlNjRhZjljYmI2NDU5OTQ2OWZkZGY3Ny4uN2RlNWViNTM3YzdmYTAyMzUy
MmJjZWY2ODMzMjNiMjU4NGVjYzVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lt
cG9ydCA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMzgs
MTAgKzM5LDcgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQgc2xvd01vdGlvbkZhY3RvciA9IDEwOwog
CiBzdGF0aWMgTlNUaW1lSW50ZXJ2YWwgV2ViV2luZG93QW5pbWF0aW9uRHVyYXRpb25Gcm9tRHVy
YXRpb24oTlNUaW1lSW50ZXJ2YWwgZHVyYXRpb24pCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIChbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJG
bGFnc10gJiBOU1NoaWZ0S2V5TWFzaykgPyBkdXJhdGlvbiAqIHNsb3dNb3Rpb25GYWN0b3IgOiBk
dXJhdGlvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gKFtbTlNB
cHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlm
dCkgPyBkdXJhdGlvbiAqIHNsb3dNb3Rpb25GYWN0b3IgOiBkdXJhdGlvbjsKIH0KIAogc3RhdGlj
IE5TUmVjdCBzY2FsZWRSZWN0KE5TUmVjdCBfaW5pdGlhbEZyYW1lLCBOU1JlY3QgX2ZpbmFsRnJh
bWUsIENHRmxvYXQgZmFjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tCmluZGV4IDNlZGRjMDNlNGQ4ZTlmNjM1MTdjNTI3MWYyMDFiNTY3ODIyYjkwMjguLjg1
NzY0MjM1MjNhOTBjOGE1MjUxODA1NGFkOTJiNTE0NGY0MTkyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTgxLDYgKzgxLDcgQEAKICNpbXBvcnQg
PENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPENvY29hL0NvY29hLmg+CiAjaW1wb3J0IDxtYXRo
Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
IAogI2lmIEVOQUJMRShNRVRFUl9FTEVNRU5UKQogI2ltcG9ydCAiUmVuZGVyTWV0ZXIuaCIKQEAg
LTM3OSwyMiArMzgwLDEzIEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OnVwZGF0ZUNhY2hlZFN5c3Rl
bUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIEZvCiAgICAgICAgICAgICBm
b250TmFtZSA9IEF0b21pY1N0cmluZygiLWFwcGxlLXN0YXR1cy1iYXIiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IENTU1ZhbHVlV2Via2l0TWluaUNvbnRyb2w6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0Zv
bnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU01pbmlDb250cm9sU2l6ZV1dOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lz
dGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250
cm9sU2l6ZU1pbmldXTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1ZhbHVl
V2Via2l0U21hbGxDb250cm9sOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3Rl
bUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250
T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXpl
U21hbGxdXTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0
Q29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAg
IGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZv
ckNvbnRyb2xTaXplOk5TUmVndWxhckNvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltO
U0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplUmVndWxhcl1d
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBmb250
ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVdXTsKQEAg
LTc3NywzMCArNzY5LDI0IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTdXBwb3J0c1Rp
bnRzKGNvbnN0IFJlbmRlck9iamVjdCYgbykgY29uc3QKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhl
bWVNYWM6OmNvbnRyb2xTaXplRm9yRm9udChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0
CiB7CiAgICAgaW50IGZvbnRTaXplID0gc3R5bGUuZm9udFNpemUoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpZiAoZm9udFNpemUgPj0gMTYpCi0gICAgICAgIHJl
dHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVS
ZWd1bGFyOwogICAgIGlmIChmb250U2l6ZSA+PSAxMSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxD
b250cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAg
cmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1l
TWFjOjpjb250cm9sU2l6ZUZvckNlbGwoTlNDZWxsKiwgY29uc3QgSW50U2l6ZSogc2l6ZXMsIGNv
bnN0IEludFNpemUmIG1pblNpemUsIGZsb2F0IHpvb21MZXZlbCkgY29uc3QKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0
YXRpY19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29t
TGV2ZWwpCi0gICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50Pihz
aXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQotICAgICAg
ICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+
PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVSZWd1bGFyXS53aWR0aCgpICog
em9vbUxldmVsKQorICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGlu
dD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUxldmVsKSkKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogCi0gICAgaWYgKG1pblNpemUud2lk
dGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0ud2lkdGgo
KSAqIHpvb21MZXZlbCkKLSAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQot
ICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOworICAgIGlmIChtaW5TaXplLndpZHRo
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxdLndpZHRoKCkg
KiB6b29tTGV2ZWwpCisgICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8
aW50PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxdLmhlaWdodCgpICogem9vbUxldmVsKSkKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKIAotICAgIHJldHVybiBOU01pbmlDb250
cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gTlNDb250
cm9sU2l6ZU1pbmk7CiB9CiAKIHZvaWQgUmVuZGVyVGhlbWVNYWM6OnNldENvbnRyb2xTaXplKE5T
Q2VsbCogY2VsbCwgY29uc3QgSW50U2l6ZSogc2l6ZXMsIGNvbnN0IEludFNpemUmIG1pblNpemUs
IGZsb2F0IHpvb21MZXZlbCkKQEAgLTg1NywxNSArODQzLDEyIEBAIHZvaWQgUmVuZGVyVGhlbWVN
YWM6OnNldEZvbnRGcm9tQ29udHJvbFNpemUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiBz
dHlsZSwKIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0
ZW1Gb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpbnQgZm9udFNpemUgPSBzdHlsZS5mb250U2l6ZSgp
OwotICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNp
emU6TlNSZWd1bGFyQ29udHJvbFNpemVdKQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJv
bFNpemU7Ci0gICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250
cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRy
b2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZv
ckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1bGFyXSkKKyAgICAgICAgcmV0dXJuIE5TQ29u
dHJvbFNpemVSZWd1bGFyOworICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRT
aXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXSkKKyAgICAgICAgcmV0dXJuIE5T
Q29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIGJv
b2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50VGV4dEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYgbywg
Y29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcikKQEAgLTExNDcs
MTAgKzExMzAsNyBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKGNvbnN0
IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYQogICAgIGNvbnN0IGF1dG8mIHJl
bmRlclByb2dyZXNzID0gZG93bmNhc3Q8UmVuZGVyUHJvZ3Jlc3M+KHJlbmRlck9iamVjdCk7CiAg
ICAgSElUaGVtZVRyYWNrRHJhd0luZm8gdHJhY2tJbmZvOwogICAgIHRyYWNrSW5mby52ZXJzaW9u
ID0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoY29udHJv
bFNpemUgPT0gTlNSZWd1bGFyQ29udHJvbFNpemUpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKGNvbnRyb2xTaXplID09IE5TQ29udHJvbFNpemVSZWd1bGFyKQogICAgICAg
ICB0cmFja0luZm8ua2luZCA9IHJlbmRlclByb2dyZXNzLnBvc2l0aW9uKCkgPCAwID8ga1RoZW1l
TGFyZ2VJbmRldGVybWluYXRlQmFyIDoga1RoZW1lTGFyZ2VQcm9ncmVzc0JhcjsKICAgICBlbHNl
CiAgICAgICAgIHRyYWNrSW5mby5raW5kID0gcmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAg
PyBrVGhlbWVNZWRpdW1JbmRldGVybWluYXRlQmFyIDoga1RoZW1lTWVkaXVtUHJvZ3Jlc3NCYXI7
CkBAIC0xNDM4LDE1ICsxNDE4LDEyIEBAIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplIFJl
bmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKGNvbnN0IFJlbmRlclN0eWxlJiBzCiAgICAgTlNQ
b3BVcEJ1dHRvbkNlbGwqIHBvcHVwQnV0dG9uID0gdGhpcy0+cG9wdXBCdXR0b24oKTsKICAgICBO
U0NvbnRyb2xTaXplIHNpemUgPSBjb250cm9sU2l6ZUZvckNlbGwocG9wdXBCdXR0b24sIHBvcHVw
QnV0dG9uU2l6ZXMoKSwgcmVjdC5zaXplKCksIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSk7CiAgICAg
c3dpdGNoIChzaXplKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
Y2FzZSBOU1JlZ3VsYXJDb250cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVSZWd1bGFy
OgogICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw7Ci0g
ICAgY2FzZSBOU1NtYWxsQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplU21hbGw6
CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZVNtYWxsOwotICAg
IGNhc2UgTlNNaW5pQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplTWluaToKICAg
ICAgICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw7CiAgICAgfQpAQCAtMjA1NSwxMiArMjAzMiw5
IEBAIE5TU2xpZGVyQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iSG9yaXpvbnRhbCgp
IGNvbnN0CiB7CiAgICAgaWYgKCFtX3NsaWRlclRodW1iSG9yaXpvbnRhbCkgewogICAgICAgICBt
X3NsaWRlclRodW1iSG9yaXpvbnRhbCA9IGFkb3B0TlMoW1tOU1NsaWRlckNlbGwgYWxsb2NdIGlu
aXRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW21fc2xp
ZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldFNsaWRlclR5cGU6TlNMaW5lYXJTbGlkZXJdOwot
ICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNT
bWFsbENvbnRyb2xTaXplXTsKKyAgICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgp
IHNldFNsaWRlclR5cGU6TlNTbGlkZXJUeXBlTGluZWFyXTsKKyAgICAgICAgW21fc2xpZGVyVGh1
bWJIb3Jpem9udGFsLmdldCgpIHNldENvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF07CiAg
ICAgICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRGb2N1c1JpbmdUeXBlOk5T
Rm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAg
ICB9CiAKICAgICByZXR1cm4gbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCk7CkBAIC0yMDcw
LDExICsyMDQ0LDggQEAgTlNTbGlkZXJDZWxsKiBSZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJW
ZXJ0aWNhbCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NsaWRlclRodW1iVmVydGljYWwpIHsKICAg
ICAgICAgbV9zbGlkZXJUaHVtYlZlcnRpY2FsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxv
Y10gaW5pdF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBb
bV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldFNsaWRlclR5cGU6TlNMaW5lYXJTbGlkZXJd
OwotICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldENvbnRyb2xTaXplOk5T
U21hbGxDb250cm9sU2l6ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1NsaWRlclR5cGVM
aW5lYXJdOworICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldENvbnRyb2xT
aXplOk5TQ29udHJvbFNpemVTbWFsbF07CiAgICAgICAgIFttX3NsaWRlclRodW1iVmVydGljYWwu
Z2V0KCkgc2V0Rm9jdXNSaW5nVHlwZTpOU0ZvY3VzUmluZ1R5cGVFeHRlcmlvcl07CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCmlu
ZGV4IGYyYTM1OTczYTcxZTA2ODI2MGE5MWM5NjdkMjkwNTBkMmVkZTc2MGQuLmE2OWY2ZjFmYTUw
YTlhNGFkZDg2M2Y0Nzk1YmMxZDcxMmYwYmEwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCkBAIC03Niw2ICs3Niw3IEBACiAjaW1wb3J0
IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpbXBvcnQgIldlYktpdExvZ2dpbmcuaCIKICNp
bXBvcnQgIldlYk5TT2JqZWN0RXh0cmFzLmgiCkBAIC0xNzMsMTMgKzE3NCwxNCBAQCBzdGF0aWMg
T1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGlu
RXZlbnRIYW5kbGVyQ2FsbAogCiAgICAgLy8gRmlndXJlIG91dCB0aGUgd2luZG93J3Mgc3R5bGUg
bWFzay4KICAgICBzdHlsZU1hc2sgPSBXS0NhcmJvbldpbmRvd01hc2soKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5k
b3dDbG9zZUJveEF0dHJpYnV0ZSkgc3R5bGVNYXNrIHw9IE5TQ2xvc2FibGVXaW5kb3dNYXNrOwot
ICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd1Jlc2l6YWJsZUF0dHJpYnV0ZSkgc3R5
bGVNYXNrIHw9IE5TUmVzaXphYmxlV2luZG93TWFzazsKLSAgICBpZiAod2luZG93RmVhdHVyZXMg
JiBrV2luZG93Q2FuQ29sbGFwc2UpIHN0eWxlTWFzayB8PSBOU01pbmlhdHVyaXphYmxlV2luZG93
TWFzazsKLSAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpIHN0eWxl
TWFzayB8PSBOU1RpdGxlZFdpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93Q2xvc2VCb3hBdHRyaWJ1dGUpCisg
ICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlOworICAgIGlmICh3
aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd1Jlc2l6YWJsZUF0dHJpYnV0ZSkKKyAgICAgICAgc3R5
bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlOworICAgIGlmICh3aW5kb3dGZWF0
dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBzZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93
U3R5bGVNYXNrTWluaWF0dXJpemFibGU7CisgICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRv
d0hhc1RpdGxlQmFyKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tUaXRs
ZWQ7CiAKICAgICBvc1N0YXR1cyA9IEdldFdpbmRvd01vZGFsaXR5KF93aW5kb3dSZWYsICZ3aW5k
b3dNb2RhbGl0eSwgTlVMTCk7CiAgICAgaWYgKG9zU3RhdHVzICE9IG5vRXJyKSB7CkBAIC0zOTMs
MTggKzM5NSwxMiBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChF
dmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIC8vIElnbm9yZSBzb21l
IHVua25vd24gZXZlbnQgdGhhdCBnZXRzIHNlbnQgd2hlbiBOU1RleHRWaWV3cyBpbiBwcmludGlu
ZyBhY2Nlc3Nvcnkgdmlld3MgYXJlIGZvY3VzZWQuICBNLlAuIE5vdGljZSAtIDEyLzcvMDAKICAg
ICBCT09MIGlnbm9yZUV2ZW50ID0gTk87CiAgICAgTlNFdmVudFR5cGUgZXZlbnRUeXBlID0gW2lu
RXZlbnQgdHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYg
KGV2ZW50VHlwZT09TlNTeXN0ZW1EZWZpbmVkKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZVN5c3RlbURlZmluZWQpIHsKICAg
ICAgICAgc2hvcnQgZXZlbnRTdWJ0eXBlID0gW2luRXZlbnQgc3VidHlwZV07Ci0gICAgICAgIGlm
IChldmVudFN1YnR5cGU9PTcpIHsKKyAgICAgICAgaWYgKGV2ZW50U3VidHlwZSA9PSA3KSB7CiAg
ICAgICAgICAgICBpZ25vcmVFdmVudCA9IFlFUzsKICAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IE5TS2V5RG93
bikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIH0gZWxzZSBpZiAoZXZlbnRU
eXBlID09IE5TRXZlbnRUeXBlS2V5RG93bikgewogICAgICAgICAvLyBIYW5kbGUgY29tbWFuZC1z
cGFjZSBhcyBbTlNBcHAgc2VuZEV2ZW50Ol0gZG9lcy4KICAgICAgICAgaWYgKFtOU0lucHV0Q29u
dGV4dCBwcm9jZXNzSW5wdXRLZXlCaW5kaW5nczppbkV2ZW50XSkgewogICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYWQ1OTM2OTZkNGI5YTk3NjZhM2NiY2Uw
M2VhZDZlYWZkMDc5NTc5Li42ZDA2YzcwMTBjNTJiODFkNTMxNTFlMTg1MmQ0MTQ0MWI5MTI5ZDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBs
dWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIu
aD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIGV4dGVybiAiQyIgewogI2ltcG9ydCAi
V2ViS2l0UGx1Z2luSG9zdC5oIgpAQCAtMjMwLDEwICsyMzEsNyBAQCB2b2lkIE5ldHNjYXBlUGx1
Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1fcGxhY2Vob2xkZXJXaW5k
b3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwogICAgIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBhZG9w
dE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNr
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dl
YlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtl
UmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKIAogICAgIG1fYWN0aXZh
dGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRP
YnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVBY3RpdmVOb3RpZmljYXRpb24g
b2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nQmxvY2s6XihOU05v
dGlmaWNhdGlvbiAqKXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKTsgfV07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlhZTdhMTc3ZTQ1MTJmNDU2NDFk
YWEyNDM3ZDRjOS4uYWEwZGY1NDI0YTQyNmZkM2FkNzgzNDM0NmNkN2IyYWQ0YzI5NTUzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtNjYsNiArNjYsNyBAQAogI2ltcG9ydCA8
dXRpbGl0eT4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1Jl
ZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmls
aXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIGV4dGVy
biAiQyIgewpAQCAtNDY1LDE1ICs0NjYsMTIgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHk6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludCBrZXlDb2QKIHsK
ICAgICBOU0RhdGEgKmNoYXJhY3RlcnNEYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiZjaGFy
YWN0ZXIgbGVuZ3RoOjFdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgX1dLUEhQbHVnaW5JbnN0YW5jZUtleWJvYXJkRXZlbnQobV9wbHVnaW5Ib3N0UHJveHktPnBv
cnQoKSwgbV9wbHVnaW5JRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
TlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0sIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtleURvd24sIE5TQ29tbWFuZEtleU1h
c2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBDb2NvYUV2ZW50S2V5
RG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4o
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBb
Y2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmFsc2UsIGtleUNvZGUsIGNoYXJhY3Rlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpmbGFnc0NoYW5n
ZWQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggMzc2
NjcyYjY4NjczN2M3NzNlZGM2ZGY2ODRiMjg3OTgyOTY0ZjU0MS4uZGZjOGNjYTcyODI0OGE4OTZh
ODEzZTZmNzkyNDJjMDk0MmIyNWM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpA
QCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0
Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQg
PHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC00NDMsMTAgKzQ0NCw3
IEBAIGV4dGVybiAiQyIgewogewogICAgIGlmIChfY2FjaGVkU25hcHNob3QpIHsKICAgICAgICAg
TlNSZWN0IHNvdXJjZVJlY3QgPSB7IE5TWmVyb1BvaW50LCBbX2NhY2hlZFNuYXBzaG90LmdldCgp
IHNpemVdIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFtf
Y2FjaGVkU25hcHNob3QuZ2V0KCkgZHJhd0luUmVjdDpbc2VsZiBib3VuZHNdIGZyb21SZWN0OnNv
dXJjZVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQo
KSBkcmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246
TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbQppbmRleCBhMWQxNTlh
Zjk0ZTE0ODlhNDhiMDk5MjEwOGQwM2YzOTgwNWYyOTk2Li45YzUyMDFmZTYyZDI2M2JkMzVlYjVl
NzFkNGEzNzAxYWFhOTE3ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCkBAIC0z
MCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQg
IldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgorI2ltcG9y
dCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIFdlYk5ldHNj
YXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OldlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVy
Q29jb2EoV2ViTmV0c2NhcGVQbHVnaW5WaWV3KiBwbHVnaW5WaWV3KQogICAgIDogV2ViTmV0c2Nh
cGVQbHVnaW5FdmVudEhhbmRsZXIocGx1Z2luVmlldykKQEAgLTE2MSwxMCArMTYyLDcgQEAgdm9p
ZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpzeW50aGV0aWNLZXlEb3duV2l0
aENvbW1hbmRNb2RpZmllcihpbnQKICAgICAKICAgICBOUENvY29hRXZlbnQgZXZlbnQ7CiAgICAg
aW5pdGlhbGl6ZUV2ZW50KCZldmVudCwgTlBDb2NvYUV2ZW50S2V5RG93bik7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgZXZlbnQuZGF0YS5rZXkubW9kaWZpZXJGbGFn
cyA9IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ZXZlbnQuZGF0YS5rZXkubW9kaWZpZXJGbGFncyA9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5k
OwogICAgIGV2ZW50LmRhdGEua2V5LmtleUNvZGUgPSBrZXlDb2RlOwogICAgIGV2ZW50LmRhdGEu
a2V5LmlzQVJlcGVhdCA9IGZhbHNlOwogICAgIGV2ZW50LmRhdGEua2V5LmNoYXJhY3RlcnMgPSAo
TlBOU1N0cmluZyAqKWNoYXJhY3RlcnMuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KaW5kZXggYzQ2NjcwYjRkNzlkOGNlODRmYmQ0
MTE1OGZiNzMwODBhZTgwNDc5Yi4uNzlmMjhmYjgyY2I3ZmQ5MzljZDMzMjM0ZWM0N2VjMDM5NjZl
ZTUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBN
ZW51TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dU1hYy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Qb3B1cE1lbnVDbGll
bnQuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL0Js
b2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtOTAsMTcg
KzkxLDExIEBAIHZvaWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgpCiAgICAgICAgIH0KIAogICAg
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+IHBhcmFncmFwaFN0eWxlID0g
YWRvcHROUyhbW05TUGFyYWdyYXBoU3R5bGUgZGVmYXVsdFBhcmFncmFwaFN0eWxlXSBtdXRhYmxl
Q29weV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbcGFy
YWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TTGVm
dFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRl
eHREaXJlY3Rpb24gPT0gTFRSID8gTlNUZXh0QWxpZ25tZW50TGVmdCA6IE5TVGV4dEFsaWdubWVu
dFJpZ2h0XTsKICAgICAgICAgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24gPSBz
dHlsZS50ZXh0RGlyZWN0aW9uKCkgPT0gTFRSID8gTlNXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmln
aHQgOiBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgW3BhcmFncmFwaFN0
eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndyaXRpbmdEaXJlY3Rpb25dOwogICAgICAgICBp
ZiAoc3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFJldGFpblB0cjxOU051bWJlcj4gd3JpdGlu
Z0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVn
ZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVt
YmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGlu
aXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0aW5nRGlyZWN0aW9uT3ZlcnJp
ZGVdKTsKICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJy
YXkgPSBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOndyaXRpbmdEaXJl
Y3Rpb25WYWx1ZS5nZXQoKSwgbmlsXSk7CiAgICAgICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmpl
Y3Q6d3JpdGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpOU1dyaXRpbmdEaXJlY3Rpb25B
dHRyaWJ1dGVOYW1lXTsKICAgICAgICAgfQpAQCAtMjA2LDE4ICsyMDEsMTUgQEAgdm9pZCBQb3B1
cE1lbnVNYWM6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgp
CiAKICAgICBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplOwogICAgIHN3aXRjaCAobV9jbGllbnQt
Pm1lbnVTdHlsZSgpLm1lbnVTaXplKCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOgotICAg
ICAgICBjb250cm9sU2l6ZSA9IE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICBjb250cm9s
U2l6ZSA9IE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0g
TlNTbWFsbENvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVT
bWFsbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNNaW5pQ29udHJvbFNpemU7CisgICAg
ICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZU1pbmk7CiAgICAgICAgIGJyZWFrOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIFdLUG9wdXBNZW51KG1lbnUs
IGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyKSksIGR1bW15Vmlldy5nZXQoKSwgaW5kZXgsIHRv
TlNGb250KGZvbnQpLCBjb250cm9sU2l6ZSwgIW1fY2xpZW50LT5tZW51U3R5bGUoKS5oYXNEZWZh
dWx0QXBwZWFyYW5jZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KaW5kZXggOTE0ZDhlMDYzZThlYjBmY2E5
ZWFlOWQ3YmJiYzgxZjYxYjdiODhkNi4uYTM5YjkzZTc3ZTI2YTY0MzNiOTI4ODhmMTkzM2EwOTk1
NTE1YzYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q29udGV4dE1lbnVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KQEAgLTYwLDYgKzYwLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VSTC5o
PgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTVByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMv
QXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIApAQCAtMjY5LDEwICsyNzAsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpz
aG93Q29udGV4dE1lbnUoKQogCiAgICAgTlNWaWV3KiB2aWV3ID0gZnJhbWVWaWV3LT5kb2N1bWVu
dFZpZXcoKTsKICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1dpbmRv
dyhwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5oaXRUZXN0UmVzdWx0KCkucm91bmRlZFBv
aW50SW5Jbm5lck5vZGVGcmFtZSgpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1Jp
Z2h0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3
aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXSBjb250ZXh0OjAgZXZlbnRO
dW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVSaWdodE1vdXNlRG93biBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0gY29u
dGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwogCiAgICAgLy8g
U2hvdyB0aGUgY29udGV4dHVhbCBtZW51IGZvciB0aGlzIGV2ZW50LgogICAgIGJvb2wgaXNTZXJ2
aWNlc01lbnU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDExNDc2YTAzMjc2ZWRkOTRlNzU1NTEzOTMw
YWI0NjE5YmNlZGY5NTMuLjE2MGIyZGY1NzQ3ZjUzYWVkYjM1OTY4ODNiNDJjMGZjOWY0M2MyMjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xMzAsNiArMTMwLDcgQEAKICNpbXBvcnQgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxv
b3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBVU0UoUExVR0lOX0hPU1Rf
UFJPQ0VTUykgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkBAIC0xNTYxLDE3ICsxNTYy
LDE0IEBAIE5TRGljdGlvbmFyeSAqV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmFjdGlvbkRpY3Rpb25h
cnkoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBj
b25zdCBVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtl
eVN0YXRlKGNvbnN0X2Nhc3Q8RXZlbnQqPihldmVudCkpOwogICAgIGlmIChrZXlTdGF0ZUV2ZW50
ICYmIGtleVN0YXRlRXZlbnQtPmlzVHJ1c3RlZCgpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5jdHJsS2V5KCkpCi0gICAg
ICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29udHJvbEtleU1hc2s7CisgICAgICAgICAgICBt
b2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwogICAgICAgICBpZiAo
a2V5U3RhdGVFdmVudC0+YWx0S2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
QWx0ZXJuYXRlS2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ09wdGlvbjsKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPnNoaWZ0S2V5KCkp
Ci0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CiAgICAgICAgIGlm
IChrZXlTdGF0ZUV2ZW50LT5tZXRhS2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9
IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
ICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogICAgIH0K
ICNlbHNlCiAgICAgLy8gTm8gbW9kaWZpZXIgZmxhZ3Mgb24gaU9TIHJpZ2h0IG5vdwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
Lm1tCmluZGV4IDkwNzg3ZDYyMGIzODFlNTM4YzdiMWFkZGM3NmYyZDI5YzU5MzIyMDkuLjc2YjJj
ZDJjYmYxMGIyMGEzOTkzYzJmM2Y3YjcxOWNiZTdhNTgxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTUz
LDYgKzUzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdl
YktpdExlZ2FjeS9ET01FeHRlbnNpb25zLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIFNPRlRfTElOS19TVEFHRURfRlJBTUVX
T1JLKFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJhbWV3b3JrcywgQSkKQEAgLTE5MSwxMCArMTky
LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6YXR0YWNoQXZhaWxhYmlsaXR5
Q2hhbmdlZChib29sIGF2YWlsYWJsZSkKIAogYm9vbCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6Y2FuQXR0YWNoKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBpZiAoW1ttX2Zyb250ZW5kV2luZG93Q29udHJvbGxlciB3aW5kb3ddIHN0eWxlTWFza10gJiBO
U0Z1bGxTY3JlZW5XaW5kb3dNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250cm9sbGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5T
V2luZG93U3R5bGVNYXNrRnVsbFNjcmVlbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
cmV0dXJuIGNhbkF0dGFjaFdpbmRvdygpOwpAQCAtNDY1LDEwICs0NjMsNyBAQCB2b2lkIFdlYklu
c3BlY3RvckZyb250ZW5kQ2xpZW50OjphcHBlbmQoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRVUkws
IGNvbnN0IFN0cmluZwogICAgIGlmICh3aW5kb3cpCiAgICAgICAgIHJldHVybiB3aW5kb3c7CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU1VJbnRlZ2VyIHN0eWxl
TWFzayA9IE5TVGl0bGVkV2luZG93TWFzayB8IE5TQ2xvc2FibGVXaW5kb3dNYXNrIHwgTlNNaW5p
YXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2sgfCBOU0Z1bGxTaXpl
Q29udGVudFZpZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRv
d1N0eWxlTWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6YWJsZSB8IE5T
V2luZG93U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRl
bnRWaWV3OwogICAgIHdpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6TlNNYWtlUmVjdCgwLCAwLCBpbml0aWFsV2luZG93V2lkdGgsIGluaXRpYWxXaW5kb3dIZWln
aHQpIHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRl
ZmVyOk5PXTsKICAgICBbd2luZG93IHNldERlbGVnYXRlOnNlbGZdOwogICAgIFt3aW5kb3cgc2V0
TWluU2l6ZTpOU01ha2VTaXplKG1pbmltdW1XaW5kb3dXaWR0aCwgbWluaW11bVdpbmRvd0hlaWdo
dCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVI
aWdobGlnaHQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hs
aWdodC5tbQppbmRleCAwMmE3NTZmNzY3NzMxNWM2MjJkZDgxZDk5YTI5ZmFjM2ZiNWJmOWUyLi5m
YzUzZDBjMWIwYWUyMGY4OGFhMTViNjNjNDA3ZjkwNWFmNDBkODIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQpAQCAtMzIsNiAr
MzIsOCBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3RvckNvbnRyb2xsZXIuaD4KICNpbXBv
cnQgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KKwogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiV2ViRnJh
bWVQcml2YXRlLmgiCkBAIC05MSwxMCArOTMsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
ICAgICBfaW5zcGVjdG9yQ29udHJvbGxlciA9IGluc3BlY3RvckNvbnRyb2xsZXI7CiAKICNpZiAh
UExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlu
dCBzdHlsZU1hc2sgPSBOU0JvcmRlcmxlc3NXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIGludCBzdHlsZU1hc2sgPSBOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3M7CiAgICAgTlNSZWN0IGNvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJh
bWVSZWN0OltzZWxmIF9jb21wdXRlSGlnaGxpZ2h0V2luZG93RnJhbWVdIHN0eWxlTWFzazpzdHls
ZU1hc2tdOwogICAgIF9oaWdobGlnaHRXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbX2hpZ2hsaWdodFdpbmRvdyBzZXRC
YWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgY2xlYXJDb2xvcl1dOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRleCA1ZWMxOTc4NWRhNzI5N2IxYTI0NGM1NzYzMjA3
MGM0YmRlOTQ2YjA1Li4zNWUwMTFiYWY0MGJkNzA4NmVmZGYyOGYwNGMzYWIxNzZiOTg3NDQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQpAQCAtNjYsNiArNjYs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBQTEFURk9STShJ
T1MpCiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFsLmgiCkBAIC05MTUsOSArOTE2LDcgQEAgc3Rh
dGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFs
bFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICBCT09MIGNhbGxTdXBlciA9IFlFUzsKICAgICBGcmFt
ZSogY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CiAgICAgQk9PTCBtYWludGFpbnNCYWNr
Rm9yd2FyZExpc3QgPSBjb3JlRnJhbWUgJiYgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Kj4o
Y29yZUZyYW1lLT5wYWdlKCktPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLT5lbmFibGVkKCkgPyBZ
RVMgOiBOTzsKLSAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwogICAg
IGNvdW50ID0gW2NoYXJhY3RlcnMgbGVuZ3RoXTsKICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXgg
PCBjb3VudDsgKytpbmRleCkgewogICAgICAgICBzd2l0Y2ggKFtjaGFyYWN0ZXJzIGNoYXJhY3Rl
ckF0SW5kZXg6aW5kZXhdKSB7CkBAIC05MjgsNyArOTI3LDcgQEAgc3RhdGljIGlubGluZSB2b2lk
IGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBv
YmpDQ2wKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gVGhpcyBvZGQgYmVo
YXZpb3IgbWF0Y2hlcyBzb21lIGV4aXN0aW5nIGJyb3dzZXJzLAogICAgICAgICAgICAgICAgIC8v
IGluY2x1ZGluZyBXaW5kb3dzIElFCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiBOU1NoaWZ0S2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYg
TlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9n
b0ZvcndhcmRdOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAg
IFtzZWxmIF9nb0JhY2tdOwpAQCAtOTQzLDcgKzk0Miw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBh
ZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2Jq
Q0NsCiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkgewogICAgICAgICAgICAgICAgICAg
ICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlRG93bjpuaWxdOwpAQCAtOTg0LDcgKzk4
Myw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0
aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIE5TVXBBcnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8v
IFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBs
ZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9
IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAt
OTk4LDkgKzk5Nyw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011
dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlm
IChtb2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlm
IChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAg
ICAgICAgICAgICAgW3NlbGYgc2Nyb2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50Om5pbF07Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNr
KSB7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ09wdGlvbikgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdl
VXA6bmlsXTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBb
c2VsZiBzY3JvbGxMaW5lVXA6bmlsXTsKQEAgLTEwMDksNyArMTAwOCw3IEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywg
Q2xhc3Mgb2JqQ0NsCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5T
RG93bkFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxl
IHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEg
Y2hhbmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlN
YXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJG
bGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29u
dHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC0xMDIzLDkgKzEwMjIsOSBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFy
eSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIFtz
ZWxmIHNjcm9sbFRvRW5kT2ZEb2N1bWVudDpuaWxdOwotICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAgICAgICAg
IH0gZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pIHsK
ICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZURvd246bmlsXTsKICAgICAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxMaW5lRG93
bjpuaWxdOwpAQCAtMTAzNCwxMiArMTAzMywxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlw
ZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU0xlZnRBcnJvd0Z1bmN0
aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNv
bnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAg
ICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJv
bEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVu
dE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIENoZWNrIGJhY2svZm9y
d2FyZCByZWxhdGVkIGtleXMuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1h
aW50YWluc0JhY2tGb3J3YXJkTGlzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbFN1
cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDUyLDcgKzEw
NTEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGlj
dGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAgICAgICAgICAg
ICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdlSG9yaXpvbnRhbGx5OllFU107CiAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfc2Ny
b2xsTGluZUhvcml6b250YWxseTpZRVNdOwpAQCAtMTA2MiwxMiArMTA2MSwxMiBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlw
ZXMsIENsYXNzIG9iakNDbAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBOU1JpZ2h0QXJyb3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBo
YW5kbGUgc2hpZnRlZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhh
dmUgYSBjaGFuY2UuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlm
dEtleU1hc2sgfCBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgKE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZs
YWdDb250cm9sKSkgewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAvLyBDaGVjayBiYWNrL2ZvcndhcmQgcmVsYXRlZCBrZXlzLgotICAgICAgICAgICAgICAgIGlm
IChtb2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlm
IChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFtYWludGFpbnNCYWNrRm9yd2FyZExpc3QpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtMTA4MCw3ICsxMDc5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJv
bUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfcGFnZUhvcml6b250
YWxseTpOT107CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBbc2VsZiBfc2Nyb2xsTGluZUhvcml6b250YWxseTpOT107CkBAIC0xMDkwLDcgKzEw
ODksNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGlj
dGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIGlmIChj
YWxsU3VwZXIpIHsKICAgICAgICAgW3N1cGVyIGtleURvd246ZXZlbnRdOwogICAgIH0gZWxzZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250
cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJv
bGxlci5tbQppbmRleCA5ZmQ5NTY2MTdmMDdjNmNmNmY0ODU3Y2M5ZTIyMTQwYjIxODhiMmU0Li5m
NTQzNDFmZGJiNGU0ZDNjZWQ5ZGVkMTYzZjE4NDMyYjA0NmQ5YjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTQ3
LDYgKzQ3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViV2luZG93QW5pbWF0aW9uLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtODYsMTEgKzg3LDggQEAgc3RhdGljIE5TUmVj
dCBjb252ZXJ0UmVjdFRvU2NyZWVuKE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCByZWN0KQogI3By
YWdtYSBtYXJrIEluaXRpYWxpemF0aW9uCiAtIChpZClpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgLy8gRG8gbm90IGRlZmVyIHdpbmRvdyBjcmVhdGlvbiwg
dG8gbWFrZSBzdXJlIC13aW5kb3dOdW1iZXIgaXMgY3JlYXRlZCAobmVlZGVkIGJ5IFdlYldpbmRv
d1NjYWxlQW5pbWF0aW9uKS4KLSAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJDb3JlRnVsbFNj
cmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU1plcm9SZWN0IHN0eWxlTWFz
azpOU0Nsb3NhYmxlV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5k
b3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgYmFja2luZzpO
U0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBzZWxmID0gW3N1cGVyIGluaXRX
aXRoV2luZG93OndpbmRvd107CiAgICAgW3dpbmRvdyByZWxlYXNlXTsKICAgICBpZiAoIXNlbGYp
CkBAIC00NjIsMTAgKzQ2MCw3IEBAIHN0YXRpYyBOU1JlY3QgY29udmVydFJlY3RUb1NjcmVlbihO
U1dpbmRvdyAqd2luZG93LCBOU1JlY3QgcmVjdCkKIAogc3RhdGljIFJldGFpblB0cjxOU1dpbmRv
dz4gY3JlYXRlQmFja2dyb3VuZEZ1bGxzY3JlZW5XaW5kb3coTlNSZWN0IGZyYW1lKQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBb
W05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpO
T107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNXaW5kb3cgKndpbmRvdyA9
IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6ZnJhbWUgc3R5bGVNYXNrOk5T
V2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0T3BhcXVlOllFU107CiAgICAgW3dpbmRvdyBzZXRC
YWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgYmxhY2tDb2xvcl1dOwogICAgIFt3aW5kb3cgc2V0UmVs
ZWFzZWRXaGVuQ2xvc2VkOk5PXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tCmluZGV4IDU1ZjFhZTJkNDU4ZjU2MTM5NWZjMzI2YWFjYmM2MGY0ZGIzMjEzYzQuLmNkNzk0
NzU2Y2Y0NDkxOWRiMWVkMzIxZTM1MzVkMmJmYTIyYWZiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTM4LDYgKzEzOCw3IEBACiAjaW1wb3J0IDx3dGYv
TWF0aEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CiAjaW1wb3J0
IDx3dGYvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAKICNpZiAhUExBVEZPUk0oSU9TKQogI2ltcG9ydCA8QXBwS2l0L05TQWNj
ZXNzaWJpbGl0eS5oPgpAQCAtMTM1MSwxMiArMTM1Miw5IEBAIHN0YXRpYyBOU1VSTCogdW5pcXVl
VVJMV2l0aFJlbGF0aXZlUGFydChOU1N0cmluZyAqcmVsYXRpdmVQYXJ0KQogCiAtICh2b2lkKV9w
b3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50OihOU0V2ZW50ICopZmxh
Z3NDaGFuZ2VkRXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3Vz
ZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0
c2lkZU9mRXZlbnRTdHJlYW0KKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdl
ZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KICAgICAgICAg
bW9kaWZpZXJGbGFnczpmbGFnc0NoYW5nZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFtcDpm
bGFnc0NoYW5nZWRFdmVudC50aW1lc3RhbXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2ZW50
LndpbmRvd051bWJlcgogICAgICAgICBjb250ZXh0Om51bGxwdHIgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
W3NlbGYgbW91c2VNb3ZlZDpmYWtlRXZlbnRdOwogfQogCkBAIC0xNTA2LDEwICsxNTA0LDcgQEAg
c3RhdGljIE5TVVJMKiB1bmlxdWVVUkxXaXRoUmVsYXRpdmVQYXJ0KE5TU3RyaW5nICpyZWxhdGl2
ZVBhcnQpCiAjZW5kaWYKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5cGVdID09IE5T
TGVmdE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1vdXNlRG93biB8fCBbZXZl
bnQgdHlwZV0gPT0gTlNPdGhlck1vdXNlRG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQVNTRVJUKCFldmVudCB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8
IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duKTsKICNlbHNlCiAgICAg
QVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09IFdlYkV2ZW50TW91c2VEb3duKTsKICNlbmRp
ZgpAQCAtMTY2MSwxNiArMTY1NiwxNyBAQCBzdGF0aWMgTlNVUkwqIHVuaXF1ZVVSTFdpdGhSZWxh
dGl2ZVBhcnQoTlNTdHJpbmcgKnJlbGF0aXZlUGFydCkKIAogLSAodm9pZClfdXBkYXRlTW91c2Vv
dmVyV2l0aEZha2VFdmVudAogeworICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgbG9jYXRpb246
W1tzZWxmIHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBO
U0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1v
dmVkCi0gICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6
W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05T
RXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
ICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAg
ICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0K
ICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KICAgICAg
ICAgY29udGV4dDpudWxscHRyCiAgICAgICAgIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHBy
ZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgW3NlbGYgX3Vw
ZGF0ZU1vdXNlb3ZlcldpdGhFdmVudDpmYWtlRXZlbnRdOwogfQpAQCAtMTg2OCwxMSArMTg2NCw4
IEBAIHN0YXRpYyBOU1VSTCogdW5pcXVlVVJMV2l0aFJlbGF0aXZlUGFydChOU1N0cmluZyAqcmVs
YXRpdmVQYXJ0KQogI2lmICFQTEFURk9STShJT1MpCiBzdGF0aWMgQk9PTCBpc1F1aWNrTG9va0V2
ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGNvbnN0IGludCBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25S
ZWxlYXNlZCA9IDk7Ci0gICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU1N5c3RlbURlZmluZWQg
JiYgW2V2ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5h
dGlvblJlbGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0gJ2xrdXAnOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVTeXN0
ZW1EZWZpbmVkICYmIFtldmVudCBzdWJ0eXBlXSA9PSBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90
S2V5Q29tYmluYXRpb25SZWxlYXNlZCAmJiBbZXZlbnQgZGF0YTFdID09ICdsa3VwJzsKIH0KICNl
bmRpZgogCkBAIC0xOTI4LDE0ICsxOTIxLDExIEBAIHN0YXRpYyBCT09MIGlzUXVpY2tMb29rRXZl
bnQoTlNFdmVudCAqZXZlbnQpCiAgICAgZWxzZSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaHkgZG9l
c24ndCB0aGlzIGluY2x1ZGUgbW91c2UgZW50ZXJlZC9leGl0ZWQgZXZlbnRzLCBvciBvdGhlciBt
b3VzZSBidXR0b24gZXZlbnRzPwogICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtbc2VsZiB3aW5k
b3ddIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgICAgIGNhcHR1cmVIaXRzT25TdWJ2aWV3cyA9ICEoW2V2ZW50IHR5cGVdID09IE5TTW91c2VN
b3ZlZAotICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TUmlnaHRNb3VzZURvd24KLSAg
ICAgICAgICAgIHx8IChbZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSAhPSAwKQotICAgICAgICAgICAgfHwg
W2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkCisgICAgICAgIGNhcHR1cmVIaXRzT25TdWJ2
aWV3cyA9ICEoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAgICAg
ICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24KKyAgICAgICAg
ICAgIHx8IChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duICYmIFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKQorICAgICAgICAg
ICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkCiAgICAgICAgICAg
ICB8fCBpc1F1aWNrTG9va0V2ZW50KGV2ZW50KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgfQogCiAgICAgaWYgKCFjYXB0dXJlSGl0c09uU3Vidmlld3MpIHsKQEAgLTIwMjMs
OSArMjAxMyw3IEBAIHN0YXRpYyBCT09MIGlzUXVpY2tMb29rRXZlbnQoTlNFdmVudCAqZXZlbnQp
CiAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRXhpdGVkCiB7CiAgICAgLy8gTm90aGluZyBtYXR0
ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05T
RXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRXhpdGVkCisgICAgTlNFdmVudCAq
ZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1v
dXNlRXhpdGVkCiAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1v
ZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjAzNCwxNiArMjAyMiwxMyBA
QCBzdGF0aWMgQk9PTCBpc1F1aWNrTG9va0V2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBl
dmVudE51bWJlcjowCiAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAg
ICAgICAgIHVzZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW19wcml2YXRlLT50cmFja2luZ1JlY3RPd25lciBt
b3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQogCiAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRW50
ZXJlZAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8vIE5vdGhp
bmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4
aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVkCiAgICAgICAgIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1l
c3RhbXA6MApAQCAtMjA1Myw3ICsyMDM4LDYgQEAgc3RhdGljIEJPT0wgaXNRdWlja0xvb2tFdmVu
dChOU0V2ZW50ICpldmVudCkKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9U
QUcKICAgICAgICAgdXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJEYXRhXTsKICAg
ICBbX3ByaXZhdGUtPnRyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogI2VuZGlmIC8vICFQTEFURk9STShJT1Mp
CiAKQEAgLTIwODksMjEgKzIwNzMsMTggQEAgc3RhdGljIEJPT0wgaXNRdWlja0xvb2tFdmVudChO
U0V2ZW50ICpldmVudCkKIHN0YXRpYyBib29sIG1vdXNlRXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFn
KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3du
OgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VE
cmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNS
aWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAg
Y2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIH0KIApAQCAtMjEzNCwxNiArMjExNSwxNCBAQCBzdGF0aWMgYm9v
bCBtb3VzZUV2ZW50SXNQYXJ0T2ZDbGlja09yRHJhZyhOU0V2ZW50ICpldmVudCkKICAgICAgICAg
ZmxvYXQgeVNjcm9sbCA9IHZpc2libGVSZWN0Lm9yaWdpbi55OwogICAgICAgICBmbG9hdCB4U2Ny
b2xsID0gdmlzaWJsZVJlY3Qub3JpZ2luLng7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNNb3VzZU1vdmVkCisgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAgICAgICAgICAgbG9jYXRp
b246TlNNYWtlUG9pbnQoLTEgLSB4U2Nyb2xsLCAtMSAtIHlTY3JvbGwpCiAgICAgICAgICAgICBt
b2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAg
ICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQog
ICAgICAgICAgICAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0KICAg
ICAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICAgICAgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAg
ICAgICAgaWYgKEZyYW1lKiBsYXN0SGl0Q29yZUZyYW1lID0gY29yZShbbGFzdEhpdFZpZXcgX2Zy
YW1lXSkpCiAgICAgICAgICAgICBsYXN0SGl0Q29yZUZyYW1lLT5ldmVudEhhbmRsZXIoKS5tb3Vz
ZU1vdmVkKGV2ZW50LCBbW3NlbGYgX3dlYlZpZXddIF9wcmVzc3VyZUV2ZW50XSk7CiAgICAgfQpA
QCAtMjMzMCwxNiArMjMwOSwxOCBAQCBzdGF0aWMgYm9vbCBtb3VzZUV2ZW50SXNQYXJ0T2ZDbGlj
a09yRHJhZyhOU0V2ZW50ICpldmVudCkKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQorICAg
IE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQKKyAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQg
PSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEcmFnZ2VkCi0gICAgICAg
IGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91
c2VMb2NhdGlvbl1dCisgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VM
b2NhdGlvbl1dCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVz
dGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2lu
ZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpu
dWxscHRyCiAgICAgICAgIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiAgICAgW3NlbGYgbW91c2VEcmFnZ2VkOmZh
a2VFdmVudF07CiAjZW5kaWYKIH0KQEAgLTMzNTQsMTIgKzMzMzUsOSBAQCBXRUJDT1JFX0NPTU1B
TkQodG9nZ2xlVW5kZXJsaW5lKQogICAgIC8vIG9yIGZyb20gY2FsbHMgYmFjayBmcm9tIFdlYkNv
cmUgb25jZSB3ZSBiZWdpbiBtb3VzZS1kb3duIGV2ZW50IGhhbmRsaW5nLgogI2lmICFQTEFURk9S
TShJT1MpICAgICAgICAgICAgCiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2
ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50
IHR5cGVdID09IE5TTGVmdE1vdXNlRG93bgorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVMZWZ0TW91c2VEb3duCiAgICAgICAgICAgICAmJiAhX3ByaXZhdGUtPmhhbmRsaW5nTW91
c2VEb3duRXZlbnQKICAgICAgICAgICAgICYmIE5TUG9pbnRJblJlY3QoW2V2ZW50IGxvY2F0aW9u
SW5XaW5kb3ddLCBbc2VsZiBjb252ZXJ0UmVjdDpbc2VsZiB2aXNpYmxlUmVjdF0gdG9WaWV3Om5p
bF0pKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIHJldHVybiBOTzsK
ICAgICB9CiAjZWxzZQpAQCAtMzUyOCwxMyArMzUwNiwxMCBAQCBXRUJDT1JFX0NPTU1BTkQodG9n
Z2xlVW5kZXJsaW5lKQogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgaWYgKCFfcHJpdmF0
ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgICAgICAgICBfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9y
ID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3ND
aGFuZ2VkTWFzayBoYW5kbGVyOl4oTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKKyAgICAg
ICAgICAgIF9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRM
b2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tGbGFnc0NoYW5nZWQg
aGFuZGxlcjpeKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CiAgICAgICAgICAgICAgICAg
W3NlbGYgX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6ZmxhZ3ND
aGFuZ2VkRXZlbnRdOwogICAgICAgICAgICAgICAgIHJldHVybiBmbGFnc0NoYW5nZWRFdmVudDsK
ICAgICAgICAgICAgIH1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9
CiAgICAgfSBlbHNlIHsKICAgICAgICAgW05TRXZlbnQgcmVtb3ZlTW9uaXRvcjpfcHJpdmF0ZS0+
ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yXTsKQEAgLTQ1NDAsMTEgKzQ1MTUsMTIgQEAgc3RhdGlj
IEJPT0wgY3VycmVudFNjcm9sbElzQmxpdChOU1ZpZXcgKmNsaXBWaWV3KQogICAgIE5TSW5wdXRN
YW5hZ2VyICpjdXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1
dE1hbmFnZXJdOwogCiAgICAgaWYgKCFbY3VycmVudElucHV0TWFuYWdlciB3YW50c1RvSGFuZGxl
TW91c2VFdmVudHNdIHx8ICFbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVNb3VzZUV2ZW50OmV2
ZW50XSkgeworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBbX3ByaXZhdGUt
PmNvbXBsZXRpb25Db250cm9sbGVyIGVuZFJldmVydGluZ0NoYW5nZTpOTyBtb3ZlTGVmdDpOT107
CiAKICAgICAgICAgLy8gSWYgdGhlIHdlYiBwYWdlIGhhbmRsZXMgdGhlIGNvbnRleHQgbWVudSBl
dmVudCBhbmQgbWVudUZvckV2ZW50OiByZXR1cm5zIG5pbCwgd2UnbGwgZ2V0IGNvbnRyb2wgY2xp
Y2sgZXZlbnRzIGhlcmUuCiAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcGFzcyB0aGVtIGFs
b25nIHRvIEtIVE1MIGEgc2Vjb25kIHRpbWUuCi0gICAgICAgIGlmICghKFtldmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgIGlmICghKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewogICAgICAgICAgICAg
X3ByaXZhdGUtPmlnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzID0gTk87CiAKICAgICAgICAgICAg
IC8vIExldCBXZWJDb3JlIGdldCBhIGNoYW5jZSB0byBkZWFsIHdpdGggdGhlIGV2ZW50LiBUaGlz
IHdpbGwgY2FsbCBiYWNrIHRvIHVzCkBAIC00NTUzLDcgKzQ1MjksNiBAQCBzdGF0aWMgQk9PTCBj
dXJyZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZpZXcpCiAgICAgICAgICAgICAgICAgY29y
ZWZyYW1lLT5ldmVudEhhbmRsZXIoKS5tb3VzZURvd24oZXZlbnQsIFtbc2VsZiBfd2ViVmlld10g
X3ByZXNzdXJlRXZlbnRdKTsKICAgICAgICAgfQogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICNlbmRpZgogCiAgICAgX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3duRXZlbnQg
PSBOTzsKQEAgLTQ4MTgsMTkgKzQ3OTMsMTIgQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRF
dmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlEb3duOiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0KKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogewogICAgICAgICBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1FdmVudCA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBwbGF0Zm9ybUV2
ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsK
ICAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwbGF0Zm9ybUV2ZW50LCBjb3Jl
RnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5VXA6Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgogICAgICAgICByZXR1cm4g
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9y
bUtleWJvYXJkRXZlbnQoZXZlbnQpLCBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAwOwpAQCAtNTUyNCwxMSArNTQ5Miw4
IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50
KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgaWYgKCFbc2VsZiBfY2FuRWRpdF0pCiAgICAgICAgIHJl
dHVybiBOTzsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZs
YWdzTWFzaykgIT0gTlNDb21tYW5kS2V5TWFzaykKKyAgICBpZiAoKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykgIT0g
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbZXZlbnQgY2hh
cmFjdGVyc107CiAgICAgaWYgKFtzdHJpbmcgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAImIiXSA9
PSBOU09yZGVyZWRTYW1lKSB7CkBAIC02NDQ4LDE0ICs2NDEzLDExIEBAIHN0YXRpYyBCT09MIHdy
aXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5nc0VuYWJsZWQoKQogICAgICAgICByZXR1cm4gTk87CiAK
ICAgICBOU0V2ZW50ICptYWNFdmVudCA9IHBsYXRmb3JtRXZlbnQtPm1hY0V2ZW50KCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFttYWNFdmVudCB0eXBlXSA9
PSBOU0tleURvd24gJiYgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBmaWx0ZXJLZXlE
b3duOm1hY0V2ZW50XSkKKyAgICBpZiAoW21hY0V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5
RG93biAmJiBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVyIGZpbHRlcktleURvd246bWFj
RXZlbnRdKQogICAgICAgICByZXR1cm4gWUVTOwogICAgIAotICAgIGlmIChbbWFjRXZlbnQgdHlw
ZV0gPT0gTlNGbGFnc0NoYW5nZWQpCisgICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBOU0V2ZW50
VHlwZUZsYWdzQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgIAogICAgIHBhcmFtZXRlcnMuZXZlbnQgPSBldmVudDsKICAgICBfcHJp
dmF0ZS0+aW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyA9ICZwYXJhbWV0ZXJzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDc4ZjU2ZTQ5MWUwODZhYWU5ODNi
MzgwNjk5YTU1MTU3Y2Q5OGZkYmEuLjk2MGM2Mzc5ZDFhY2U2MDA3YmUxMjA1MmFlMjg0NzQ3MzU0
N2Q4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTY1LDYg
KzY1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmg+
CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+
CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAog
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxBcHBsaWNhdGlvblNlcnZpY2Vz
L0FwcGxpY2F0aW9uU2VydmljZXNQcml2Lmg+CkBAIC0zMjEsMTAgKzMyMiw3IEBAIHN0YXRpYyBC
T09MIF9QREZTZWxlY3Rpb25zQXJlRXF1YWwoUERGU2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQREZT
ZWxlY3Rpb24gKnNlbGVjCiAgICAgLy8gT3ZlcnJpZGUgaGl0VGVzdCBzbyB3ZSBjYW4gb3ZlcnJp
ZGUgbWVudUZvckV2ZW50LgogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVu
dF07CiAgICAgTlNFdmVudFR5cGUgdHlwZSA9IFtldmVudCB0eXBlXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAodHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duIHx8
ICh0eXBlID09IE5TTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlND
b250cm9sS2V5TWFzaykpKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICh0
eXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gfHwgKHR5cGUgPT0gTlNFdmVudFR5cGVM
ZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29udHJvbCkpKQogICAgICAgICByZXR1cm4gc2VsZjsKIAogICAgIHJldHVybiBbc3VwZXIg
aGl0VGVzdDpwb2ludF07CkBAIC0xMDA5LDM5ICsxMDA3LDMzIEBAIHN0YXRpYyBCT09MIGlzRnJh
bWVJblJhbmdlKFdlYkZyYW1lICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQogICAgIGludCBidXR0
b24gPSBub0J1dHRvbjsKICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50OwogICAgIHN3aXRjaCAoW25z
RXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICAgICAgYnV0dG9uID0gMDsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICAgICAgYnV0
dG9uID0gMTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVw
OgotICAgICAgICAgICAgYnV0dG9uID0gW25zRXZlbnQgYnV0dG9uTnVtYmVyXTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5TS2V5RG93bjogewotICAgICAgICAgICAgUGxhdGZv
cm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3Jt
S2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKLSAgICAgICAgICAgIHBlLmRpc2FtYmlndWF0ZUtleURv
d25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKLSAgICAgICAgICAgIGV2ZW50ID0g
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCAwKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgICAg
IGJ1dHRvbiA9IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlVXA6CisgICAgICAgIGJ1dHRvbiA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgICAgIGJ1dHRvbiA9IFtuc0V2ZW50IGJ1dHRvbk51
bWJlcl07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7Cisg
ICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5Ojpj
cmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7CisgICAgICAgIHBlLmRpc2FtYmln
dWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKKyAgICAgICAgZXZl
bnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGlmIChidXR0b24gIT0g
bm9CdXR0b24pIHsKICAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIDAsIFtuc0V2ZW50IGNs
aWNrQ291bnRdLCAwLCAwLCAwLCAwLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAg
ICAgICAwLCAwLAogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2ssCi0g
ICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaywK
LSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1hc2ssCi0g
ICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2ssCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sLAorICAgICAgICAgICAgW25zRXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uLAorICAgICAgICAg
ICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQsCisg
ICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdD
b21tYW5kLAogICAgICAgICAgICAgYnV0dG9uLCAwLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIDAs
IDAsIHRydWUpOwogICAgIH0KIApAQCAtMTE0OSw5ICsxMTQxLDcgQEAgc3RhdGljIEJPT0wgaXNG
cmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgLy8gRklY
TUUgNDQwMDQ4MDogd2hlbiBQREZWaWV3IGltcGxlbWVudHMgdGhlIHN0YW5kYXJkIHNjcm9sbGlu
ZyBzZWxlY3RvcnMgdGhhdCB0aGlzCiAgICAgLy8gbWV0aG9kIGlzIHVzZWQgdG8gbWltaWMsIHdl
IGNhbiBlbGltaW5hdGUgdGhpcyBtZXRob2QgYW5kIGNhbGwgdGhlbSBkaXJlY3RseS4KICAgICBO
U1N0cmluZyAqa2V5QXNTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmZ1
bmN0aW9uS2V5IGxlbmd0aDoxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICByZXR1cm4gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleURvd24KKyAgICByZXR1
cm4gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU1plcm9Qb2ludAogICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVz
dGFtcDowCkBAIC0xMTYxLDcgKzExNTEsNiBAQCBzdGF0aWMgQk9PTCBpc0ZyYW1lSW5SYW5nZShX
ZWJGcmFtZSAqZnJhbWUsIERPTVJhbmdlICpyYW5nZSkKICAgICAgICAgIGNoYXJhY3RlcnNJZ25v
cmluZ01vZGlmaWVyczprZXlBc1N0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNB
UmVwZWF0Ok5PCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleUNvZGU6MF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIC0gKHZvaWQpX2xvb2tVcEluRGljdGlvbmFy
eUZyb21NZW51OihpZClzZW5kZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KaW5kZXggNDM4MmIwNDQ3NGU2MGM4
YzIzNzMzMDQ3YjgxMzk2NGE0Zjc4NDI2My4uN2I5ZTVkYmNmNDhjMjE2YjZjNTY2MzEwYzE3NGU0
MzEyYzU2MjhlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0
Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQg
IldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlZpZXcuaCIKICNpbXBvcnQgPFdlYkNv
cmUvRnJhbWUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogCiBAaW50ZXJmYWNlIE5TV2luZG93IChXZWJOU1dpbmRvd0RldGFpbHMpCiAtICh2
b2lkKV9zZXRGb3JjZUFjdGl2ZUNvbnRyb2xzOihCT09MKWZsYWc7CkBAIC0xMTIsMTAgKzExMyw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIFtzY3JvbGxWaWV3IHNldERvY3VtZW50
VmlldzpfdGFibGVWaWV3XTsKICAgICBbX3RhYmxlVmlldyByZWxlYXNlXTsKICAgICAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBfcG9wdXBXaW5kb3cgPSBbW05TV2lu
ZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnNjcm9sbEZyYW1lIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpO
T107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgX3BvcHVwV2luZG93ID0gW1tO
U1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1hc2s6
TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJl
ZCBkZWZlcjpOT107CiAgICAgW19wb3B1cFdpbmRvdyBzZXRBbHBoYVZhbHVlOjAuODhmXTsKICAg
ICBbX3BvcHVwV2luZG93IHNldENvbnRlbnRWaWV3OnNjcm9sbFZpZXddOwogICAgIFtzY3JvbGxW
aWV3IHJlbGVhc2VdOwpAQCAtMTU1LDggKzE1Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICBtYXhXaWR0aCA9
IGNlaWxmKFtOU1Njcm9sbFZpZXcgZnJhbWVTaXplRm9yQ29udGVudFNpemU6TlNNYWtlU2l6ZSht
YXhXaWR0aCwgMTAwLjBmKSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3Jv
bGxlcjpZRVMgYm9yZGVyVHlwZTpOU05vQm9yZGVyXS53aWR0aCk7Ci0gICAgICAgIG1heFdpZHRo
ID0gY2VpbGYoW05TV2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4w
ZiwgMC4wZiwgbWF4V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01h
c2tdLnNpemUud2lkdGgpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBt
YXhXaWR0aCA9IGNlaWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VS
ZWN0KDAuMGYsIDAuMGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxl
TWFza0JvcmRlcmxlc3NdLnNpemUud2lkdGgpOwogICAgICAgICBtYXhXaWR0aCArPSA1LjBmOwog
ICAgICAgICB3aW5kb3dGcmFtZS5zaXplLndpZHRoID0gc3RkOjptYXgobWF4V2lkdGgsIHdpbmRv
d0ZyYW1lLnNpemUud2lkdGgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCA3Y2ZhYTg3YjU1NmViNDc2YmYzYzVmZWQ1ZTAzZTY4ZmJhMmRlNGJmLi5iZTMyNmU3
ZjhlNzMyNzY5OTZkZGNlNWM5MzMyYWY0NmI5YWY3MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC0yMTMsNiArMjEzLDcgQEAKICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4K
ICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBv
cnQgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KIAogI2lmICFQTEFURk9STShJT1MpCkBAIC02
MDk1LDEwICs2MDk2LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5
T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgZmxhZ3Mg
fD0gRHJhZ0FwcGxpY2F0aW9uSGFzQXR0YWNoZWRTaGVldDsKICAgICBpZiAoW2RyYWdnaW5nSW5m
byBkcmFnZ2luZ1NvdXJjZV0gPT0gc2VsZikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0
aW9uSXNTb3VyY2U7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYg
KFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFz
aykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW1tOU0FwcCBjdXJyZW50
RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAg
ICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSXNDb3B5S2V5RG93bjsKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RHJhZ0FwcGxpY2F0aW9uRmxhZ3M+KGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KaW5kZXggMmU2NTgwNmRiNWQ2OGYwYTRh
MjgyZDM4M2I5NmU3YjQ1MTZiOTA0MC4uYjBjNTU0ZDRkYTYyM2Q5OWIwMTQzNTg2N2IyMDc3MjVi
ODY3NDUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nl
c3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMu
bW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPHB3ZC5oPgogI2ltcG9ydCA8c3RkbGliLmg+
CiAjaW1wb3J0IDxzeXNleGl0cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmls
aXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+
CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpAQCAtMTk3LDEwICsxOTgsNyBAQCB2b2lk
IENoaWxkUHJvY2Vzczo6c3RvcE5TQXBwUnVuTG9vcCgpCiAgICAgQVNTRVJUKFtOU0FwcCBpc1J1
bm5pbmddKTsKICAgICBbTlNBcHAgc3RvcDpuaWxdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0
aFR5cGU6TlNBcHBsaWNhdGlvbkRlZmluZWQgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9k
aWZpZXJGbGFnczowIHRpbWVzdGFtcDowLjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3Vi
dHlwZTowIGRhdGExOjAgZGF0YTI6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVBcHBsaWNhdGlvbkRlZmluZWQgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowLjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTow
IGRhdGExOjAgZGF0YTI6MF07CiAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRy
dWVdOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dl
YkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0
b3J5Lm1tCmluZGV4IGE4NWVmY2FlZTlhNTJkOGMwNDU2NjZkOTRjNDkxODcwY2E2OGE3ZDMuLjJm
MTU4YzAzZTNiZTM4MzhjMDYzYjIxYjIwZmM5ZjY3YzcyYjljNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC02Myw3OCArNjMsNjkgQEAgc3Rh
dGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBjdXJyZW50TW91c2VCdXR0b24oKQogCiBzdGF0aWMg
V2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNlQnV0dG9uRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQp
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChbZXZl
bnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
ICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNl
IE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6
UmlnaHRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2Fz
ZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAg
ICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBX
ZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OlJp
Z2h0QnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKICNp
ZiBkZWZpbmVkKF9fTFA2NF9fKQotICAgICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3Vz
ZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgICAgIHJldHVy
biBjdXJyZW50TW91c2VCdXR0b24oKTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJl
dHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VF
bnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICAgICAgcmV0dXJu
IGN1cnJlbnRNb3VzZUJ1dHRvbigpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBXZWJN
b3VzZUV2ZW50OjpOb0J1dHRvbjsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiB9CiAKIHN0YXRpYyBXZWJFdmVudDo6VHlwZSBtb3VzZUV2ZW50VHlwZUZvckV2ZW50KE5TRXZl
bnQqIGV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3
aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6
Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURy
YWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJl
dHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoK
LSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZURvd246Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlRG93bjsKLSAgICAgICAg
Y2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAg
ICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3Vz
ZVVwOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3Vz
ZU1vdmU7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBO
U0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6
CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoK
KyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgY2FzZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAg
IGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50
OjpNb3VzZURvd247CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VV
cDoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKIH0KIAogc3RhdGljIGludCBjbGlja0NvdW50Rm9yRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNo
IChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0g
ICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBbZXZlbnQgY2xpY2tDb3Vu
dF07Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFtldmVu
dCBjbGlja0NvdW50XTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBv
aW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC0xNDMsMjIgKzEzNCwxOSBAQCBzdGF0aWMg
TlNQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogI2lmIGRlZmluZWQo
X19MUDY0X18pCiAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0g
ICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAg
IGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgIGNhc2Ug
TlNNb3VzZU1vdmVkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICBjYXNlIE5TUmln
aHRNb3VzZURvd246Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNS
aWdodE1vdXNlVXA6Ci0gICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJh
Z2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6Omdsb2JhbFBv
aW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIHJldHVybiBOU1plcm9Qb2ludDsKQEAgLTE3MSwyMiArMTU5LDE5IEBAIHN0
YXRpYyBOU1BvaW50IHBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG93
VmlldykKICNpZiBkZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3Vy
ZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2Ug
TlNMZWZ0TW91c2VEb3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgIGNhc2Ug
TlNMZWZ0TW91c2VVcDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgIGNhc2UgTlNNb3Vz
ZUV4aXRlZDoKLSAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURv
d246Ci0gICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNPdGhlck1vdXNl
VXA6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRHJh
Z2dlZDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2UgTlNTY3JvbGxXaGVlbDog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRl
cmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJN
b3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDogewogICAgICAgICAv
LyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBpdHMgb3JpZ2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0
aGUgd2luZG93IHVubGVzcyB3aW5kb3dWaWV3IGlzIGZsaXBwZWQuCiAgICAgICAgIC8vIEluIHRo
b3NlIGNhc2VzLCB0aGUgWSBjb29yZGluYXRlIGdldHMgZmxpcHBlZCBieSBXaWRnZXQ6OmNvbnZl
cnRGcm9tQ29udGFpbmluZ1dpbmRvdy4KICAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVu
dCBsb2NhdGlvbkluV2luZG93XTsKQEAgLTI0MCwxMCArMjI1LDcgQEAgc3RhdGljIGlubGluZSBT
dHJpbmcgdGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCByZXBsYWNlc1NvZnRTcGFj
ZSkKIHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAgIHJldHVybiBlbXB0eVN0
cmluZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZl
bnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKICAgICAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmluZyhbZXZlbnQgY2hhcmFj
dGVyc10pOwogfQpAQCAtMjUyLDEwICsyMzQsNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyB1bm1v
ZGlmaWVkVGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCByZXBsYWNlc1NvZnRTcAog
ewogICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0
eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAgICByZXR1cm4gU3RyaW5nKFtldmVudCBjaGFyYWN0ZXJz
SWdub3JpbmdNb2RpZmllcnNdKTsKIH0KQEAgLTI2NCw3NCArMjQzLDY4IEBAIHN0YXRpYyBib29s
IGlzS2V5cGFkRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlz
IGlzIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIGEga2V5Q29kZS4KICAgICBzd2l0Y2ggKFtl
dmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBjYXNlIE5TS2V5RG93bjoKLSAgICAgICAgY2FzZSBOU0tleVVwOgotICAgICAgICBjYXNlIE5T
RmxhZ3NDaGFuZ2VkOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUtleURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQ6CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBzd2l0Y2ggKFtldmVudCBr
ZXlDb2RlXSkgewotICAgICAgICBjYXNlIDcxOiAvLyBDbGVhcgotICAgICAgICBjYXNlIDgxOiAv
LyA9Ci0gICAgICAgIGNhc2UgNzU6IC8vIC8KLSAgICAgICAgY2FzZSA2NzogLy8gKgotICAgICAg
ICBjYXNlIDc4OiAvLyAtCi0gICAgICAgIGNhc2UgNjk6IC8vICsKLSAgICAgICAgY2FzZSA3Njog
Ly8gRW50ZXIKLSAgICAgICAgY2FzZSA2NTogLy8gLgotICAgICAgICBjYXNlIDgyOiAvLyAwCi0g
ICAgICAgIGNhc2UgODM6IC8vIDEKLSAgICAgICAgY2FzZSA4NDogLy8gMgotICAgICAgICBjYXNl
IDg1OiAvLyAzCi0gICAgICAgIGNhc2UgODY6IC8vIDQKLSAgICAgICAgY2FzZSA4NzogLy8gNQot
ICAgICAgICBjYXNlIDg4OiAvLyA2Ci0gICAgICAgIGNhc2UgODk6IC8vIDcKLSAgICAgICAgY2Fz
ZSA5MTogLy8gOAotICAgICAgICBjYXNlIDkyOiAvLyA5Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgfQorICAgIGNhc2UgNzE6IC8vIENsZWFyCisgICAgY2FzZSA4MTogLy8gPQorICAg
IGNhc2UgNzU6IC8vIC8KKyAgICBjYXNlIDY3OiAvLyAqCisgICAgY2FzZSA3ODogLy8gLQorICAg
IGNhc2UgNjk6IC8vICsKKyAgICBjYXNlIDc2OiAvLyBFbnRlcgorICAgIGNhc2UgNjU6IC8vIC4K
KyAgICBjYXNlIDgyOiAvLyAwCisgICAgY2FzZSA4MzogLy8gMQorICAgIGNhc2UgODQ6IC8vIDIK
KyAgICBjYXNlIDg1OiAvLyAzCisgICAgY2FzZSA4NjogLy8gNAorICAgIGNhc2UgODc6IC8vIDUK
KyAgICBjYXNlIDg4OiAvLyA2CisgICAgY2FzZSA4OTogLy8gNworICAgIGNhc2UgOTE6IC8vIDgK
KyAgICBjYXNlIDkyOiAvLyA5CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KICAgICAgCiAg
ICAgIHJldHVybiBmYWxzZTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChO
U0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2
ZW50IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlw
ZUZsYWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlw
ZUtleVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNz
ZXMgYm90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0
IHJlbGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtl
eUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2Fz
ZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAg
Y2FzZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAg
ICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0
Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlN
YXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0g
ICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAK
LSAgICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0
IEN0cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250
cm9sS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5j
dGlvbgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0
aW9uS2V5TWFzaykgPT0gMDsKKyAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2Fz
ZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENh
cHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRN
b2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAg
Y2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExl
ZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0CisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pOworCisgICAgY2Fz
ZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAorICAgICAgICBy
ZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgorICAgICAgICByZXR1cm4gIShbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTQ4
NCwxMCArNDU3LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEKICAgICBpbnQgd2luZG93c1Zp
cnR1YWxLZXlDb2RlICAgICAgID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7CiAg
ICAgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlICAgICAgICA9IFtldmVudCBrZXlDb2RlXTsKICAg
ICBpbnQgbWFjQ2hhckNvZGUgICAgICAgICAgICAgICAgID0gV0tHZXROU0V2ZW50S2V5Q2hhcihl
dmVudCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgYm9vbCBhdXRv
UmVwZWF0ICAgICAgICAgICAgICAgICA9IChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQp
ICYmIFtldmVudCBpc0FSZXBlYXRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IGJvb2wgYXV0b1JlcGVhdCAgICAgICAgICAgICAgICAgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVu
dFR5cGVGbGFnc0NoYW5nZWQgJiYgW2V2ZW50IGlzQVJlcGVhdF07CiAgICAgYm9vbCBpc0tleXBh
ZCAgICAgICAgICAgICAgICAgICA9IGlzS2V5cGFkRXZlbnQoZXZlbnQpOwogICAgIGJvb2wgaXNT
eXN0ZW1LZXkgICAgICAgICAgICAgICAgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBm
YWxzZSBvbiB0aGUgTWFjLgogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBt
b2RpZmllcnNGb3JFdmVudChldmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KaW5kZXggMzJlNjM5YzRkOTE5YWQxNmU5YTk0ODJiOTM1Y2VmMDQ2
Mzc3MWZiYS4uNzYzZDkwNjA1NzU5OTNkOGNiMDczYzZhYTRlMDk1YzBkYmI0YTgzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtOTMsNiAr
OTMsNyBAQAogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxzeXMv
c3RhdC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViVmlld0ltcGxJbmNsdWRlcy5o
PgpAQCAtNjIwLDExICs2MjEsOCBAQCBib29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3Bv
bmRlcigpCiAgICAgaWYgKGRpcmVjdGlvbiAhPSBOU0RpcmVjdFNlbGVjdGlvbikgewogICAgICAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAgICAgICBOU0V2ZW50
ICprZXlib2FyZEV2ZW50ID0gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgICAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0g
PT0gTlNLZXlVcCkKKyAgICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURv
d24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApCiAgICAgICAgICAgICBrZXli
b2FyZEV2ZW50ID0gZXZlbnQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAg
IG1fcGFnZS0+c2V0SW5pdGlhbEZvY3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtl
eWJvYXJkRXZlbnQgIT0gbmlsLCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQs
IGZhbHNlLCBmYWxzZSwgeyB9KSwgW10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7IH0p
OwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg0OCwxMCArODQ2LDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6dXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljKCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdmlldy53aW5kb3c7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKCh3aW5kb3cuc3R5bGVNYXNrICYgTlNGdWxs
U2l6ZUNvbnRlbnRWaWV3V2luZG93TWFzaykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFu
c3BhcmVudCAmJiAhW21fdmlldyBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICgod2luZG93LnN0eWxlTWFzayAmIE5TV2luZG93U3R5
bGVNYXNrRnVsbFNpemVDb250ZW50VmlldykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFu
c3BhcmVudCAmJiAhW21fdmlldyBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgewogICAgICAgICBOU1Jl
Y3QgY29udGVudExheW91dFJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0OndpbmRvdy5jb250ZW50
TGF5b3V0UmVjdCBmcm9tVmlldzpuaWxdOwogICAgICAgICBDR0Zsb2F0IG5ld1RvcENvbnRlbnRJ
bnNldCA9IE5TTWF4WShjb250ZW50TGF5b3V0UmVjdCkgLSBOU0hlaWdodChjb250ZW50TGF5b3V0
UmVjdCk7CiAgICAgICAgIGlmIChtX3RvcENvbnRlbnRJbnNldCAhPSBuZXdUb3BDb250ZW50SW5z
ZXQpCkBAIC0xMjI4LDEwICsxMjIzLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVU
b1dpbmRvdygpCiAKICAgICAgICAgaWYgKCFtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikgewog
ICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRN
b25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5T
RmxhZ3NDaGFuZ2VkTWFzayBoYW5kbGVyOlt3ZWFrVGhpc10gKE5TRXZlbnQgKmZsYWdzQ2hhbmdl
ZEV2ZW50KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBtX2Zs
YWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50
c01hdGNoaW5nTWFzazpOU0V2ZW50TWFza0ZsYWdzQ2hhbmdlZCBoYW5kbGVyOlt3ZWFrVGhpc10g
KE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtU
aGlzKQogICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+cG9zdEZha2VNb3VzZU1vdmVkRXZl
bnRGb3JGbGFnc0NoYW5nZWRFdmVudChmbGFnc0NoYW5nZWRFdmVudCk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZsYWdzQ2hhbmdlZEV2ZW50OwpAQCAtMTMwMiwxMiArMTI5NCw5IEBAIE5TVmll
dyAqV2ViVmlld0ltcGw6OmhpdFRlc3QoQ0dQb2ludCBwb2ludCkKIAogdm9pZCBXZWJWaWV3SW1w
bDo6cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChOU0V2ZW50ICpm
bGFnc0NoYW5nZWRFdmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNN
b3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9u
T3V0c2lkZU9mRXZlbnRTdHJlYW0KKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hh
bmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KICAgICAg
ICAgbW9kaWZpZXJGbGFnczpmbGFnc0NoYW5nZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFt
cDpmbGFnc0NoYW5nZWRFdmVudC50aW1lc3RhbXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2
ZW50LndpbmRvd051bWJlcgogICAgICAgICBjb250ZXh0Om51bGxwdHIgZXZlbnROdW1iZXI6MCBj
bGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAg
ICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChmYWtlRXZlbnQsIG1fbGFzdFByZXNzdXJl
RXZlbnQuZ2V0KCksIG1fdmlldyk7CiAgICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2
ZW50KTsKIH0KQEAgLTE2NTYsMTAgKzE2NDUsNyBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjpmdWxs
U2NyZWVuUGxhY2Vob2xkZXJWaWV3KCkKIE5TV2luZG93ICpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVs
bFNjcmVlbldpbmRvdygpCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVl
bldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5d
IGZyYW1lXSBzdHlsZU1hc2s6KE5TQm9yZGVybGVzc1dpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdp
bmRvd01hc2spIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0b3Jl
bGVhc2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBbW1tXZWJD
b3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVu
IG1haW5TY3JlZW5dIGZyYW1lXSBzdHlsZU1hc2s6KE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVz
cyB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlKSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVm
ZmVyZWQgZGVmZXI6Tk9dIGF1dG9yZWxlYXNlXTsKICNlbHNlCiAgICAgcmV0dXJuIG5pbDsKICNl
bmRpZgpAQCAtMjYzMSw5ICsyNjE3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVtb3ZlVHJhY2tp
bmdSZWN0cyhOU1RyYWNraW5nUmVjdFRhZyAqdGFncywgaW50IGNvdW50KQogdm9pZCBXZWJWaWV3
SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUV4aXRlZCgpCiB7CiAgICAgLy8gTm90aGluZyBtYXR0ZXJz
IGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZl
bnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRXhpdGVkCisgICAgTlNFdmVudCAqZmFr
ZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNl
RXhpdGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
b2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjY0MiwxNiArMjYyNiwxMyBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JF
Q1RfVEFHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
c2VyRGF0YTptX3RyYWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKICAgICBbbV90cmFja2luZ1JlY3RPd25lciBtb3VzZUV4aXRlZDpmYWtlRXZlbnRdOwog
fQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJlZCgpCiB7CiAgICAg
Ly8gTm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNl
ckRhdGEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAq
ZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRW50ZXJl
ZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5
cGU6TlNFdmVudFR5cGVNb3VzZUVudGVyZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0y
NjYwLDcgKzI2NDEsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJl
ZCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51
bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2lu
Z051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXNlckRhdGE6bV90cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW21fdHJhY2tpbmdSZWN0T3duZXIgbW91c2VF
bnRlcmVkOmZha2VFdmVudF07CiB9CiAKQEAgLTI4MTYsMTAgKzI3OTYsNyBAQCBzdGF0aWMgV2Vi
Q29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcoTlNWaWV3
ICp2aWV3LCBpZCA8TgogICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25I
YXNBdHRhY2hlZFNoZWV0OwogICAgIGlmIChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2UgPT0g
dmlldykKICAgICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtOU0FwcCBjdXJy
ZW50RXZlbnRdLm1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtOU0FwcCBjdXJyZW50RXZlbnRdLm1vZGlmaWVy
RmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBmbGFncyB8PSBXZWJD
b3JlOjpEcmFnQXBwbGljYXRpb25Jc0NvcHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncz4oZmxhZ3MpOwogCkBAIC0zMzU5LDEwICsz
MzM2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQg
KmV2ZW50KQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZlbnQoTlNFdmVu
dCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNT
RVJUKCFldmVudCB8fCBldmVudC50eXBlID09IE5TTGVmdE1vdXNlRG93biB8fCBldmVudC50eXBl
ID09IE5TUmlnaHRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU090aGVyTW91c2VEb3duKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50
LnR5cGUgPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURvd24pOwogCiAgICAgaWYgKGV2ZW50ID09IG1fbGFzdE1vdXNlRG93bkV2ZW50LmdldCgpKQog
ICAgICAgICByZXR1cm47CkBAIC0zMzk5LDExICszMzczLDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6
ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6ZG9uZVdpdGhL
ZXlFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBldmVudFdhc0hhbmRsZWQpCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tl
eURvd24pCisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24pCiAgICAg
ICAgIHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIGlmICh0cnlQ
b3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKGV2ZW50KSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMzQ3OSwxMSArMzQ1MCw4IEBAIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+IFdlYlZpZXdJbXBsOjpjb2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2CiB7
CiAgICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gY29tbWFuZHM7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5T
S2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAg
ICAgICAgcmV0dXJuIGNvbW1hbmRzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAg
ICAgQVNTRVJUKCFtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMpOwogICAgIG1fY29sbGVjdGVk
S2V5cHJlc3NDb21tYW5kcyA9ICZjb21tYW5kczsKQEAgLTM4NTgsMTEgKzM4MjYsOCBAQCBib29s
IFdlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVudCkKICAgICAv
LyBXZSBnZXQgRXNjIGtleSBoZXJlIGFmdGVyIHByb2Nlc3NpbmcgZWl0aGVyIEVzYyBvciBDbWQr
cGVyaW9kLiBUaGUgZm9ybWVyIHN0YXJ0cyBhcyBhIGtleURvd24sIGFuZCB0aGUgbGF0dGVyIHN0
YXJ0cyBhcyBhIGtleSBlcXVpdmFsZW50LAogICAgIC8vIGJ1dCBib3RoIGdldCB0cmFuc2Zvcm1l
ZCB0byBhIGNhbmNlbE9wZXJhdGlvbjogY29tbWFuZCwgZXhlY3V0aW5nIHdoaWNoIHBhc3NlcyBh
biBFc2Mga2V5IGV2ZW50IHRvIC1wZXJmb3JtS2V5RXF1aXZhbGVudDouCiAgICAgLy8gRG9uJ3Qg
aW50ZXJwcmV0IHRoaXMgZXZlbnQgYWdhaW4sIGF2b2lkaW5nIHJlLWVudHJhbmN5IGFuZCBpbmZp
bml0ZSBsb29wcy4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAo
W1tldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxl
Il0gJiYgIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZp
ZXJGbGFnc01hc2spKQorICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVy
c10gaXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5T
RXZlbnRNb2RpZmllckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykpCiAgICAgICAgIHJl
dHVybiBbbV92aWV3IF93ZWJfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBpZiAobV9rZXlEb3duRXZlbnRCZWluZ1Jl
c2VudCkgewogICAgICAgICAvLyBXZWJDb3JlIGhhcyBhbHJlYWR5IHNlZW4gdGhlIGV2ZW50LCBu
byBuZWVkIGZvciBjdXN0b20gcHJvY2Vzc2luZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCmlu
ZGV4IGYwN2QyNzlkNjM3ZDMwZjhmNTA1MzE3ZDhmMDk2MDU1N2ExMWQyZDIuLjhmMzdkNDI2MTUy
YjYxN2Q1NWM5MTQ4ODE1MTE0ZjhjMzM5ZTdjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5t
bQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCA8Y3J0X2V4dGVybnMuaD4KICNpbXBvcnQgPG1h
Y2gtby9keWxkLmg+CiAjaW1wb3J0IDxzcGF3bi5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRD
b21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKIEBpbnRlcmZhY2UgV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IDogTlNXaW5kb3cgCkBAIC0y
MzEsMTAgKzIzMiw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1vZGFsKCkKICAg
ICBBU1NFUlQoIW1fcGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9u
T2JzZXJ2ZXIpOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV0tQbGFjZWhvbGRlck1vZGFsV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVN
YXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVk
IGRlZmVyOllFU10pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIG1fcGxhY2Vo
b2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TV2lu
ZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXSk7CiAgICAgW21fcGxhY2Vob2xkZXJXaW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2Vk
Ok5PXTsKICAgICAKICAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25XaWxs
QmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5t
bQppbmRleCBhNDgzOTY0ZDhmMWYyMjZkNGFlY2MyN2NjYjBmMDc2MDcxYjdiYmQxLi5iYjVhZDdj
MjFlODEwY2EzNjU2NWVjYzc3N2QwNmFmMzFiYjAyODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC00OCw2
ICs0OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05TU2hhcmluZ1NlcnZpY2VTUEkuaD4KICNpbXBv
cnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgor
I2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NjMsMTAgKzQ2NCw3IEBAIHZvaWQgV2ViQ29u
dGV4dE1lbnVQcm94eU1hYzo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKGNvbnN0IFZlY3RvcjxX
ZWJDb250ZXh0TWVuCiAgICAgW1tXS01lbnVUYXJnZXQgc2hhcmVkTWVudVRhcmdldF0gc2V0TWVu
dVByb3h5OnRoaXNdOwogCiAgICAgTlNQb2ludCBtZW51TG9jYXRpb24gPSBbbV93ZWJWaWV3IGNv
bnZlcnRQb2ludDptX2NvbnRleHQubWVudUxvY2F0aW9uKCkgdG9WaWV3Om5pbF07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9u
IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRv
dy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJl
c3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAg
bG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dO
dW1iZXI6bV93ZWJWaWV3LndpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1i
ZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CiAgICAgW05TTWVudSBwb3BVcENvbnRleHRN
ZW51Om1fbWVudS5nZXQoKSB3aXRoRXZlbnQ6ZXZlbnQgZm9yVmlldzptX3dlYlZpZXddOwogCiAg
ICAgaWYgKG1fY29udGV4dE1lbnVMaXN0ZW5lcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXggMGE3OTkxMzQ2ZDE1
Y2NmYWM3NzQzNWVmMzBlZjhkZjgyMmFmYWUyMy4uZjA2YjU4NDJhY2Q1MzRkZmUyNDEwZmVjYTlh
MWFkZmI2ZWE5Nzc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJJbnNwZWN0b3JQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkluc3BlY3RvclByb3h5TWFjLm1tCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9j
YWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorI2ltcG9y
dCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9CYXNlNjQuaD4KIAogU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVj
dG9yVUksIFByaXZhdGVGcmFtZXdvcmtzLCBBKQpAQCAtNDgsMTAgKzQ5LDcgQEAgU09GVF9MSU5L
X1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVGcmFtZXdvcmtzLCBBKQog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi1zdGF0aWMgY29uc3QgTlNVSW50ZWdlciB3
aW5kb3dTdHlsZU1hc2sgPSBOU1RpdGxlZFdpbmRvd01hc2sgfCBOU0Nsb3NhYmxlV2luZG93TWFz
ayB8IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrIHwg
TlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHdpbmRvd1N0eWxlTWFzayA9IE5TV2luZG93
U3R5bGVNYXNrVGl0bGVkIHwgTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZSB8IE5TV2luZG93U3R5
bGVNYXNrTWluaWF0dXJpemFibGUgfCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZSB8IE5TV2lu
ZG93U3R5bGVNYXNrRnVsbFNpemVDb250ZW50VmlldzsKIAogLy8gVGhlIHRpbWUgd2Uga2VlcCBv
dXIgV2ViVmlldyBhbGl2ZSBiZWZvcmUgY2xvc2luZyBpdCBhbmQgaXRzIHByb2Nlc3MuCiAvLyBS
ZXVzaW5nIHRoZSBXZWJWaWV3IGltcHJvdmVzIHN0YXJ0IHVwIHRpbWUgZm9yIHBlb3BsZSB0aGF0
IGp1bXAgaW4gYW5kIG91dCBvZiB0aGUgSW5zcGVjdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KaW5kZXggZDI5ZDA4OTA1
MmM4ODdhZmI4NjQyMzg0NTVhYTE4ODRiNGRkNDY1Yy4uYzIyOWZiZDBiOGJlYmJhZjExNWMzNTNl
ODNjN2UwODQ2NTA2MDM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJT
dHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgIldlYlBvcHVwSXRlbS5oIgogI2ltcG9ydCA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTc0LDE5
ICs3NSwxMyBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpwb3B1bGF0ZShjb25zdCBWZWN0
b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIE5TRm9udCAqZgogICAgICAgICAgICAgUmV0YWluUHRy
PE5TTXV0YWJsZVBhcmFncmFwaFN0eWxlPiBwYXJhZ3JhcGhTdHlsZSA9IGFkb3B0TlMoW1tOU1Bh
cmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNvcHldKTsKICAgICAg
ICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uID0gaXRlbXNbaV0ubV90
ZXh0RGlyZWN0aW9uID09IExUUiA/IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNX
cml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUg
c2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246d3JpdGluZ0RpcmVjdGlvbl07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxp
Z25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBO
U1JpZ2h0VGV4dEFsaWdubWVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09
IExUUiA/IE5TVGV4dEFsaWdubWVudExlZnQgOiBOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAg
ICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gYXR0cmlidXRlcyA9IGFkb3B0
TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aE9iamVjdHNBbmRLZXlzOgog
ICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0eWxlLmdldCgpLCBOU1BhcmFncmFwaFN0eWxlQXR0
cmlidXRlTmFtZSwKICAgICAgICAgICAgICAgICBmb250LCBOU0ZvbnRBdHRyaWJ1dGVOYW1lLAog
ICAgICAgICAgICAgbmlsXSk7CiAgICAgICAgICAgICBpZiAoaXRlbXNbaV0ubV9oYXNUZXh0RGly
ZWN0aW9uT3ZlcnJpZGUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9
IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rp
b24gKyBOU1RleHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdE
aXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2Vy
OndyaXRpbmdEaXJlY3Rpb24gKyBOU1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAg
ICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9w
dE5TKFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1
ZS5nZXQoKSwgbmlsXSk7CiAgICAgICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0Ondy
aXRpbmdEaXJlY3Rpb25BcnJheS5nZXQoKSBmb3JLZXk6TlNXcml0aW5nRGlyZWN0aW9uQXR0cmli
dXRlTmFtZV07CiAgICAgICAgICAgICB9CkBAIC0xNTQsMTggKzE0OSwxNSBAQCB2b2lkIFdlYlBv
cHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHRE
aXJlY3Rpb24gdGV4dAogCiAgICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZTsKICAgICBzd2l0
Y2ggKGRhdGEubWVudVNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
ICAgICBjYXNlIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOgot
ICAgICAgICBjb250cm9sU2l6ZSA9IE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICBjb250
cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAgICAgIGNv
bnRyb2xTaXplID0gTlNTbWFsbENvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5T
Q29udHJvbFNpemVTbWFsbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1
cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNN
aW5pQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZU1pbmk7
CiAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAog
ICAgIFJlZjxXZWJQb3B1cE1lbnVQcm94eU1hYz4gcHJvdGVjdCgqdGhpcyk7CkBAIC0xODMsMTMg
KzE3NSwxMSBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0
IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgIGlmICghbV9jbGllbnQtPmN1
cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBOU0V2ZW50KiBpbml0aWF0
aW5nTlNFdmVudCA9IG1fY2xpZW50LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgp
LT5uYXRpdmVFdmVudCgpOwotICAgIGlmIChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0gTlNM
ZWZ0TW91c2VEb3duKQorICAgIGlmIChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0gTlNFdmVu
dFR5cGVMZWZ0TW91c2VEb3duKQogICAgICAgICByZXR1cm47CiAKLSAgICBOU0V2ZW50ICpmYWtl
RXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAorICAgIE5T
RXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUxlZnRNb3VzZVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxvY2F0aW9uOltpbml0aWF0aW5nTlNFdmVudCBsb2NhdGlvbkluV2luZG93XQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ05T
RXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KQEAgLTE5OCwx
MyArMTg4LDE0IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29u
c3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCBldmVu
dE51bWJlcl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNr
Q291bnQ6W2luaXRpYXRpbmdOU0V2ZW50IGNsaWNrQ291bnRdCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlOltpbml0aWF0aW5nTlNFdmVudCBwcmVz
c3VyZV1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgW05TQXBwIHBvc3RF
dmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOworICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1ttX3dlYlZpZXcgd2luZG93XQogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9jYXRpb246W1ttX3dlYlZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltO
U0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFNj
cmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2lu
aXRpYXRpbmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCB3
aW5kb3dOdW1iZXJdCkBAIC0yMTIsNyArMjAzLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1h
Yzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVk
UERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXBy
ZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IDVlZGU1NmVlZTQwYWNmZGI5OTAxMTlkZTdhY2U5MThl
Njc4YmM2NjYuLjEyNTE4ZGYzMzRjZjNmZGQ2NThkZjg5MTljMzM2MWIwODQyZTJkYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBE
RlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0Rl
cHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTgwLDYgKzgwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
V2hlZWxFdmVudFRlc3RUcmlnZ2VyLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRD
b21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkBAIC0xMjc4LDMzICsxMjc5LDI4IEBAIHZvaWQgUERGUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFT
Y3JpcHQodWludDY0X3QsIGNvbnN0IFdURjo6U3RyaW5nJikKICAgICAKIHN0YXRpYyBOU1VJbnRl
Z2VyIG1vZGlmaWVyRmxhZ3NGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50KQogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHJldHVybiAoZXZlbnQuc2hp
ZnRLZXkoKSA/IE5TU2hpZnRLZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQuY29udHJvbEtl
eSgpID8gTlNDb250cm9sS2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8g
TlNBbHRlcm5hdGVLZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQubWV0YUtleSgpID8gTlND
b21tYW5kS2V5TWFzayA6IDApOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJl
dHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCA6IDApCisg
ICAgICAgIHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9s
IDogMCkKKyAgICAgICAgfCAoZXZlbnQuYWx0S2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uIDogMCkKKyAgICAgICAgfCAoZXZlbnQubWV0YUtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxh
Z0NvbW1hbmQgOiAwKTsKIH0KICAgICAKIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJF
dmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5cGUpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChldmVudC50eXBl
KCkpIHsKICAgICBjYXNlIFdlYkV2ZW50OjpLZXlEb3duOgotICAgICAgICBldmVudFR5cGUgPSBO
U0tleURvd247CisgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5RG93bjsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBXZWJFdmVudDo6S2V5VXA6Ci0gICAgICAgIGV2ZW50
VHlwZSA9IE5TS2V5VXA7CisgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlRG93bjoKICAgICAg
ICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRv
bigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAg
ICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRU
eXBlID0gTlNSaWdodE1vdXNlRG93bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd247CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMTIsMTAgKzEzMDgsMTAgQEAg
c3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVu
dCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZVVwOgogICAg
ICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0
dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAg
ICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9
IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlw
ZSA9IE5TUmlnaHRNb3VzZVVwOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVS
aWdodE1vdXNlVXA7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMjMsMTMgKzEzMTksMTMgQEAgc3RhdGlj
IGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNF
dmVudFR5cGUmIGV2ZW50VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZU1vdmU6CiAgICAgICAg
IHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24o
KSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAg
ICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CisgICAgICAgICAgICBldmVudFR5cGUg
PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2
ZW50VHlwZSA9IE5TUmlnaHRNb3VzZURyYWdnZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6Tm9CdXR0b246Ci0gICAgICAgICAgICBldmVudFR5
cGUgPSBOU01vdXNlTW92ZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZU1v
dXNlTW92ZWQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMzcsNyArMTMzMyw2IEBAIHN0YXRpYyBib29s
IGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRU
eXBlJiBldmVudFR5CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KICAgICAKIE5TRXZlbnQgKlBERlBsdWdp
bjo6bnNFdmVudEZvcldlYk1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
blRleHRBbm5vdGF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQppbmRleCA2YzYwYmRkZTk1ZmRkMzE3ZjZiNzE0
ZTFmNDRmNmVlYjJmMzNkMzBiLi42MDMxYzU5MGRjMjMxZWNjZmVlYTIwYTA0N2Y4NTY5NmNhNWQ4
YTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KQEAgLTQ0LDYgKzQ0LDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvSFRNTFRleHRBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPHd0
Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtNTMsMjEgKzU0LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcgY3NzQWxpZ25tZW50VmFsdWVGb3JOU1RleHRBbGln
bm1lbnQoTlNUZXh0QWxpZ25tZW50IGFsaWdubWVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKGFsaWdubWVudCkgewotICAgIGNhc2UgTlNMZWZ0
VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudExlZnQ6CiAgICAgICAgIHJl
dHVybiAibGVmdCI7Ci0gICAgY2FzZSBOU1JpZ2h0VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5T
VGV4dEFsaWdubWVudFJpZ2h0OgogICAgICAgICByZXR1cm4gInJpZ2h0IjsKLSAgICBjYXNlIE5T
Q2VudGVyVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudENlbnRlcjoKICAg
ICAgICAgcmV0dXJuICJjZW50ZXIiOwotICAgIGNhc2UgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50
OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50SnVzdGlmaWVkOgogICAgICAgICByZXR1cm4gImp1
c3RpZnkiOwotICAgIGNhc2UgTlNOYXR1cmFsVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4
dEFsaWdubWVudE5hdHVyYWw6CiAgICAgICAgIHJldHVybiAiLXdlYmtpdC1zdGFydCI7CiAgICAg
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1t
CmluZGV4IGEzNmYzYjMyM2FiOTE2NTE0NzdiZDNjN2JlMjhjNmEyM2RlOWIxN2QuLjYyNmU0MzZj
NmFjNGZlNmI5YTdlYjUzYzJkMzU2YmY3OTZmZjQ0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0Ns
aWVudE1hYy5tbQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdUcnVu
Y2F0b3IuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKQEAgLTYzLDEwICs2NCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJp
dG1hcD4gY29udmVydEltYWdlVG9CaXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEluCiAgICAg
UmV0YWluUHRyPE5TR3JhcGhpY3NDb250ZXh0PiBzYXZlZENvbnRleHQgPSBbTlNHcmFwaGljc0Nv
bnRleHQgY3VycmVudENvbnRleHRdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJl
bnRDb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQ
b3J0OmdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UgZHJhd0luUmVjdDpO
U01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhl
aWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92
ZXIgZnJhY3Rpb246MSByZXNwZWN0RmxpcHBlZDpZRVMgaGludHM6bmlsXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAs
IGJpdG1hcC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVj
dDpOU1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBm
cmFjdGlvbjoxIHJlc3BlY3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhp
Y3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294102</attachid>
            <date>2016-11-07 17:02:30 -0800</date>
            <delta_ts>2016-11-07 18:34:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107165823.patch</filename>
            <type>text/plain</type>
            <size>159092</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjU5NWY5YzQ3NDI3ZmY2Y2QyM2M1YzJjYjlmOTQwNDNmYTk2YmRiNmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xMjEwLDggKzEyMTAsNiBAQCBOU0RpY3Rpb25hcnkgKkhUTUxDb252ZXJ0
ZXI6OmNvbXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICAg
ICAgU3RyaW5nIHRleHRBbGlnbiA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGNvcmVC
bG9ja0VsZW1lbnQsIENTU1Byb3BlcnR5VGV4dEFsaWduKTsKICAgICAgICAgaWYgKHRleHRBbGln
bi5sZW5ndGgoKSkgewogICAgICAgICAgICAgLy8gV2ViS2l0IGNhbiByZXR1cm4gLWtodG1sLWxl
ZnQsIC1raHRtbC1yaWdodCwgLWtodG1sLWNlbnRlcgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgogICAgICAgICAgICAgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgibGVmdCIpKQog
ICAgICAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25t
ZW50TGVmdF07CiAgICAgICAgICAgICBlbHNlIGlmICh0ZXh0QWxpZ24uZW5kc1dpdGgoInJpZ2h0
IikpCkBAIC0xMjIwLDcgKzEyMTgsNiBAQCBOU0RpY3Rpb25hcnkgKkhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICAgICAgICAg
ICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVudENlbnRlcl07
CiAgICAgICAgICAgICBlbHNlIGlmICh0ZXh0QWxpZ24uZW5kc1dpdGgoImp1c3RpZnkiKSkKICAg
ICAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVu
dEp1c3RpZmllZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIH0KIAog
ICAgICAgICBTdHJpbmcgZGlyZWN0aW9uID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUo
Y29yZUJsb2NrRWxlbWVudCwgQ1NTUHJvcGVydHlEaXJlY3Rpb24pOwpAQCAtMTg1MSwxOCArMTg0
OCwyMCBAQCBCT09MIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzRWxlbWVudChFbGVtZW50JiBlbGVt
ZW50LCBOU0ludGVnZXIgZGVwdGgpCiAgICAgZWxzZSB7CiAgICAgICAgIFN0cmluZyBiaWRpID0g
X2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVydHlVbmljb2Rl
QmlkaSk7CiAgICAgICAgIGlmIChiaWRpID09ICJlbWJlZCIpIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICAgICBOU1VJbnRl
Z2VyIHZhbCA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisjZWxzZQorICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1dy
aXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CisjZW5kaWYKICAgICAgICAgICAgIGlmIChfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbikgPT0g
InJ0bCIpCiAgICAgICAgICAgICAgICAgdmFsIHw9IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9M
ZWZ0OwogICAgICAgICAgICAgW193cml0aW5nRGlyZWN0aW9uQXJyYXkgYWRkT2JqZWN0OltOU051
bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnRlZ2VyOnZhbF1dOwogICAgICAgICB9IGVsc2UgaWYg
KGJpZGkgPT0gImJpZGktb3ZlcnJpZGUiKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBO
U1RleHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisjZWxzZQorICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rp
b25PdmVycmlkZTsKKyNlbmRpZgogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFs
dWVGb3JOb2RlKGVsZW1lbnQsIENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAg
ICAgICAgICAgICB2YWwgfD0gTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAg
ICAgICBbX3dyaXRpbmdEaXJlY3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldp
dGhVbnNpZ25lZEludGVnZXI6dmFsXV07CkBAIC0yMDYzLDE0ICsyMDYyLDcgQEAgdm9pZCBIVE1M
Q29udmVydGVyOjpfYWRkTWFya2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJh
bmdlKQogICAgICAgICAgICAgICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9j
XSBpbml0V2l0aFR5cGU6TlNMZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25d
OwogICAgICAgICAgICAgICAgICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAg
ICAgICAgICAgICAgICBbdGFiIHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAg
ICAgICAgICAgICAgdGFiID0gW1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0
QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9w
dGlvbnM6QHsgfV07Ci0jZWxzZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgICAgICAgICAgICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0
V2l0aFRleHRBbGlnbm1lbnQ6TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9j
YXRpb24gb3B0aW9uczpAeyB9XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgogICAgICAgICAgICAgICAgICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAg
ICAgICAgICAgICAgICBbdGFiIHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJT
dHIgYWRkQXR0cmlidXRlOk5TUGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0
eWxlIHJhbmdlOnBhcmFncmFwaFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50
SGFuZGxlck1hYy5tbQppbmRleCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1
NjFkLi5kMWU4OWUyMTZjNDEzNGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KICNpbmNsdWRlIDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VT
VFVSRV9FVkVOVFMpCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2Vz
dHVyZS5jcHA+CkBAIC0xNTAsMTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVu
dChOU0V2ZW50ICpldmVudCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5
cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlw
ZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3Vy
cmVudEV2ZW50U2NvcGUgc2NvcGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBs
YXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsK
QEAgLTIwNiwxMiArMjA0LDkgQEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAog
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3Vy
cmVudE5TRXZlbnQoKSAhPSBjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAg
ICAgICYmIFtjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVm
dE1vdXNlVXAKKyAgICAgICAgJiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24g
dHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50
QWZ0ZXJIYW5kbGluZ01vdXNlRG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJl
bnROU0V2ZW50KCkgdGltZXN0YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1
LDU4ICszNzAsNTUgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJm
cmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
ICAgICBzd2l0Y2ggKFtjdXJyZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNM
ZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sg
aXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0
IGJyZWFrcyBhIG51bWJlciBvZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAg
ICAgICAgaWYgKCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmln
aHRNb3VzZURyYWdnZWQ6CisgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgorICAgICAgICAvLyBsYXlvdXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJ
blN1YmZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi0gICAgICAgICAgICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIo
KS5kaWRJbml0aWF0ZURyYWcoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGlmIChzdWJmcmFtZS0+cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJh
ZygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNN
b3VzZU1vdmVkOgotICAgICAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50
TlNFdmVudCgpIGhlcmUsIHdlIGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1v
dmVFdmVudCgpIGRpcmVjdGx5LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAg
ICAvLyBjdXJyZW50TlNFdmVudCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBu
byBlZmZlY3QuCi0gICAgICAgICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsK
LSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAg
IHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxh
dGZvcm1Nb3VzZUV2ZW50KCksIGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2
ZW50VG9TdWJ2aWV3ID0gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBp
biBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1v
dXNlTW92ZUV2ZW50KCkgZGlyZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAg
ICAgLy8gY3VycmVudE5TRXZlbnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUg
bm8gZWZmZWN0LgorICAgICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAg
ICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VF
dmVudCgpLCBob3ZlcmVkTm9kZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0g
ZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xl
ZnRNb3VzZURvd246IHsKLSAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2Rl
KCk7Ci0gICAgICAgICAgICBpZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAg
ICAgICAgaWYgKCFpczxSZW5kZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRl
cldpZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8
ICF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICAgICAgaWYgKCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2Fz
dDxSZW5kZXJXaWRnZXQ+KHJlbmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgbV9tb3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDog
ewotICAgICAgICAgICAgaWYgKCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRv
U3Vidmlldyk7Ci0gICAgICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0g
ICAgICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2
ZW50VG9TdWJ2aWV3ID0gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
fQotICAgICAgICBkZWZhdWx0OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7
CisgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICgh
bm9kZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIg
PSBub2RlLT5yZW5kZXJlcigpOworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVy
ZXIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9
IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYg
KCF3aWRnZXQgfHwgIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3du
Y2FzdDxSZW5kZXJXaWRnZXQ+KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIG1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAg
ICAgaWYgKCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIEFTU0VSVCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBt
X3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50
KCkpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29s
IEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmIHdoZWVsRXZlbgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3
aWRnZXQpLmZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50
KTsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAo
W2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVu
dFRvU3VidmlldykKKyAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5
cGVTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVW
aWV3KTsKICAgICBBU1NFUlQoW25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUs
MTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2lu
ZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3Vidmll
dyA9IGZhbHNlOwogICAgIGludCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0g
TlNMZWZ0TW91c2VEb3duIHx8IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZl
bnRUeXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVu
dFR5cGVLZXlEb3duKSB7CiAgICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAg
ICAgaWYgKGV2ZW50VHlwZSA9PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VF
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAg
IGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAg
ICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0
TW91c2VVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0
aW9uOltpbml0aWF0aW5nRXZlbnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlm
aWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1l
c3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9p
ZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50
ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJlc3N1cmU6W2luaXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAg
ICAgICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAg
ICAgfSBlbHNlIHsgLy8gZXZlbnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2
ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7
IC8vIGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVu
dCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50
IGxvY2F0aW9uSW5XaW5kb3ddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
b2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0
aW1lc3RhbXBdCkBAIC02MTksOCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFr
ZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAg
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJG
bGFncyBoZXJlLCBidXQgdGhlcmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGlu
IENvY29hLCBhbmQgYmVjYXVzZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENh
cmJvbiBtZW51IGNvZGUgd2UgaGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9m
IHRoZW0gYW55d2hlcmUuCi0gICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU01vdXNlTW92ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3Jl
ZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1X
aWRnZXQoKSB3aW5kb3ddCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVu
dCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQg
bW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZXN0YW1wOltpbml0aWF0aW5nRXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJd
CkBAIC02MjgsNyArNjE5LDYgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0
ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
ICAgICAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0K
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JX
aW5kb3cubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1t
CmluZGV4IGE3NGRhODVhY2VjYTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdj
N2Q5ZTY5ZGU0ZmNiYjM0Y2IxZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9y
dCAiUXVhcnR6Q29yZVNQSS5oIgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAi
V2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwg
Ym91bmNlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91
bmNlV2l0aENyb3NzZmFkZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgs
MTAgQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0
SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2Vp
bGluZyh2ZXJ0aWNhbE1hcmdpbik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJ
bnNldCh0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJn
aW4sIC12ZXJ0aWNhbE1hcmdpbik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgTlNSZWN0IHdpbmRvd0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9y
RnJhbWVSZWN0Ok5TUmVjdEZyb21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRl
cmxlc3NXaW5kb3dNYXNrXTsKKyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5k
b3cgY29udGVudFJlY3RGb3JGcmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkg
c3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVn
cmFsV2luZG93Q29udGVudFJlY3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7
CiAgICAgTlNQb2ludCBmcmFjdGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0Nv
bnRlbnRSZWN0Lm9yaWdpbi54IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwg
d2luZG93Q29udGVudFJlY3Qub3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9y
aWdpbi55KTsKLSAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHls
ZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6Tk9dKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJ
bmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVu
dFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1h
c2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwog
ICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNs
ZWFyQ29sb3JdXTsKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAg
ICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXgg
NWE0OWYzYWIzYmQwZTRiMmEyMmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3Njlh
OTIxODY2YzAwNTM2ZGY2ODE5NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxv
Y2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAj
aW1wb3J0IDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4
LDEwICs5OSw3IEBAIHZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIHJlY3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQg
bG9jYWxDdXJyZW50R0MoY29udGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICBbbV9uc0ltYWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0
KDAsIDAsIFttX25zSW1hZ2Ugc2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBv
cGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21S
ZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBz
aXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBm
cmFjdGlvbjoxLjBmXTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0N1cnNvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JN
YWMubW0KaW5kZXggYTZkNzgzMjhlOWZlNjI3ZWYxNGFmYzljMGJkMGY2NjllYjI1NGQwYy4uNzI4
ZDM0NGE5NDUwMzRiOWM3YTIwODVmNDU2M2RjMWJiNjk2NGU2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRD
b21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgV2ViQ29yZUN1cnNvckJ1
bmRsZSA6IE5TT2JqZWN0IHsgfQogQGVuZApAQCAtNjQsMTAgKzY1LDcgQEAgc3RhdGljIFJldGFp
blB0cjxOU0N1cnNvcj4gY3JlYXRlQ3VzdG9tQ3Vyc29yKEltYWdlKiBpbWFnZSwgY29uc3QgSW50
UG9pbnQmIGhvdFMKICAgICAgICAgTlNSZWN0IGZyb21SZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBp
bWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpKTsKIAogICAgICAgICBbZXhwYW5kZWRJbWFn
ZSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBbbnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246
TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICBbbnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9t
UmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246
MV07CiAgICAgICAgIFtleHBhbmRlZEltYWdlIHVubG9ja0ZvY3VzXTsKIAogICAgICAgICByZXR1
cm4gYWRvcHROUyhbW05TQ3Vyc29yIGFsbG9jXSBpbml0V2l0aEltYWdlOmV4cGFuZGVkSW1hZ2Uu
Z2V0KCkgaG90U3BvdDpob3RTcG90XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdJbWFnZU1hYy5tbQppbmRleCA2ODI0NmJlZmE1MjNlZGZmM2I2MDVjNjAxMTg3MTlkNDcyOThk
MDliLi4wZmY0MjAyMDBjYzhiZDM0ODdlNDU2Zjc3OTBlZGVlOTVlOGY1NDE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbXBvcnQgIlN0cmluZ1RydW5jYXRvci5oIgogI2ltcG9ydCAiVGV4dFJ1bi5oIgogI2ltcG9y
dCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGli
aWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03NSwxMCAr
NzYsNyBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJl
dGFpblB0cjxOU0ltYWdlPiBpbWFnZSwgZmxvYXQgZAogICAgIFJldGFpblB0cjxOU0ltYWdlPiBk
aXNzb2x2ZWRJbWFnZSA9IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W2lt
YWdlLmdldCgpIHNpemVdXSk7CiAgICAgCiAgICAgW2Rpc3NvbHZlZEltYWdlLmdldCgpIGxvY2tG
b2N1c107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW2ltYWdlLmdl
dCgpIGRyYXdBdFBvaW50Ok5TWmVyb1BvaW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2lt
YWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVDb3B5IGZyYWN0aW9uOmRlbHRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBbaW1hZ2UuZ2V0KCkgZHJhd0F0UG9pbnQ6TlNaZXJvUG9pbnQgZnJvbVJlY3Q6TlNNYWtlUmVj
dCgwLCAwLCBbaW1hZ2Ugc2l6ZV0ud2lkdGgsIFtpbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlv
bjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uQ29weSBmcmFjdGlvbjpkZWx0YV07CiAgICAgW2Rpc3Nv
bHZlZEltYWdlLmdldCgpIHVubG9ja0ZvY3VzXTsKIAogICAgIHJldHVybiBkaXNzb2x2ZWRJbWFn
ZTsKQEAgLTExOSwxMCArMTE3LDggQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFn
ZUZyb21JbWFnZShJbWFnZSogaW1hZ2UsIEltYWdlT3JpZW50YXRpb25EZXNjcmkKICAgICAgICAg
ICAgIFtjb2NvYVRyYW5zZm9ybS5nZXQoKSBzZXRUcmFuc2Zvcm1TdHJ1Y3Q6KihOU0FmZmluZVRy
YW5zZm9ybVN0cnVjdCopJnRyYW5zZm9ybV07CiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0u
Z2V0KCkgY29uY2F0XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgW2ltYWdlLT5zbmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZy
b21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVy
YXRpb246TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRy
YXdJblJlY3Q6ZGVzdFJlY3QgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRoKCks
IHNpemUuaGVpZ2h0KCkpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3Zl
ciBmcmFjdGlvbjoxLjBdOworCiAgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFnZS5nZXQoKSB1
bmxvY2tGb2N1c107CiAKICAgICAgICAgICAgIHJldHVybiByb3RhdGVkRHJhZ0ltYWdlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KaW5kZXggYWYwYTM5OTJi
NjZlOWQ2ZmZjMDE3NzEyNDg1NzYyNmEwMDVhNWU5MC4uYjljYzU0NWE5ODQ5MzRkNTQ2MGRkYmRm
NWJkNGVjM2VhNzE1OTIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0V2ZW50TG9vcE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRM
b29wTWFjLm1tCkBAIC0yNSwxNiArMjUsMTQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkV2ZW50TG9vcC5oIgorI2luY2x1ZGUgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRXZlbnRMb29w
OjpjeWNsZSgpCiB7CiAgICAgW05TQXBwIHNldFdpbmRvd3NOZWVkVXBkYXRlOllFU107Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW05TQXBwIHNlbmRFdmVudDpbTlNB
cHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRl
IGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxv
b3BNb2RlIGRlcXVldWU6WUVTXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
W05TQXBwIHNlbmRFdmVudDpbTlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNr
QW55IHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0g
aW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXV07CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
YXN0ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRN
YWMubW0KaW5kZXggYTVkZjM0NzRjMzExYzZhNzU2MWQ3ZjRkNDQ1NTMxNGFhMDRkMDA3MC4uMWM0
ZTNjMTk4MDMxY2ZmYTZmYTliNjY1MjcxYWJmYTQ3MzJkNzYyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KQEAgLTU1LDYgKzU1LDcgQEAKICNpbXBv
cnQgIm1hcmt1cC5oIgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW1wb3J0IDx3
dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogCkBAIC02NTMsMTEgKzY1NCw4IEBAIHZvaWQg
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9p
bnQmIGxvY2F0aW9uKQogICAgIC8vIEhhY2s6IFdlIG11c3QgcG9zdCBhbiBldmVudCB0byB3YWtl
IHVwIHRoZSBOU0RyYWdNYW5hZ2VyLCB3aGljaCBpcyBzaXR0aW5nIGluIGEgbmV4dEV2ZW50IGNh
bGwKICAgICAvLyB1cCB0aGUgc3RhY2sgZnJvbSB1cyBiZWNhdXNlIHRoZSBDb3JlRm91bmRhdGlv
biBkcmFnIG1hbmFnZXIgZG9lcyBub3QgdXNlIHRoZSBydW4gbG9vcCBieSBpdHNlbGYuCiAgICAg
Ly8gVGhpcyBpcyB0aGUgbW9zdCBpbm5vY3VvdXMgZXZlbnQgdG8gdXNlLCBwZXIgS3Jpc3RlbiBG
b3JzdGVyLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQq
IGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlv
bjpOU1plcm9Qb2ludAorICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZCBsb2NhdGlvbjpOU1plcm9Qb2ludAogICAgICAg
ICBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwg
ZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OllFU107CiB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCBkMzRkNmVhZTk0OGY3YWZjYmFiMzMwMzE0ZmRjYmE3
OGU5ZTQwMGI4Li4wZDJlMzE4ZWNkZmIxMzA0MjM4NzdhNzMyZDgyZjg2OTE5NzY5N2U1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0
b3J5TWFjLm1tCkBAIC01MiwyNyArNTIsMjQgQEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRG
b3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewog
I2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBO
U01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBjYXNl
IE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VE
cmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TU2Ny
b2xsV2hlZWw6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1
cm4gZ2xvYmFsUG9pbnQoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4geyAwLCAwIH07CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdo
ZWVsOgorICAgICAgICByZXR1cm4gZ2xvYmFsUG9pbnQoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
LCBbZXZlbnQgd2luZG93XSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHsgMCwgMCB9
OwogICAgIH0KIH0KIApAQCAtODAsMzMgKzc3LDMwIEBAIHN0YXRpYyBJbnRQb2ludCBwb2ludEZv
ckV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiB7CiAgICAgc3dpdGNo
IChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVz
c3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNl
VXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4
aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1v
dXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoK
LSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOiB7Ci0gICAgICAgICAgICAvLyBOb3RlOiBUaGlz
IHdpbGwgaGF2ZSBpdHMgb3JpZ2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVu
bGVzcyB3aW5kb3dWaWV3IGlzIGZsaXBwZWQuCi0gICAgICAgICAgICAvLyBJbiB0aG9zZSBjYXNl
cywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNv
bnRhaW5pbmdXaW5kb3cuCi0gICAgICAgICAgICBOU1BvaW50IGxvY2F0aW9uID0gW2V2ZW50IGxv
Y2F0aW9uSW5XaW5kb3ddOwotICAgICAgICAgICAgaWYgKHdpbmRvd1ZpZXcpCi0gICAgICAgICAg
ICAgICAgbG9jYXRpb24gPSBbd2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9jYXRpb24gZnJvbVZp
ZXc6bmlsXTsKLSAgICAgICAgICAgIHJldHVybiBJbnRQb2ludChsb2NhdGlvbik7Ci0gICAgICAg
IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIHJldHVybiBJbnRQb2ludCgpOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91
c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBO
U0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1v
dXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDogeworICAgICAgICAvLyBOb3Rl
OiBUaGlzIHdpbGwgaGF2ZSBpdHMgb3JpZ2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2lu
ZG93IHVubGVzcyB3aW5kb3dWaWV3IGlzIGZsaXBwZWQuCisgICAgICAgIC8vIEluIHRob3NlIGNh
c2VzLCB0aGUgWSBjb29yZGluYXRlIGdldHMgZmxpcHBlZCBieSBXaWRnZXQ6OmNvbnZlcnRGcm9t
Q29udGFpbmluZ1dpbmRvdy4KKyAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVudCBsb2Nh
dGlvbkluV2luZG93XTsKKyAgICAgICAgaWYgKHdpbmRvd1ZpZXcpCisgICAgICAgICAgICBsb2Nh
dGlvbiA9IFt3aW5kb3dWaWV3IGNvbnZlcnRQb2ludDpsb2NhdGlvbiBmcm9tVmlldzpuaWxdOwor
ICAgICAgICByZXR1cm4gSW50UG9pbnQobG9jYXRpb24pOworICAgIH0KKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gSW50UG9pbnQoKTsKICAgICB9CiB9CiAKQEAgLTExNCw3MiArMTA4LDYz
IEBAIHN0YXRpYyBNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5TRXZlbnQgKmV2ZW50
KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQNjRfXykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAgICBjYXNl
IE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2Vu
ZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNM
ZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIExlZnRCdXR0b247Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoK
LSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFJp
Z2h0QnV0dG9uOwotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2Ug
TlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAg
ICAgICAgIHJldHVybiBNaWRkbGVCdXR0b247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTm9CdXR0b247CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1
cm4gTGVmdEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZl
bnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBN
aWRkbGVCdXR0b247CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIE5vQnV0dG9uOwogICAg
IH0KIH0KIAogc3RhdGljIFBsYXRmb3JtRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVGb3JFdmVu
dChOU0V2ZW50KiBldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJh
Z2dlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNl
RXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
ICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKLSAgICAgICAgY2FzZSBOU0xl
ZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2Fz
ZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlUHJlc3NlZDsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5T
UmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAg
cmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1F
dmVudDo6TW91c2VNb3ZlZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVN
b3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmln
aHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOworICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVJlbGVhc2VkOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2
ZW50OjpNb3VzZU1vdmVkOwogICAgIH0KIH0KIAogc3RhdGljIGludCBjbGlja0NvdW50Rm9yRXZl
bnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURv
d246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3Vz
ZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBO
U1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAg
ICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKLSAgICAgICAgICAgIHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07Ci0gICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93
bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5
cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKICAgICB9CiB9CiAKQEAgLTQ5NywyOCAr
NDgyLDI4IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCogZXZlbnQp
CiB7CiAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkgewog
ICAgICAgICBzd2l0Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICAgICAgY2FzZSA1NDog
Ly8gUmlnaHQgQ29tbWFuZAotICAgICAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiTWV0YSIpOwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgICAgICByZXR1cm4g
U3RyaW5nKCJDYXBzTG9jayIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1
NjogLy8gTGVmdCBTaGlmdAotICAgICAgICAgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKLSAg
ICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJTaGlmdCIpOwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKLSAgICAgICAgICAgIGNhc2UgNjE6IC8v
IFJpZ2h0IEFsdAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkFsdCIpOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgICAg
ICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygi
Q29udHJvbCIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKKyAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAorICAgICAg
ICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1l
dGEiKTsKKworICAgICAgICBjYXNlIDU3OiAvLyBDYXBzbG9jaworICAgICAgICAgICAgcmV0dXJu
IFN0cmluZygiQ2Fwc0xvY2siKTsKKworICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Cisg
ICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0CisgICAgICAgICAgICByZXR1cm4gU3RyaW5n
KCJTaGlmdCIpOworCisgICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgICAgIGNhc2Ug
NjE6IC8vIFJpZ2h0IEFsdAorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisKKyAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0
cmwKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKKworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1
cm4gZW1wdHlTdHJpbmcoKTsKICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTUzNCw0NCArNTE5
LDM4IEBAIHN0YXRpYyBib29sIGlzS2V5cGFkRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAg
Ly8gQ2hlY2sgdGhhdCB0aGlzIGlzIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIGEga2V5Q29k
ZS4KICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TS2V5RG93bjoKLSAgICAgICAgY2FzZSBOU0tleVVw
OgotICAgICAgICBjYXNlIE5TRmxhZ3NDaGFuZ2VkOgotICAgICAgICAgICAgYnJlYWs7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246CisgICAgY2FzZSBOU0V2
ZW50VHlwZUtleVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQ6CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNOdW1lcmljUGFkS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ051
bWVyaWNQYWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgc3dpdGNoIChbZXZlbnQga2V5
Q29kZV0pIHsKLSAgICAgICAgY2FzZSA3MTogLy8gQ2xlYXIKLSAgICAgICAgY2FzZSA4MTogLy8g
PQotICAgICAgICBjYXNlIDc1OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6IC8vICoKLSAgICAgICAg
Y2FzZSA3ODogLy8gLQotICAgICAgICBjYXNlIDY5OiAvLyArCi0gICAgICAgIGNhc2UgNzY6IC8v
IEVudGVyCi0gICAgICAgIGNhc2UgNjU6IC8vIC4KLSAgICAgICAgY2FzZSA4MjogLy8gMAotICAg
ICAgICBjYXNlIDgzOiAvLyAxCi0gICAgICAgIGNhc2UgODQ6IC8vIDIKLSAgICAgICAgY2FzZSA4
NTogLy8gMwotICAgICAgICBjYXNlIDg2OiAvLyA0Ci0gICAgICAgIGNhc2UgODc6IC8vIDUKLSAg
ICAgICAgY2FzZSA4ODogLy8gNgotICAgICAgICBjYXNlIDg5OiAvLyA3Ci0gICAgICAgIGNhc2Ug
OTE6IC8vIDgKLSAgICAgICAgY2FzZSA5MjogLy8gOQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgIH0KKyAgICBjYXNlIDcxOiAvLyBDbGVhcgorICAgIGNhc2UgODE6IC8vID0KKyAgICBj
YXNlIDc1OiAvLyAvCisgICAgY2FzZSA2NzogLy8gKgorICAgIGNhc2UgNzg6IC8vIC0KKyAgICBj
YXNlIDY5OiAvLyArCisgICAgY2FzZSA3NjogLy8gRW50ZXIKKyAgICBjYXNlIDY1OiAvLyAuCisg
ICAgY2FzZSA4MjogLy8gMAorICAgIGNhc2UgODM6IC8vIDEKKyAgICBjYXNlIDg0OiAvLyAyCisg
ICAgY2FzZSA4NTogLy8gMworICAgIGNhc2UgODY6IC8vIDQKKyAgICBjYXNlIDg3OiAvLyA1Cisg
ICAgY2FzZSA4ODogLy8gNgorICAgIGNhc2UgODk6IC8vIDcKKyAgICBjYXNlIDkxOiAvLyA4Cisg
ICAgY2FzZSA5MjogLy8gOQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgIAogICAg
ICByZXR1cm4gZmFsc2U7CiB9CkBAIC01ODUsMTAgKzU2NCw3IEBAIGludCB3aW5kb3dzS2V5Q29k
ZUZvcktleUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogICAgIC8vIDIuIEtleXMgZm9yIHdoaWNoIHRo
ZXJlIGlzIG5vIGtub3duIE1hYyB2aXJ0dWFsIGtleSBjb2RlcywgbGlrZSBQcmludFNjcmVlbi4K
ICAgICAvLyAzLiBDZXJ0YWluIHB1bmN0dWF0aW9uIGtleXMuIE9uIFdpbmRvd3MsIHRoZXNlIGFy
ZSBhbHNvIHJlbWFwcGVkIGRlcGVuZGluZyBvbiBjdXJyZW50IGtleWJvYXJkIGxheW91dCwKICAg
ICAvLyAgICBidXQgc2VlIGNvbW1lbnQgaW4gd2luZG93c0tleUNvZGVGb3JDaGFyQ29kZSgpLgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICghaXNLZXlwYWRFdmVu
dChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09
IE5TS2V5VXApKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKCFpc0tl
eXBhZEV2ZW50KGV2ZW50KSAmJiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlVcCkpIHsKICAgICAgICAgLy8gQ21kIHN3
aXRjaGVzIFJvbWFuIGxldHRlcnMgZm9yIER2b3Jhay1RV0VSVFkgbGF5b3V0LCBzbyB0cnkgbW9k
aWZpZWQgY2hhcmFjdGVycyBmaXJzdC4KICAgICAgICAgTlNTdHJpbmcqIHMgPSBbZXZlbnQgY2hh
cmFjdGVyc107CiAgICAgICAgIGNvZGUgPSBbcyBsZW5ndGhdID4gMCA/IHdpbmRvd3NLZXlDb2Rl
Rm9yQ2hhckNvZGUoW3MgY2hhcmFjdGVyQXRJbmRleDowXSkgOiAwOwpAQCAtNjQ2LDM1ICs2MjIs
MzIgQEAgZG91YmxlIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2ZW50KQogCiBz
dGF0aWMgaW5saW5lIGJvb2wgaXNLZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNG
bGFnc0NoYW5nZWQpCi0gICAgICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcDsKKyAg
ICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQorICAgICAgICBy
ZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgLy8gRklYTUU6IFRo
aXMgbG9naWMgZmFpbHMgaWYgdGhlIHVzZXIgcHJlc3NlcyBib3RoIFNoaWZ0IGtleXMgYXQgb25j
ZSwgZm9yIGV4YW1wbGU6CiAgICAgLy8gd2UgdHJlYXQgcmVsZWFzaW5nIG9uZSBvZiB0aGVtIGFz
IGtleURvd24uCiAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA1
NDogLy8gUmlnaHQgQ29tbWFuZAotICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAg
ICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFz
aykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU3OiAvLyBDYXBzbG9jawotICAg
ICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FscGhhU2hpZnRLZXlN
YXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQK
LSAgICAgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgIHJldHVybiAoW2V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAK
LSAgICAgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKLSAgICAgICAgY2FzZSA2MTogLy8gUmlnaHQg
QWx0Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJu
YXRlS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU5OiAvLyBMZWZ0
IEN0cmwKLSAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAgICAgcmV0dXJu
IChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSA9PSAwOwotICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgNjM6IC8vIEZ1bmN0aW9uCi0gICAgICAgICAgICByZXR1cm4g
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRnVuY3Rpb25LZXlNYXNrKSA9PSAwOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAg
ICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlm
aWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpOworCisgICAgY2FzZSA1Nzog
Ly8gQ2Fwc2xvY2sKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNF
dmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrKTsKKworICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQK
KyAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpOworCisgICAgY2FzZSA1ODog
Ly8gTGVmdCBBbHQKKyAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgcmV0dXJuICEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbik7CisKKyAg
ICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKKyAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAg
ICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdD
b250cm9sKTsKKworICAgIGNhc2UgNjM6IC8vIEZ1bmN0aW9uCisgICAgICAgIHJldHVybiAhKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbik7CiAgICAg
fQogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTgxOCwxMCArNzkxLDcgQEAgcHVibGljOgogICAg
ICAgICBtX2tleSA9IGtleUZvcktleUV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9jb2RlID0gY29k
ZUZvcktleUV2ZW50KGV2ZW50KTsKICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSB3
aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50IHR5cGVdICE9IE5TRmxh
Z3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBtX2F1dG9SZXBlYXQgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVG
bGFnc0NoYW5nZWQgJiYgW2V2ZW50IGlzQVJlcGVhdF07CiAgICAgICAgIG1faXNLZXlwYWQgPSBp
c0tleXBhZEV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9pc1N5c3RlbUtleSA9IGZhbHNlOyAvLyBT
eXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCA5MWNiZWRkMGNkYTA3
MDY1YjNiZjNmMTcwMTU4ZjFkNjI3NzMxODNmLi42NGQ4NTRhOGU4NGM4NjJhOTBhYmQ0NTc1Y2U2
M2ViZWU0ZDJlZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bGJhclRoZW1lTWFjLm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9U
ZW1wb3JhcnlDaGFuZ2UuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogLy8gRklYTUU6IFRoZXJlIGFyZSByZXBhaW50aW5nIHByb2JsZW1z
IGR1ZSB0byBBcXVhIHNjcm9sbCBiYXIgYnV0dG9ucycgdmlzdWFsIG92ZXJmbG93LgogCkBAIC0x
MzksMTggKzE0MCwxNSBAQCBzdGF0aWMgU2Nyb2xsYmFyQnV0dG9uc1BsYWNlbWVudCBnQnV0dG9u
UGxhY2VtZW50ID0gU2Nyb2xsYmFyQnV0dG9uc0RvdWJsZUVuZDsKIAogc3RhdGljIE5TQ29udHJv
bFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJvbFNpemUoU2Nyb2xsYmFyQ29udHJv
bFNpemUgY29udHJvbFNpemUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CiAgICAgc3dpdGNoIChjb250cm9sU2l6ZSkgewogICAgIGNhc2UgUmVndWxhclNjcm9sbGJhcjoK
LSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICByZXR1cm4gTlND
b250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgY2FzZSBTbWFsbFNjcm9sbGJhcjoKLSAgICAgICAgcmV0
dXJuIE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFs
bDsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNSZWd1
bGFyQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJu
IE5TQ29udHJvbFNpemVSZWd1bGFyOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpkaWRD
cmVhdGVTY3JvbGxlckltcChTY3JvbGxiYXImIHNjcm9sbGJhcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9UaGVtZU1hYy5tbQppbmRleCAwMjQ3MmM5YTY5MDhjNmZkYjAzODI4MWZhYWE4Mzhk
ZmI1MTVlNGQ1Li5iMTAwNDFiNWViMTcyZjQzNzJjNDAwNTViMTY5OTdjMTM5NGMyM2Y4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCkBAIC0zNyw2ICszNyw3IEBACiAj
aW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogc3RhdGljIE5TUmVjdCBmb2N1
c1JpbmdDbGlwUmVjdDsKIHN0YXRpYyBCT09MIHRoZW1lV2luZG93SGFzS2V5QXBwZWFyYW5jZTsK
QEAgLTY3LDExICs2OCw4IEBAIHN0YXRpYyBCT09MIHRoZW1lV2luZG93SGFzS2V5QXBwZWFyYW5j
ZTsKIHsKICAgICAvLyBVc2luZyBkZWZlcjpZRVMgcHJldmVudHMgdXMgZnJvbSB3YXN0aW5nIGFu
eSB3aW5kb3cgc2VydmVyIHJlc291cmNlcyBmb3IgdGhpcyB3aW5kb3csIHNpbmNlIHdlJ3JlIG5v
dCBhY3R1YWxseQogICAgIC8vIGdvaW5nIHRvIGRyYXcgaW50byBpdC4gVGhlIG90aGVyIGFyZ3Vt
ZW50cyBtYXRjaCB3aGF0IHlvdSBnZXQgd2hlbiBjYWxsaW5nIC1bTlNXaW5kb3cgaW5pdF0uCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3RhdGljIFdlYkNvcmVUaGVt
ZVdpbmRvdyAqd2luZG93ID0gW1tXZWJDb3JlVGhlbWVXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6TlNNYWtlUmVjdCgxMDAsIDEwMCwgMTAwLCAxMDApCi0gICAgICAgIHN0eWxlTWFz
azpOU1RpdGxlZFdpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVy
OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIHN0eWxlTWFzazpO
U1dpbmRvd1N0eWxlTWFza1RpdGxlZCBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKICAgICByZXR1cm4gd2luZG93OwogfQogCkBAIC0xNDQsMTUgKzE0MiwxMiBAQCBU
aGVtZSogcGxhdGZvcm1UaGVtZSgpCiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXpl
Rm9yRm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICAgICBpbnQgZm9udFNpemUgPSBmb250LnBpeGVsU2l6ZSgpOwogICAg
IGlmIChmb250U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXpl
OworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZvbnRTaXpl
ID49IDExKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJldHVybiBO
U01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
cmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7
CiB9CiAKIHN0YXRpYyBMZW5ndGhTaXplIHNpemVGcm9tTlNDb250cm9sU2l6ZShOU0NvbnRyb2xT
aXplIG5zQ29udHJvbFNpemUsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZFNpemUsIGZsb2F0IHpv
b21GYWN0b3IsIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzKQpAQCAtMTc1LDE2
ICsxNzAsMTMgQEAgc3RhdGljIExlbmd0aFNpemUgc2l6ZUZyb21Gb250KGNvbnN0IEZvbnRDYXNj
YWRlJiBmb250LCBjb25zdCBMZW5ndGhTaXplJiB6b29tZWQKIAogc3RhdGljIENvbnRyb2xTaXpl
IGNvbnRyb2xTaXplRnJvbVBpeGVsU2l6ZShjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBz
aXplcywgY29uc3QgSW50U2l6ZSYgbWluWm9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAobWluWm9vbWVkU2l6
ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVd
LndpZHRoKCkgKiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5ab29tZWRTaXplLmhlaWdodCgp
ID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLmhlaWdodCgp
ICogem9vbUZhY3RvcikpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSAg
ICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNT
bWFsbENvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUZhY3RvcikgJiYKLSAgICAgICAgbWluWm9v
bWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9s
U2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250
cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVSZWd1bGFyXS53aWR0aCgpICogem9vbUZhY3RvcikK
KyAgICAgICAgJiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNp
emVzW05TQ29udHJvbFNpemVSZWd1bGFyXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQorICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CisgICAgaWYgKG1pblpvb21lZFNpemUud2lk
dGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lkdGgo
KSAqIHpvb21GYWN0b3IpCisgICAgICAgICYmIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0gc3Rh
dGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxdLmhlaWdodCgpICogem9vbUZh
Y3RvcikpCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJuIE5T
Q29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0aWMgdm9pZCBzZXRDb250cm9sU2l6ZShOU0NlbGwq
IGNlbGwsIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzLCBjb25zdCBJbnRTaXpl
JiBtaW5ab29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQpAQCAtNDgwLDEwICs0NzIsNyBAQCBz
dGF0aWMgdm9pZCBzZXRVcEJ1dHRvbkNlbGwoTlNCdXR0b25DZWxsICpjZWxsLCBDb250cm9sUGFy
dCBwYXJ0LCBjb25zdCBDb250cm9sUwogewogICAgIC8vIFNldCB0aGUgY29udHJvbCBzaXplIGJh
c2VkIG9mZiB0aGUgcmVjdGFuZ2xlIHdlJ3JlIHBhaW50aW5nIGludG8uCiAgICAgY29uc3Qgc3Rk
OjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMgPSBidXR0b25TaXplcygpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChwYXJ0ID09IFNxdWFyZUJ1dHRvblBhcnQg
fHwgem9vbWVkU2l6ZS5oZWlnaHQoKSA+IGJ1dHRvblNpemVzKClbTlNSZWd1bGFyQ29udHJvbFNp
emVdLmhlaWdodCgpICogem9vbUZhY3RvcikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIGlmIChwYXJ0ID09IFNxdWFyZUJ1dHRvblBhcnQgfHwgem9vbWVkU2l6ZS5oZWlnaHQo
KSA+IGJ1dHRvblNpemVzKClbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUZh
Y3RvcikgewogICAgICAgICAvLyBVc2UgdGhlIHNxdWFyZSBidXR0b24KICAgICAgICAgaWYgKFtj
ZWxsIGJlemVsU3R5bGVdICE9IE5TU2hhZG93bGVzc1NxdWFyZUJlemVsU3R5bGUpCiAgICAgICAg
ICAgICBbY2VsbCBzZXRCZXplbFN0eWxlOk5TU2hhZG93bGVzc1NxdWFyZUJlemVsU3R5bGVdOwpA
QCAtNTc5LDE1ICs1NjgsMTIgQEAgc3RhdGljIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4m
IHN0ZXBwZXJTaXplcygpCiAvLyBzaG91bGQgYmUgZXF1YWwgdG8gb3IgbGVzcyB0aGFuIHRoZSBj
b3JyZXNwb25kaW5nIHRleHQgZmllbGQgaGVpZ2h0LAogc3RhdGljIE5TQ29udHJvbFNpemUgc3Rl
cHBlckNvbnRyb2xTaXplRm9yRm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCkKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpbnQgZm9udFNpemUgPSBmb250LnBp
eGVsU2l6ZSgpOwogICAgIGlmIChmb250U2l6ZSA+PSAxOCkKLSAgICAgICAgcmV0dXJuIE5TUmVn
dWxhckNvbnRyb2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAg
ICAgaWYgKGZvbnRTaXplID49IDEzKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXpl
OwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlND
b250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHBhaW50U3RlcHBlcihDb250cm9sU3Rh
dGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6
b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KikKQEAgLTYwMCwxNSArNTg2
LDEyIEBAIHN0YXRpYyB2b2lkIHBhaW50U3RlcHBlcihDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QKICAgICBkcmF3SW5mby5zdGF0ZSA9IGNvbnZl
cnRDb250cm9sU3RhdGVzVG9UaGVtZURyYXdTdGF0ZShrVGhlbWVJbmNEZWNCdXR0b24sIHN0YXRl
cyk7CiAgICAgZHJhd0luZm8uYWRvcm5tZW50ID0ga1RoZW1lQWRvcm5tZW50RGVmYXVsdDsKICAg
ICBDb250cm9sU2l6ZSBjb250cm9sU2l6ZSA9IGNvbnRyb2xTaXplRnJvbVBpeGVsU2l6ZShzdGVw
cGVyU2l6ZXMoKSwgSW50U2l6ZSh6b29tZWRSZWN0LnNpemUoKSksIHpvb21GYWN0b3IpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChjb250cm9sU2l6ZSA9PSBO
U1NtYWxsQ29udHJvbFNpemUpCisgICAgaWYgKGNvbnRyb2xTaXplID09IE5TQ29udHJvbFNpemVT
bWFsbCkKICAgICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvblNtYWxsOwot
ICAgIGVsc2UgaWYgKGNvbnRyb2xTaXplID09IE5TTWluaUNvbnRyb2xTaXplKQorICAgIGVsc2Ug
aWYgKGNvbnRyb2xTaXplID09IE5TQ29udHJvbFNpemVNaW5pKQogICAgICAgICBkcmF3SW5mby5r
aW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uTWluaTsKICAgICBlbHNlCiAgICAgICAgIGRyYXdJbmZv
LmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAKICAgICBJbnRSZWN0IHJlY3Qoem9vbWVkUmVjdCk7CiAgICAgR3JhcGhpY3NDb250ZXh0U3Rh
dGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwpAQCAtNzQ5LDEyICs3MzIsOSBAQCBMZW5ndGhT
aXplIFRoZW1lTWFjOjptaW5pbXVtQ29udHJvbFNpemUoQ29udHJvbFBhcnQgcGFydCwgY29uc3Qg
Rm9udENhc2NhZGUmIGZvbgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgICAgICBy
ZXR1cm4gTGVuZ3RoU2l6ZShMZW5ndGgoMCwgRml4ZWQpLCBMZW5ndGgoc3RhdGljX2Nhc3Q8aW50
PigxNSAqIHpvb21GYWN0b3IpLCBGaXhlZCkpOwogICAgICAgICBjYXNlIElubmVyU3BpbkJ1dHRv
blBhcnQ6ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAg
SW50U2l6ZSBiYXNlID0gc3RlcHBlclNpemVzKClbTlNNaW5pQ29udHJvbFNpemVdOworICAgICAg
ICAgICAgSW50U2l6ZSBiYXNlID0gc3RlcHBlclNpemVzKClbTlNDb250cm9sU2l6ZU1pbmldOwog
ICAgICAgICAgICAgcmV0dXJuIExlbmd0aFNpemUoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oYmFz
ZS53aWR0aCgpICogem9vbUZhY3RvciksIEZpeGVkKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KGJhc2UuaGVpZ2h0KCkgKiB6b29tRmFjdG9y
KSwgRml4ZWQpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIFRoZW1lOjptaW5pbXVtQ29udHJvbFNp
emUocGFydCwgZm9udCwgem9vbUZhY3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250
cm9sbGVyLm1tCmluZGV4IGQzYjllZTk4ZGY5NDIwY2NkNzExNmIwNDAzNTYzODNjZmM3NDZmOTAu
LmI0ODYwNmNiNWE3NDRkODcwYjg2MTkzNDM2NjI4OThiYTlmZjRlZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxz
Y3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVmlkZW9FbGVt
ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKQEAgLTczLDEwICs3NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
LSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0KWNvbnRlbnRSZWN0IHN0eWxlTWFzazoo
TlNVSW50ZWdlcilhU3R5bGUgYmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKWJ1ZmZlcmluZ1R5
cGUgZGVmZXI6KEJPT0wpZmxhZwogewogICAgIFVOVVNFRF9QQVJBTShhU3R5bGUpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhD
b250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBi
YWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0
IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpidWZmZXJpbmdU
eXBlIGRlZmVyOmZsYWddOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIApA
QCAtMTIyLDE1ICsxMjAsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIC0gKEJPT0wp
cGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8vIEJsb2NrIGFsbCBjb21tYW5kIGtleSBldmVudHMg
d2hpbGUgdGhlIGZ1bGxzY3JlZW4gd2luZG93IGlzIHVwLgotICAgIGlmIChbZXZlbnQgdHlwZV0g
IT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3du
KQogICAgICAgICByZXR1cm4gTk87CiAgICAgCi0gICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNDb21tYW5kS2V5TWFzaykpCisgICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcmV0dXJuIFlFUzsKIH0KIApAQCAtMTQ1LDEx
ICsxNDAsNyBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwgSFVEV2luZG93RmFkZU91dERl
bGF5ID0gMzsKIAogLSAoaWQpaW5pdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRv
dyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIHdpbmRvd1dpZHRo
LCB3aW5kb3dIZWlnaHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVNYXNrOk5T
Qm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVy
Ok5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU1dpbmRvdyAqd2luZG93
ID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6TlNNYWtlUmVjdCgwLCAwLCB3aW5kb3dXaWR0aCwgd2luZG93SGVpZ2h0KSBzdHlsZU1hc2s6
TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJl
ZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFdpbmRvdzp3aW5kb3ddOwog
ICAgIFt3aW5kb3cgc2V0RGVsZWdhdGU6c2VsZl07CiAgICAgW3dpbmRvdyByZWxlYXNlXTsKQEAg
LTE4OCwyMCArMTc5LDE3IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBIVURXaW5kb3dG
YWRlT3V0RGVsYXkgPSAzOwogICAgICAgICAgICAgY2FzZSAnICc6CiAgICAgICAgICAgICAgICAg
W3NlbGYgdG9nZ2xlUGxheWluZzpuaWxdOwogICAgICAgICAgICAgICAgIHJldHVybjsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgICAgIGNhc2UgTlNVcEFycm93
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TQWx0ZXJuYXRlS2V5TWFzaykKKyAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAgICAgICAgICAgICAgICAg
W3NlbGYgc2V0Vm9sdW1lOltzZWxmIG1heFZvbHVtZV1dOwogICAgICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICAgICAgW3NlbGYgaW5jcmVtZW50Vm9sdW1lXTsKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICBjYXNlIE5TRG93bkFycm93RnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5
TWFzaykKKyAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2V0Vm9sdW1l
OjBdOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgZGVj
cmVtZW50Vm9sdW1lXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMzc4LDE3ICszNjYsMTEgQEAgc3RhdGljIE5TVGV4dEZpZWxkICpjcmVhdGVUaW1lVGV4
dEZpZWxkKE5TUmVjdCBmcmFtZSkKICAgICBbY29udGVudFZpZXcgYWRkU3VidmlldzpfdGltZWxp
bmVdOwogCiAgICAgX2VsYXBzZWRUaW1lVGV4dCA9IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtl
UmVjdCh0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1hcmdpbiwgdGltZWxpbmVCb3R0b21NYXJnaW4s
IHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtfZWxhcHNlZFRpbWVUZXh0IHNldEFsaWdubWVu
dDpOU0xlZnRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBbX2VsYXBzZWRUaW1lVGV4dCBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50TGVmdF07CiAg
ICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X2VsYXBzZWRUaW1lVGV4dF07CiAKICAgICBfcmVt
YWluaW5nVGltZVRleHQgPSBjcmVhdGVUaW1lVGV4dEZpZWxkKE5TTWFrZVJlY3Qod2luZG93V2lk
dGggLSB0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1hcmdpbiAtIHRpbWVUZXh0RmllbGRXaWR0aCwg
dGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhl
aWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtfcmVtYWlu
aW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TUmlnaHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX3JlbWFpbmluZ1RpbWVUZXh0IHNldEFsaWdubWVu
dDpOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X3Jl
bWFpbmluZ1RpbWVUZXh0XTsKIAogICAgIFt3aW5kb3cgcmVjYWxjdWxhdGVLZXlWaWV3TG9vcF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0
aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5t
bQppbmRleCA0NTk4YTAzZWQyZmEzMjE1MGU2NGFmOWNiYjY0NTk5NDY5ZmRkZjc3Li43ZGU1ZWI1
MzdjN2ZhMDIzNTIyYmNlZjY4MzMyM2IyNTg0ZWNjNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgPHd0Zi9Bc3NlcnRp
b25zLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkBAIC0zOCwxMCArMzksNyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBzbG93TW90aW9uRmFj
dG9yID0gMTA7CiAKIHN0YXRpYyBOU1RpbWVJbnRlcnZhbCBXZWJXaW5kb3dBbmltYXRpb25EdXJh
dGlvbkZyb21EdXJhdGlvbihOU1RpbWVJbnRlcnZhbCBkdXJhdGlvbikKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50
XSBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKSA/IGR1cmF0aW9uICogc2xvd01vdGlv
bkZhY3RvciA6IGR1cmF0aW9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJl
dHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ1NoaWZ0KSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwog
fQogCiBzdGF0aWMgTlNSZWN0IHNjYWxlZFJlY3QoTlNSZWN0IF9pbml0aWFsRnJhbWUsIE5TUmVj
dCBfZmluYWxGcmFtZSwgQ0dGbG9hdCBmYWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW0KaW5kZXggM2VkZGMwM2U0ZDhlOWY2MzUxN2M1MjcxZjIwMWI1Njc4
MjJiOTAyOC4uODU3NjQyMzUyM2E5MGM4YTUyNTE4MDU0YWQ5MmI1MTQ0ZjQxOTI3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtODEsNiArODEsNyBA
QAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNp
bXBvcnQgPG1hdGguaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oPgogCiAjaWYgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCiAjaW1wb3J0ICJSZW5kZXJN
ZXRlci5oIgpAQCAtMzc5LDIyICszODAsMTMgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6dXBkYXRl
Q2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm8KICAg
ICAgICAgICAgIGZvbnROYW1lID0gQXRvbWljU3RyaW5nKCItYXBwbGUtc3RhdHVzLWJhciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNaW5pQ29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRP
ZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TTWluaUNvbnRyb2xT
aXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU0NvbnRyb2xTaXplTWluaV1dOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltO
U0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250
IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5T
Q29udHJvbFNpemVTbWFsbF1dOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NT
VmFsdWVXZWJraXRDb250cm9sOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3Rl
bUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNSZWd1bGFyQ29udHJvbFNpemVdXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZv
bnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNp
emVSZWd1bGFyXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250
U2l6ZV1dOwpAQCAtNzc3LDMwICs3NjksMjQgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6Y29udHJv
bFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2JqZWN0JiBvKSBjb25zdAogTlNDb250cm9sU2l6
ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JGb250KGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSkgY29uc3QKIHsKICAgICBpbnQgZm9udFNpemUgPSBzdHlsZS5mb250U2l6ZSgpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGlmIChmb250U2l6ZSA+PSAxNikK
LSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICByZXR1cm4gTlND
b250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZvbnRTaXplID49IDExKQotICAgICAgICByZXR1
cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVT
bWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIE5TQ29udHJvbFNpemUg
UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbChOU0NlbGwqLCBjb25zdCBJbnRTaXpl
KiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSwgZmxvYXQgem9vbUxldmVsKSBjb25zdAog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChtaW5TaXplLndp
ZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lk
dGgoKSAqIHpvb21MZXZlbCkKLSAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZl
bCkpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6
ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJd
LndpZHRoKCkgKiB6b29tTGV2ZWwpCisgICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3Rh
dGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29t
TGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAKLSAgICBpZiAo
bWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xT
aXplXS53aWR0aCgpICogem9vbUxldmVsKQotICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49
IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpv
b21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgaWYgKG1p
blNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFs
bF0ud2lkdGgoKSAqIHpvb21MZXZlbCkKKyAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29t
TGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOwogCi0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Q29u
dHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBJbnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6
ZSYgbWluU2l6ZSwgZmxvYXQgem9vbUxldmVsKQpAQCAtODU3LDE1ICs4NDMsMTIgQEAgdm9pZCBS
ZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250cm9sU2l6ZShTdHlsZVJlc29sdmVyJiwgUmVu
ZGVyU3R5bGUmIHN0eWxlLAogCiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9s
U2l6ZUZvclN5c3RlbUZvbnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IHN0eWxl
LmZvbnRTaXplKCk7Ci0gICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVG
b3JDb250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1Jl
Z3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250
U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBO
U1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3Rl
bUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVJlZ3VsYXJdKQorICAgICAgICBy
ZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CisgICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQg
c3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplU21hbGxdKQorICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWlu
aTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVy
T2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiBy
KQpAQCAtMTE0NywxMCArMTEzMCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50UHJvZ3Jl
c3NCYXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgY29u
c3QgYXV0byYgcmVuZGVyUHJvZ3Jlc3MgPSBkb3duY2FzdDxSZW5kZXJQcm9ncmVzcz4ocmVuZGVy
T2JqZWN0KTsKICAgICBISVRoZW1lVHJhY2tEcmF3SW5mbyB0cmFja0luZm87CiAgICAgdHJhY2tJ
bmZvLnZlcnNpb24gPSAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IGlmIChjb250cm9sU2l6ZSA9PSBOU1JlZ3VsYXJDb250cm9sU2l6ZSkKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZVJlZ3Vs
YXIpCiAgICAgICAgIHRyYWNrSW5mby5raW5kID0gcmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8
IDAgPyBrVGhlbWVMYXJnZUluZGV0ZXJtaW5hdGVCYXIgOiBrVGhlbWVMYXJnZVByb2dyZXNzQmFy
OwogICAgIGVsc2UKICAgICAgICAgdHJhY2tJbmZvLmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3Np
dGlvbigpIDwgMCA/IGtUaGVtZU1lZGl1bUluZGV0ZXJtaW5hdGVCYXIgOiBrVGhlbWVNZWRpdW1Q
cm9ncmVzc0JhcjsKQEAgLTE0MzgsMTUgKzE0MTgsMTIgQEAgUG9wdXBNZW51U3R5bGU6OlBvcHVw
TWVudVNpemUgUmVuZGVyVGhlbWVNYWM6OnBvcHVwTWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUm
IHMKICAgICBOU1BvcFVwQnV0dG9uQ2VsbCogcG9wdXBCdXR0b24gPSB0aGlzLT5wb3B1cEJ1dHRv
bigpOwogICAgIE5TQ29udHJvbFNpemUgc2l6ZSA9IGNvbnRyb2xTaXplRm9yQ2VsbChwb3B1cEJ1
dHRvbiwgcG9wdXBCdXR0b25TaXplcygpLCByZWN0LnNpemUoKSwgc3R5bGUuZWZmZWN0aXZlWm9v
bSgpKTsKICAgICBzd2l0Y2ggKHNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICBjYXNlIE5TUmVndWxhckNvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9s
U2l6ZVJlZ3VsYXI6CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6
ZU5vcm1hbDsKLSAgICBjYXNlIE5TU21hbGxDb250cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJv
bFNpemVTbWFsbDoKICAgICAgICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXpl
U21hbGw7Ci0gICAgY2FzZSBOU01pbmlDb250cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNp
emVNaW5pOgogICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5p
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsKICAgICB9CkBAIC0yMDU1
LDEyICsyMDMyLDkgQEAgTlNTbGlkZXJDZWxsKiBSZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJI
b3Jpem9udGFsKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc2xpZGVyVGh1bWJIb3Jpem9udGFsKSB7
CiAgICAgICAgIG1fc2xpZGVyVGh1bWJIb3Jpem9udGFsID0gYWRvcHROUyhbW05TU2xpZGVyQ2Vs
bCBhbGxvY10gaW5pdF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVh
clNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRDb250
cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdOworICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6
b250YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1NsaWRlclR5cGVMaW5lYXJdOworICAgICAgICBb
bV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6
ZVNtYWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldEZvY3Vz
UmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJpb3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogICAgIH0KIAogICAgIHJldHVybiBtX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQo
KTsKQEAgLTIwNzAsMTEgKzIwNDQsOCBAQCBOU1NsaWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpz
bGlkZXJUaHVtYlZlcnRpY2FsKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc2xpZGVyVGh1bWJWZXJ0
aWNhbCkgewogICAgICAgICBtX3NsaWRlclRodW1iVmVydGljYWwgPSBhZG9wdE5TKFtbTlNTbGlk
ZXJDZWxsIGFsbG9jXSBpbml0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgIFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xp
bmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29u
dHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5T
U2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkg
c2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1
bWJWZXJ0aWNhbC5nZXQoKSBzZXRGb2N1c1JpbmdUeXBlOk5TRm9jdXNSaW5nVHlwZUV4dGVyaW9y
XTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25X
aW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW0KaW5kZXggZjJhMzU5NzNhNzFlMDY4MjYwYTkxYzk2N2QyOTA1MGQyZWRlNzYwZC4u
YTY5ZjZmMWZhNTBhOWE0YWRkODYzZjQ3OTViYzFkNzEyZjBiYTAwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KQEAgLTc2LDYgKzc2LDcg
QEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2ltcG9ydCAiV2ViS2l0TG9n
Z2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RFeHRyYXMuaCIKQEAgLTE3MywxMyArMTc0LDE0
IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxl
ckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAKICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5k
b3cncyBzdHlsZSBtYXNrLgogICAgIHN0eWxlTWFzayA9IFdLQ2FyYm9uV2luZG93TWFzaygpOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICh3aW5kb3dBdHRyaWJ1
dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRlKSBzdHlsZU1hc2sgfD0gTlNDbG9zYWJsZVdp
bmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0
cmlidXRlKSBzdHlsZU1hc2sgfD0gTlNSZXNpemFibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5k
b3dGZWF0dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBzZSkgc3R5bGVNYXNrIHw9IE5TTWluaWF0dXJp
emFibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dIYXNUaXRs
ZUJhcikgc3R5bGVNYXNrIHw9IE5TVGl0bGVkV2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0
dHJpYnV0ZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7
CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKQor
ICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGU7CisgICAgaWYg
KHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0NhbkNvbGxhcHNlKQorICAgICAgICBzdHlsZU1hc2sg
fD0gTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVy
ZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpCisgICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0
eWxlTWFza1RpdGxlZDsKIAogICAgIG9zU3RhdHVzID0gR2V0V2luZG93TW9kYWxpdHkoX3dpbmRv
d1JlZiwgJndpbmRvd01vZGFsaXR5LCBOVUxMKTsKICAgICBpZiAob3NTdGF0dXMgIT0gbm9FcnIp
IHsKQEAgLTM5MywxOCArMzk1LDEyIEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hh
bmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgLy8g
SWdub3JlIHNvbWUgdW5rbm93biBldmVudCB0aGF0IGdldHMgc2VudCB3aGVuIE5TVGV4dFZpZXdz
IGluIHByaW50aW5nIGFjY2Vzc29yeSB2aWV3cyBhcmUgZm9jdXNlZC4gIE0uUC4gTm90aWNlIC0g
MTIvNy8wMAogICAgIEJPT0wgaWdub3JlRXZlbnQgPSBOTzsKICAgICBOU0V2ZW50VHlwZSBldmVu
dFR5cGUgPSBbaW5FdmVudCB0eXBlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBpZiAoZXZlbnRUeXBlPT1OU1N5c3RlbURlZmluZWQpIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlU3lzdGVtRGVm
aW5lZCkgewogICAgICAgICBzaG9ydCBldmVudFN1YnR5cGUgPSBbaW5FdmVudCBzdWJ0eXBlXTsK
LSAgICAgICAgaWYgKGV2ZW50U3VidHlwZT09NykgeworICAgICAgICBpZiAoZXZlbnRTdWJ0eXBl
ID09IDcpIHsKICAgICAgICAgICAgIGlnbm9yZUV2ZW50ID0gWUVTOwogICAgICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgfSBlbHNlIGlmIChldmVudFR5cGUg
PT0gTlNLZXlEb3duKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgfSBlbHNl
IGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAgICAgICAgIC8vIEhhbmRs
ZSBjb21tYW5kLXNwYWNlIGFzIFtOU0FwcCBzZW5kRXZlbnQ6XSBkb2VzLgogICAgICAgICBpZiAo
W05TSW5wdXRDb250ZXh0IHByb2Nlc3NJbnB1dEtleUJpbmRpbmdzOmluRXZlbnRdKSB7CiAgICAg
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCmluZGV4IGVhZDU5MzY5NmQ0Yjlh
OTc2NmEzY2JjZTAzZWFkNmVhZmQwNzk1NzkuLjZkMDZjNzAxMGM1MmI4MWQ1MzE1MWUxODUyZDQx
NDQxYjkxMjlkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCkBAIC00MSw2ICs0MSw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0lkZW50aWZpZXJSZXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0
Q29udHJvbGxlci5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3
dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogZXh0ZXJuICJDIiB7
CiAjaW1wb3J0ICJXZWJLaXRQbHVnaW5Ib3N0LmgiCkBAIC0yMzAsMTAgKzIzMSw3IEBAIHZvaWQg
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6OmJlZ2luTW9kYWwoKQogICAgIEFTU0VSVCghbV9wbGFj
ZWhvbGRlcldpbmRvdyk7CiAgICAgQVNTRVJUKCFtX2FjdGl2YXRpb25PYnNlcnZlcik7CiAgICAg
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgbV9wbGFjZWhvbGRlcldp
bmRvdyA9IGFkb3B0TlMoW1tXZWJQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TQm9yZGVybGVz
c1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBh
ZG9wdE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0Jv
cmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogCiAg
ICAgbV9hY3RpdmF0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9uV2lsbEJlY29tZUFjdGl2ZU5v
dGlmaWNhdGlvbiBvYmplY3Q6TlNBcHAgcXVldWU6bmlsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmdC
bG9jazpeKE5TTm90aWZpY2F0aW9uICopeyBhcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpOyB9
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCAxYjRkM2E5NmZhOWFlN2ExNzdl
NDUxMmY0NTY0MWRhYTI0MzdkNGM5Li5hYTBkZjU0MjRhNDI2ZmQzYWQ3ODM0MzQ2Y2Q3YjJhZDRj
Mjk1NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC02Niw2ICs2Niw3IEBA
CiAjaW1wb3J0IDx1dGlsaXR5PgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1w
b3J0IDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtp
dENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogZXh0ZXJuICJDIiB7CkBAIC00NjUsMTUgKzQ2NiwxMiBAQCB2b2lkIE5ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21tYW5kTW9kaWZpZXIoaW50
IGtleUNvZAogewogICAgIE5TRGF0YSAqY2hhcmFjdGVyc0RhdGEgPSBbTlNEYXRhIGRhdGFXaXRo
Qnl0ZXM6JmNoYXJhY3RlciBsZW5ndGg6MV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKICAgICBfV0tQSFBsdWdpbkluc3RhbmNlS2V5Ym9hcmRFdmVudChtX3BsdWdpbkhv
c3RQcm94eS0+cG9ydCgpLCBtX3BsdWdpbklELAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXSwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBDb2NvYUV2ZW50S2V5RG93biwgTlND
b21tYW5kS2V5TWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOUENv
Y29hRXZlbnRLZXlEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PGNoYXIqPihyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPihbY2hhcmFjdGVyc0RhdGEgYnl0ZXNdKSksIFtjaGFyYWN0ZXJzRGF0
YSBsZW5ndGhdLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdF9j
YXN0PGNoYXIqPihyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihbY2hhcmFjdGVyc0RhdGEg
Ynl0ZXNdKSksIFtjaGFyYWN0ZXJzRGF0YSBsZW5ndGhdLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmYWxzZSwga2V5Q29kZSwgY2hhcmFjdGVyKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKIH0KIAogdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6
OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5t
bQppbmRleCAzNzY2NzJiNjg2NzM3Yzc3M2VkYzZkZjY4NGIyODc5ODI5NjRmNTQxLi5kZmM4Y2Nh
NzI4MjQ4YTg5NmE4MTNlNmY3OTI0MmMwOTQyYjI1Yzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tCkBAIC01Miw2ICs1Miw3IEBACiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgog
I2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTQ0
MywxMCArNDQ0LDcgQEAgZXh0ZXJuICJDIiB7CiB7CiAgICAgaWYgKF9jYWNoZWRTbmFwc2hvdCkg
ewogICAgICAgICBOU1JlY3Qgc291cmNlUmVjdCA9IHsgTlNaZXJvUG9pbnQsIFtfY2FjaGVkU25h
cHNob3QuZ2V0KCkgc2l6ZV0gfTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0OltzZWxmIGJvdW5kc10g
ZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0
aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBbX2NhY2hlZFNu
YXBzaG90LmdldCgpIGRyYXdJblJlY3Q6W3NlbGYgYm91bmRzXSBmcm9tUmVjdDpzb3VyY2VSZWN0
IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxXTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCmlu
ZGV4IGExZDE1OWFmOTRlMTQ4OWE0OGIwOTkyMTA4ZDAzZjM5ODA1ZjI5OTYuLjljNTIwMWZlNjJk
MjYzYmQzNWViNWU3MWQ0YTM3MDFhYWE5MTdlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29j
b2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5o
IgogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3LmgiCiAjaW1wb3J0IDx3dGYvVmVjdG9y
Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
IAogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6V2ViTmV0c2NhcGVQbHVnaW5F
dmVudEhhbmRsZXJDb2NvYShXZWJOZXRzY2FwZVBsdWdpblZpZXcqIHBsdWdpblZpZXcpCiAgICAg
OiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlcihwbHVnaW5WaWV3KQpAQCAtMTYxLDEwICsx
NjIsNyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OnN5bnRoZXRp
Y0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludAogICAgIAogICAgIE5QQ29jb2FFdmVudCBl
dmVudDsKICAgICBpbml0aWFsaXplRXZlbnQoJmV2ZW50LCBOUENvY29hRXZlbnRLZXlEb3duKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBldmVudC5kYXRhLmtleS5t
b2RpZmllckZsYWdzID0gTlNDb21tYW5kS2V5TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBldmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdzID0gTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbW1hbmQ7CiAgICAgZXZlbnQuZGF0YS5rZXkua2V5Q29kZSA9IGtleUNvZGU7CiAgICAg
ZXZlbnQuZGF0YS5rZXkuaXNBUmVwZWF0ID0gZmFsc2U7CiAgICAgZXZlbnQuZGF0YS5rZXkuY2hh
cmFjdGVycyA9IChOUE5TU3RyaW5nICopY2hhcmFjdGVycy5nZXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQppbmRleCBjNDY2NzBiNGQ3
OWQ4Y2U4NGZiZDQxMTU4ZmI3MzA4MGFlODA0NzliLi43OWYyOGZiODJjYjdmZDkzOWNkMzMyMzRl
YzQ3ZWMwMzk2NmVlNTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9Qb3B1cE1lbnVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvUG9wdXBNZW51TWFjLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Bv
cHVwTWVudUNsaWVudC5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1w
b3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRD
b21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkBAIC05MCwxNyArOTEsMTEgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkKICAgICAg
ICAgfQogCiAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdy
YXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5
bGVdIG11dGFibGVDb3B5XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0g
TFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmlnaHRUZXh0QWxpZ25tZW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdu
bWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1RleHRBbGlnbm1lbnRMZWZ0IDogTlNU
ZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0Rp
cmVjdGlvbiA9IHN0eWxlLnRleHREaXJlY3Rpb24oKSA9PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rp
b25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICBb
cGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246d3JpdGluZ0RpcmVjdGlvbl07
CiAgICAgICAgIGlmIChzdHlsZS5oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKSkgewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVt
YmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGlu
aXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92
ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBSZXRh
aW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJl
ciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1dyaXRpbmdEaXJl
Y3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IHdyaXRpbmdE
aXJlY3Rpb25BcnJheSA9IGFkb3B0TlMoW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6
d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxdKTsKICAgICAgICAgICAgIFthdHRyaWJ1
dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJyYXkuZ2V0KCkgZm9yS2V5Ok5TV3JpdGlu
Z0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAgICB9CkBAIC0yMDYsMTggKzIwMSwxNSBA
QCB2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYs
IGludCBpbmRleCkKIAogICAgIE5TQ29udHJvbFNpemUgY29udHJvbFNpemU7CiAgICAgc3dpdGNo
IChtX2NsaWVudC0+bWVudVN0eWxlKCkubWVudVNpemUoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVO
b3JtYWw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAg
ICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDoKLSAgICAgICAgY29u
dHJvbFNpemUgPSBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlND
b250cm9sU2l6ZVNtYWxsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvcHVwTWVudVN0eWxl
OjpQb3B1cE1lbnVTaXplTWluaToKLSAgICAgICAgY29udHJvbFNpemUgPSBOU01pbmlDb250cm9s
U2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplTWluaTsKICAgICAgICAg
YnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAgICAgV0tQb3B1
cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgp
LCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xTaXplLCAhbV9jbGllbnQtPm1lbnVTdHls
ZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQppbmRleCA5MTRkOGUw
NjNlOGViMGZjYTllYWU5ZDdiYmJjODFmNjFiN2I4OGQ2Li5hMzliOTNlNzdlMjZhNjQzM2I5Mjg4
OGYxOTMzYTA5OTU1MTVjNjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQpAQCAtNjAsNiArNjAsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdl
YkNvcmUvVVJMLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NUHJpdmF0ZS5oPgorI2ltcG9y
dCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yNjksMTAgKzI3MCw3IEBAIHZvaWQgV2ViQ29udGV4dE1l
bnVDbGllbnQ6OnNob3dDb250ZXh0TWVudSgpCiAKICAgICBOU1ZpZXcqIHZpZXcgPSBmcmFtZVZp
ZXctPmRvY3VtZW50VmlldygpOwogICAgIEludFBvaW50IHBvaW50ID0gZnJhbWVWaWV3LT5jb250
ZW50c1RvV2luZG93KHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmhpdFRlc3RSZXN1bHQo
KS5yb3VuZGVkUG9pbnRJbklubmVyTm9kZUZyYW1lKCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TUmlnaHRNb3VzZURvd24gbG9jYXRpb246cG9pbnQgbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDowIHdpbmRvd051bWJlcjpbW3ZpZXcgd2luZG93XSB3aW5kb3dOdW1iZXJdIGNvbnRl
eHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50IG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10gd2luZG93
TnVtYmVyXSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07
CiAKICAgICAvLyBTaG93IHRoZSBjb250ZXh0dWFsIG1lbnUgZm9yIHRoaXMgZXZlbnQuCiAgICAg
Ym9vbCBpc1NlcnZpY2VzTWVudTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggMTE0NzZhMDMyNzZlZGQ5
NGU3NTU1MTM5MzBhYjQ2MTliY2VkZjk1My4uMTYwYjJkZjU3NDdmNTNhZWRiMzU5Njg4M2I0MmMw
ZmM5ZjQzYzIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTEzMCw2ICsxMzAsNyBAQAogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0
IDx3dGYvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFVTRShQ
TFVHSU5fSE9TVF9QUk9DRVNTKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAgLTE1
NjEsMTcgKzE1NjIsMTQgQEAgTlNEaWN0aW9uYXJ5ICpXZWJGcmFtZUxvYWRlckNsaWVudDo6YWN0
aW9uRGljdGlvbmFyeShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3QKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgIGNvbnN0IFVJRXZlbnRXaXRoS2V5U3RhdGUqIGtleVN0YXRlRXZlbnQgPSBmaW5k
RXZlbnRXaXRoS2V5U3RhdGUoY29uc3RfY2FzdDxFdmVudCo+KGV2ZW50KSk7CiAgICAgaWYgKGtl
eVN0YXRlRXZlbnQgJiYga2V5U3RhdGVFdmVudC0+aXNUcnVzdGVkKCkpIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPmN0cmxL
ZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb250cm9sS2V5TWFzazsKKyAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7CiAg
ICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8
PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+
c2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7
CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsK
ICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFLZXkoKSkKLSAgICAgICAgICAgIG1vZGlm
aWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1h
bmQ7CiAgICAgfQogI2Vsc2UKICAgICAvLyBObyBtb2RpZmllciBmbGFncyBvbiBpT1MgcmlnaHQg
bm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQubW0KaW5kZXggOTA3ODdkNjIwYjM4MWU1MzhjN2IxYWRkYzc2ZjJkMjljNTkz
MjIwOS4uNzZiMmNkMmNiZjEwYjIwYTM5OTNjMmYzZjdiNzE5Y2JlN2E1ODE2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5tbQpAQCAtNTMsNiArNTMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgog
I2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTUV4dGVuc2lvbnMuaD4KICNpbXBvcnQgPFdlYktpdFN5
c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4KIAogU09GVF9MSU5LX1NU
QUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVGcmFtZXdvcmtzLCBBKQpAQCAt
MTkxLDEwICsxOTIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjphdHRhY2hB
dmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wgYXZhaWxhYmxlKQogCiBib29sIFdlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjpjYW5BdHRhY2goKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250cm9sbGVyIHdpbmRvd10gc3R5
bGVNYXNrXSAmIE5TRnVsbFNjcmVlbldpbmRvd01hc2spCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgaWYgKFtbbV9mcm9udGVuZFdpbmRvd0NvbnRyb2xsZXIgd2luZG93XSBzdHls
ZU1hc2tdICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2NyZWVuKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICByZXR1cm4gY2FuQXR0YWNoV2luZG93KCk7CkBAIC00NjUsMTAgKzQ2Myw3IEBA
IHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmFwcGVuZChjb25zdCBTdHJpbmcmIHN1
Z2dlc3RlZFVSTCwgY29uc3QgU3RyaW5nCiAgICAgaWYgKHdpbmRvdykKICAgICAgICAgcmV0dXJu
IHdpbmRvdzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TVUlu
dGVnZXIgc3R5bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNrIHwgTlNDbG9zYWJsZVdpbmRvd01h
c2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzayB8
IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgTlNVSW50ZWdlciBzdHlsZU1hc2sgPSBOU1dpbmRvd1N0eWxlTWFza1RpdGxl
ZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dpbmRvd1N0eWxlTWFza01pbmlhdHVy
aXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUgfCBOU1dpbmRvd1N0eWxlTWFza0Z1
bGxTaXplQ29udGVudFZpZXc7CiAgICAgd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdp
dGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIGluaXRpYWxXaW5kb3dXaWR0aCwgaW5pdGlh
bFdpbmRvd0hlaWdodCkgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0RGVsZWdhdGU6c2VsZl07CiAgICAg
W3dpbmRvdyBzZXRNaW5TaXplOk5TTWFrZVNpemUobWluaW11bVdpbmRvd1dpZHRoLCBtaW5pbXVt
V2luZG93SGVpZ2h0KV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0
b3IvV2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9X
ZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4IDAyYTc1NmY3Njc3MzE1YzYyMmRkODFkOTlhMjlmYWMz
ZmI1YmY5ZTIuLmZjNTNkMGMxYjBhZTIwZjg4YWExNWI2M2M0MDdmOTA1YWY0MGQ4MjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1t
CkBAIC0zMiw2ICszMiw4IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvSW5zcGVjdG9yQ29udHJvbGxl
ci5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgorCiAKICNpZiBQTEFURk9STShJT1MpCiAjaW1w
b3J0ICJXZWJGcmFtZVByaXZhdGUuaCIKQEAgLTkxLDEwICs5Myw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogICAgIF9pbnNwZWN0b3JDb250cm9sbGVyID0gaW5zcGVjdG9yQ29udHJvbGxl
cjsKIAogI2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgaW50IHN0eWxlTWFzayA9IE5TQm9yZGVybGVzc1dpbmRvd01hc2s7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaW50IHN0eWxlTWFzayA9IE5TV2luZG93U3R5bGVN
YXNrQm9yZGVybGVzczsKICAgICBOU1JlY3QgY29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVu
dFJlY3RGb3JGcmFtZVJlY3Q6W3NlbGYgX2NvbXB1dGVIaWdobGlnaHRXaW5kb3dGcmFtZV0gc3R5
bGVNYXNrOnN0eWxlTWFza107CiAgICAgX2hpZ2hsaWdodFdpbmRvdyA9IFtbTlNXaW5kb3cgYWxs
b2NdIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOnN0eWxlTWFzayBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFtfaGlnaGxpZ2h0
V2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBjbGVhckNvbG9yXV07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCmluZGV4IDVlYzE5Nzg1ZGE3Mjk3YjFh
MjQ0YzU3NjMyMDcwYzRiZGU5NDZiMDUuLjM1ZTAxMWJhZjQwYmQ3MDg2ZWZkZjI4ZjA0YzNhYjE3
NmI5ODc0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCkBA
IC02Niw2ICs2Niw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVWaWV3Lmg+CiAjaW1wb3J0
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lm
IFBMQVRGT1JNKElPUykKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKQEAgLTkxNSw5ICs5
MTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGlj
dGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgIEJPT0wgY2FsbFN1cGVyID0gWUVT
OwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKICAgICBCT09MIG1h
aW50YWluc0JhY2tGb3J3YXJkTGlzdCA9IGNvcmVGcmFtZSAmJiBzdGF0aWNfY2FzdDxCYWNrRm9y
d2FyZExpc3QqPihjb3JlRnJhbWUtPnBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPmVu
YWJsZWQoKSA/IFlFUyA6IE5POwotICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorCiAgICAgY291bnQgPSBbY2hhcmFjdGVycyBsZW5ndGhdOwogICAgIGZvciAoaW5kZXgg
PSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4KSB7CiAgICAgICAgIHN3aXRjaCAoW2NoYXJhY3Rl
cnMgY2hhcmFjdGVyQXRJbmRleDppbmRleF0pIHsKQEAgLTkyOCw3ICs5MjcsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlw
ZXMsIENsYXNzIG9iakNDbAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAvLyBU
aGlzIG9kZCBiZWhhdmlvciBtYXRjaGVzIHNvbWUgZXhpc3RpbmcgYnJvd3NlcnMsCiAgICAgICAg
ICAgICAgICAgLy8gaW5jbHVkaW5nIFdpbmRvd3MgSUUKLSAgICAgICAgICAgICAgICBpZiAobW9k
aWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpIHsKICAgICAgICAgICAgICAgICAg
ICAgW3NlbGYgX2dvRm9yd2FyZF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgW3NlbGYgX2dvQmFja107CkBAIC05NDMsNyArOTQyLDcgQEAgc3RhdGljIGlu
bGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVz
LCBDbGFzcyBvYmpDQ2wKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU1NoaWZ0S2V5TWFzaykgeworICAgICAgICAgICAgICAg
IGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSB7CiAgICAgICAg
ICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VVcDpuaWxdOwogICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VEb3duOm5pbF07CkBA
IC05ODQsNyArOTgzLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5T
TXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNVcEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAg
ICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlz
IGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlmICht
b2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAg
ICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hp
ZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAg
Y2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICB9CkBAIC05OTgsOSArOTk3LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJv
bUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkg
ewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQ6
bmlsXTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVy
bmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxm
IHNjcm9sbFBhZ2VVcDpuaWxdOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgIFtzZWxmIHNjcm9sbExpbmVVcDpuaWxdOwpAQCAtMTAwOSw3ICsxMDA4LDcgQEAg
c3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkg
KmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBk
b24ndCBoYW5kbGUgc2hpZnRlZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1
cGVyIGhhdmUgYSBjaGFuY2UuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAo
TlNTaGlmdEtleU1hc2sgfCBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlm
IChtb2RpZmllckZsYWdzICYgKE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2Rp
ZmllckZsYWdDb250cm9sKSkgewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTEwMjMs
OSArMTAyMiw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFi
bGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlmICht
b2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmICht
b2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAg
ICAgICAgICAgW3NlbGYgc2Nyb2xsVG9FbmRPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxh
Z09wdGlvbikgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlRG93bjpuaWxd
OwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNj
cm9sbExpbmVEb3duOm5pbF07CkBAIC0xMDM0LDEyICsxMDMzLDEyIEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xh
c3Mgb2JqQ0NsCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TTGVm
dEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNo
aWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hh
bmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNr
IHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gQ2hl
Y2sgYmFjay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICghbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAg
LTEwNTIsNyArMTA1MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhO
U011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAg
ICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
bikgewogICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX3BhZ2VIb3Jpem9udGFsbHk6WUVT
XTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IFtzZWxmIF9zY3JvbGxMaW5lSG9yaXpvbnRhbGx5OllFU107CkBAIC0xMDYyLDEyICsxMDYxLDEy
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9u
YXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8v
IFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBs
ZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9
IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIC8vIENoZWNrIGJhY2svZm9yd2FyZCByZWxhdGVkIGtleXMuCi0gICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkg
ewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1haW50YWluc0JhY2tGb3J3YXJkTGlzdCkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CkBAIC0xMDgwLDcgKzEwNzksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
YWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9i
akNDbAogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRl
S2V5TWFzaykgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZl
bnRNb2RpZmllckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9w
YWdlSG9yaXpvbnRhbGx5Ok5PXTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIFtzZWxmIF9zY3JvbGxMaW5lSG9yaXpvbnRhbGx5Ok5PXTsKQEAg
LTEwOTAsNyArMTA4OSw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhO
U011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAgICAgaWYgKGNhbGxTdXBlcikgewogICAgICAgICBbc3VwZXIga2V5RG93bjpldmVudF07CiAg
ICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVs
bFNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxT
Y3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDlmZDk1NjYxN2YwN2M2Y2Y2ZjQ4NTdjYzllMjIxNDBi
MjE4OGIyZTQuLmY1NDM0MWZkYmI0ZTRkM2NlZDlkZWQxNjNmMTg0MzJiMDQ2ZDliMDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxl
ci5tbQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJXaW5kb3dBbmltYXRp
b24uaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC04NiwxMSArODcsOCBAQCBz
dGF0aWMgTlNSZWN0IGNvbnZlcnRSZWN0VG9TY3JlZW4oTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0
IHJlY3QpCiAjcHJhZ21hIG1hcmsgSW5pdGlhbGl6YXRpb24KIC0gKGlkKWluaXQKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBEbyBub3QgZGVmZXIgd2luZG93
IGNyZWF0aW9uLCB0byBtYWtlIHN1cmUgLXdpbmRvd051bWJlciBpcyBjcmVhdGVkIChuZWVkZWQg
YnkgV2ViV2luZG93U2NhbGVBbmltYXRpb24pLgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dl
YkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TWmVyb1Jl
Y3Qgc3R5bGVNYXNrOk5TQ2xvc2FibGVXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVC
dWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNX
aW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJs
ZSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIHNlbGYgPSBb
c3VwZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsKICAgICBbd2luZG93IHJlbGVhc2VdOwogICAg
IGlmICghc2VsZikKQEAgLTQ2MiwxMCArNDYwLDcgQEAgc3RhdGljIE5TUmVjdCBjb252ZXJ0UmVj
dFRvU2NyZWVuKE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCByZWN0KQogCiBzdGF0aWMgUmV0YWlu
UHRyPE5TV2luZG93PiBjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyhOU1JlY3QgZnJh
bWUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNXaW5kb3cg
KndpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6ZnJhbWUgc3R5
bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZl
cmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU1dpbmRv
dyAqd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBz
dHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3Rv
cmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW3dpbmRvdyBzZXRPcGFxdWU6WUVTXTsKICAgICBb
d2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBibGFja0NvbG9yXV07CiAgICAgW3dp
bmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KaW5kZXggNTVmMWFlMmQ0NThmNTYxMzk1ZmMzMjZhYWNiYzYwZjRkYjMy
MTNjNC4uY2Q3OTQ3NTZjZjQ0OTE5ZGIxZWQzMjFlMzUzNWQyYmZhMjJhZmI2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xMzgsNiArMTM4LDcgQEAKICNp
bXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMu
aD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmICFQTEFURk9STShJT1MpCiAjaW1wb3J0IDxB
cHBLaXQvTlNBY2Nlc3NpYmlsaXR5Lmg+CkBAIC0xMzUxLDEyICsxMzUyLDkgQEAgc3RhdGljIE5T
VVJMKiB1bmlxdWVVUkxXaXRoUmVsYXRpdmVQYXJ0KE5TU3RyaW5nICpyZWxhdGl2ZVBhcnQpCiAK
IC0gKHZvaWQpX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6KE5T
RXZlbnQgKilmbGFnc0NoYW5nZWRFdmVudAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNl
TG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246
ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVh
bQogICAgICAgICBtb2RpZmllckZsYWdzOmZsYWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxhZ3Mg
dGltZXN0YW1wOmZsYWdzQ2hhbmdlZEV2ZW50LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6ZmxhZ3ND
aGFuZ2VkRXZlbnQud2luZG93TnVtYmVyCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVudE51
bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKICAgICBbc2VsZiBtb3VzZU1vdmVkOmZha2VFdmVudF07CiB9CiAKQEAgLTE1MDYsMTAg
KzE1MDQsNyBAQCBzdGF0aWMgTlNVUkwqIHVuaXF1ZVVSTFdpdGhSZWxhdGl2ZVBhcnQoTlNTdHJp
bmcgKnJlbGF0aXZlUGFydCkKICNlbmRpZgogewogI2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJUKCFldmVudCB8fCBbZXZlbnQg
dHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU1JpZ2h0TW91c2VE
b3duIHx8IFtldmVudCB0eXBlXSA9PSBOU090aGVyTW91c2VEb3duKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBU1NFUlQoIWV2ZW50IHx8IFtldmVudCB0eXBlXSA9PSBOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlUmlnaHRN
b3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24pOwog
I2Vsc2UKICAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRNb3VzZURv
d24pOwogI2VuZGlmCkBAIC0xNjYxLDE2ICsxNjU2LDE3IEBAIHN0YXRpYyBOU1VSTCogdW5pcXVl
VVJMV2l0aFJlbGF0aXZlUGFydChOU1N0cmluZyAqcmVsYXRpdmVQYXJ0KQogCiAtICh2b2lkKV91
cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50CiB7CisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAg
ICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU01vdXNlTW92ZWQKLSAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10gY29udmVydFNj
cmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAgICAgICAgY29udmVydFNjcmVl
blRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZp
ZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZl
cmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dOdW1iZXI6W1tzZWxmIHdpbmRvd10gd2luZG93TnVt
YmVyXQogICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAg
ICBbc2VsZiBfdXBkYXRlTW91c2VvdmVyV2l0aEV2ZW50OmZha2VFdmVudF07CiB9CkBAIC0xODY4
LDExICsxODY0LDggQEAgc3RhdGljIE5TVVJMKiB1bmlxdWVVUkxXaXRoUmVsYXRpdmVQYXJ0KE5T
U3RyaW5nICpyZWxhdGl2ZVBhcnQpCiAjaWYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBCT09MIGlz
UXVpY2tMb29rRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCiAgICAgY29uc3QgaW50IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlD
b21iaW5hdGlvblJlbGVhc2VkID0gOTsKLSAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TU3lz
dGVtRGVmaW5lZCAmJiBbZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhv
dEtleUNvbWJpbmF0aW9uUmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2
ZW50VHlwZVN5c3RlbURlZmluZWQgJiYgW2V2ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5c3Rl
bVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJlbGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0gJ2xr
dXAnOwogfQogI2VuZGlmCiAKQEAgLTE5MjgsMTQgKzE5MjEsMTEgQEAgc3RhdGljIEJPT0wgaXNR
dWlja0xvb2tFdmVudChOU0V2ZW50ICpldmVudCkKICAgICBlbHNlIHsKICAgICAgICAgLy8gRklY
TUU6IFdoeSBkb2Vzbid0IHRoaXMgaW5jbHVkZSBtb3VzZSBlbnRlcmVkL2V4aXRlZCBldmVudHMs
IG9yIG90aGVyIG1vdXNlIGJ1dHRvbiBldmVudHM/CiAgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0g
W1tzZWxmIHdpbmRvd10gY3VycmVudEV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICAgICAgY2FwdHVyZUhpdHNPblN1YnZpZXdzID0gIShbZXZlbnQgdHlwZV0g
PT0gTlNNb3VzZU1vdmVkCi0gICAgICAgICAgICB8fCBbZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1v
dXNlRG93bgotICAgICAgICAgICAgfHwgKFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24g
JiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spICE9IDApCi0gICAg
ICAgICAgICB8fCBbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQKKyAgICAgICAgY2FwdHVy
ZUhpdHNPblN1YnZpZXdzID0gIShbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVNb3VzZU1vdmVk
CisgICAgICAgICAgICB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93
bgorICAgICAgICAgICAgfHwgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURv
d24gJiYgW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wp
CisgICAgICAgICAgICB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQK
ICAgICAgICAgICAgIHx8IGlzUXVpY2tMb29rRXZlbnQoZXZlbnQpKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBpZiAoIWNhcHR1cmVIaXRzT25TdWJ2aWV3cykg
ewpAQCAtMjAyMyw5ICsyMDEzLDcgQEAgc3RhdGljIEJPT0wgaXNRdWlja0xvb2tFdmVudChOU0V2
ZW50ICpldmVudCkKIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFeGl0ZWQKIHsKICAgICAvLyBO
b3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0
YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtl
RXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFeGl0ZWQKKyAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlTW91c2VFeGl0ZWQKICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
ICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yMDM0LDE2
ICsyMDIyLDEzIEBAIHN0YXRpYyBCT09MIGlzUXVpY2tMb29rRXZlbnQoTlNFdmVudCAqZXZlbnQp
CiAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdf
UkVDVF9UQUcKICAgICAgICAgdXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJEYXRh
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbX3ByaXZhdGUtPnRyYWNraW5n
UmVjdE93bmVyIG1vdXNlRXhpdGVkOmZha2VFdmVudF07CiB9CiAKIC0gKHZvaWQpX3NlbmRUb29s
VGlwTW91c2VFbnRlcmVkCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQg
dXNlckRhdGEuCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZl
bnRXaXRoVHlwZTpOU01vdXNlRW50ZXJlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2
ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUVudGVyZWQKICAgICAg
ICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAg
ICAgICAgIHRpbWVzdGFtcDowCkBAIC0yMDUzLDcgKzIwMzgsNiBAQCBzdGF0aWMgQk9PTCBpc1F1
aWNrTG9va0V2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICB0cmFja2luZ051bWJlcjpUUkFD
S0lOR19SRUNUX1RBRwogICAgICAgICB1c2VyRGF0YTpfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0VXNl
ckRhdGFdOwogICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0T3duZXIgbW91c2VFbnRlcmVkOmZh
a2VFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAjZW5kaWYgLy8gIVBM
QVRGT1JNKElPUykKIApAQCAtMjA4OSwyMSArMjA3MywxOCBAQCBzdGF0aWMgQk9PTCBpc1F1aWNr
TG9va0V2ZW50KE5TRXZlbnQgKmV2ZW50KQogc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9m
Q2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0p
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xl
ZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBO
U0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAg
ICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2Vk
OgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1v
dXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91
c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURv
d246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3du
OgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogfQogCkBAIC0yMTM0LDE2ICsyMTE1LDE0IEBA
IHN0YXRpYyBib29sIG1vdXNlRXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50
KQogICAgICAgICBmbG9hdCB5U2Nyb2xsID0gdmlzaWJsZVJlY3Qub3JpZ2luLnk7CiAgICAgICAg
IGZsb2F0IHhTY3JvbGwgPSB2aXNpYmxlUmVjdC5vcmlnaW4ueDsKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKKyAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAgICAgICAg
ICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgtMSAtIHhTY3JvbGwsIC0xIC0geVNjcm9sbCkKICAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxh
Z3NdCiAgICAgICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVy
ZW5jZURhdGVdCiAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10gd2luZG93
TnVtYmVyXQogICAgICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgICAgICBldmVudE51
bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKwogICAgICAgICBpZiAoRnJhbWUqIGxhc3RIaXRDb3JlRnJhbWUgPSBjb3JlKFtsYXN0
SGl0VmlldyBfZnJhbWVdKSkKICAgICAgICAgICAgIGxhc3RIaXRDb3JlRnJhbWUtPmV2ZW50SGFu
ZGxlcigpLm1vdXNlTW92ZWQoZXZlbnQsIFtbc2VsZiBfd2ViVmlld10gX3ByZXNzdXJlRXZlbnRd
KTsKICAgICB9CkBAIC0yMzMwLDE2ICsyMzA5LDE4IEBAIHN0YXRpYyBib29sIG1vdXNlRXZlbnRJ
c1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogICAgIH0KIAogI2lmICFQTEFURk9S
TShJT1MpCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZAorICAgICAgICBsb2NhdGlvbjpbW3NlbGYg
d2luZG93XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQg
KmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURyYWdn
ZWQKLSAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpb
TlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNF
dmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQog
ICAgICAgICB3aW5kb3dOdW1iZXI6W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVyXQogICAgICAg
ICBjb250ZXh0Om51bGxwdHIKICAgICAgICAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJl
c3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAgICBbc2VsZiBtb3Vz
ZURyYWdnZWQ6ZmFrZUV2ZW50XTsKICNlbmRpZgogfQpAQCAtMzM1NCwxMiArMzMzNSw5IEBAIFdF
QkNPUkVfQ09NTUFORCh0b2dnbGVVbmRlcmxpbmUpCiAgICAgLy8gb3IgZnJvbSBjYWxscyBiYWNr
IGZyb20gV2ViQ29yZSBvbmNlIHdlIGJlZ2luIG1vdXNlLWRvd24gZXZlbnQgaGFuZGxpbmcuCiAj
aWYgIVBMQVRGT1JNKElPUykgICAgICAgICAgICAKICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0Fw
cCBjdXJyZW50RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IGlmIChbZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duCisgICAgaWYgKFtldmVudCB0eXBl
XSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24KICAgICAgICAgICAgICYmICFfcHJpdmF0ZS0+
aGFuZGxpbmdNb3VzZURvd25FdmVudAogICAgICAgICAgICAgJiYgTlNQb2ludEluUmVjdChbZXZl
bnQgbG9jYXRpb25JbldpbmRvd10sIFtzZWxmIGNvbnZlcnRSZWN0OltzZWxmIHZpc2libGVSZWN0
XSB0b1ZpZXc6bmlsXSkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAg
cmV0dXJuIE5POwogICAgIH0KICNlbHNlCkBAIC0zNTI4LDEzICszNTA2LDEwIEBAIFdFQkNPUkVf
Q09NTUFORCh0b2dnbGVVbmRlcmxpbmUpCiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBp
ZiAoIV9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIF9wcml2YXRlLT5mbGFnc0NoYW5nZWRF
dmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01h
c2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6XihOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVu
dCkgeworICAgICAgICAgICAgX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtO
U0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0V2ZW50TWFza0Zs
YWdzQ2hhbmdlZCBoYW5kbGVyOl4oTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKICAgICAg
ICAgICAgICAgICBbc2VsZiBfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRF
dmVudDpmbGFnc0NoYW5nZWRFdmVudF07CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzQ2hh
bmdlZEV2ZW50OwogICAgICAgICAgICAgfV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBbTlNFdmVudCByZW1vdmVNb25pdG9y
Ol9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3JdOwpAQCAtNDU0MCwxMSArNDUxNSwx
MiBAQCBzdGF0aWMgQk9PTCBjdXJyZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZpZXcpCiAg
ICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBbTlNJbnB1dE1hbmFnZXIg
Y3VycmVudElucHV0TWFuYWdlcl07CiAKICAgICBpZiAoIVtjdXJyZW50SW5wdXRNYW5hZ2VyIHdh
bnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gfHwgIVtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRsZU1v
dXNlRXZlbnQ6ZXZlbnRdKSB7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAg
IFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5PIG1v
dmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUgd2ViIHBhZ2UgaGFuZGxlcyB0aGUgY29u
dGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6IHJldHVybnMgbmlsLCB3ZSdsbCBnZXQg
Y29udHJvbCBjbGljayBldmVudHMgaGVyZS4KICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBw
YXNzIHRoZW0gYWxvbmcgdG8gS0hUTUwgYSBzZWNvbmQgdGltZS4KLSAgICAgICAgaWYgKCEoW2V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgaWYgKCEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAg
ICAgICAgICAgICBfcHJpdmF0ZS0+aWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMgPSBOTzsKIAog
ICAgICAgICAgICAgLy8gTGV0IFdlYkNvcmUgZ2V0IGEgY2hhbmNlIHRvIGRlYWwgd2l0aCB0aGUg
ZXZlbnQuIFRoaXMgd2lsbCBjYWxsIGJhY2sgdG8gdXMKQEAgLTQ1NTMsNyArNDUyOSw2IEBAIHN0
YXRpYyBCT09MIGN1cnJlbnRTY3JvbGxJc0JsaXQoTlNWaWV3ICpjbGlwVmlldykKICAgICAgICAg
ICAgICAgICBjb3JlZnJhbWUtPmV2ZW50SGFuZGxlcigpLm1vdXNlRG93bihldmVudCwgW1tzZWxm
IF93ZWJWaWV3XSBfcHJlc3N1cmVFdmVudF0pOwogICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogI2VuZGlmCiAKICAgICBfcHJpdmF0ZS0+aGFuZGxpbmdNb3Vz
ZURvd25FdmVudCA9IE5POwpAQCAtNDgxOCwxOSArNDc5MywxMiBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQog
ICAgICAgICByZXR1cm4gMDsKIAogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0tleURvd246IHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7
CiAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwbGF0Zm9ybUV2ZW50ID0gUGxhdGZvcm1F
dmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCk7CiAgICAgICAg
IHBsYXRmb3JtRXZlbnQuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJh
d0tleURvd24pOwogICAgICAgICByZXR1cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBsYXRmb3Jt
RXZlbnQsIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAgfQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlVcDoKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6CiAgICAg
ICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNy
ZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCksIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+
ZGVmYXVsdFZpZXcoKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIDA7CkBAIC01NTI0
LDExICs1NDkyLDggQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtl
eWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICBpZiAoIVtzZWxmIF9jYW5FZGl0XSkK
ICAgICAgICAgcmV0dXJuIE5POwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmICgoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZpY2VJbmRlcGVuZGVu
dE1vZGlmaWVyRmxhZ3NNYXNrKSAhPSBOU0NvbW1hbmRLZXlNYXNrKQorICAgIGlmICgoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50Rmxh
Z3NNYXNrKSAhPSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkKICAgICAgICAgcmV0dXJuIE5P
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgTlNTdHJpbmcgKnN0cmluZyA9
IFtldmVudCBjaGFyYWN0ZXJzXTsKICAgICBpZiAoW3N0cmluZyBjYXNlSW5zZW5zaXRpdmVDb21w
YXJlOkAiYiJdID09IE5TT3JkZXJlZFNhbWUpIHsKQEAgLTY0NDgsMTQgKzY0MTMsMTEgQEAgc3Rh
dGljIEJPT0wgd3JpdGluZ0RpcmVjdGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiAgICAgICAgIHJl
dHVybiBOTzsKIAogICAgIE5TRXZlbnQgKm1hY0V2ZW50ID0gcGxhdGZvcm1FdmVudC0+bWFjRXZl
bnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW21hY0V2
ZW50IHR5cGVdID09IE5TS2V5RG93biAmJiBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVy
IGZpbHRlcktleURvd246bWFjRXZlbnRdKQorICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNF
dmVudFR5cGVLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZmlsdGVy
S2V5RG93bjptYWNFdmVudF0pCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgCi0gICAgaWYgKFtt
YWNFdmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKKyAgICBpZiAoW21hY0V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgCiAgICAgcGFyYW1ldGVycy5ldmVudCA9IGV2ZW50
OwogICAgIF9wcml2YXRlLT5pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzID0gJnBhcmFtZXRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggNzhmNTZlNDkx
ZTA4NmFhZTk4M2IzODA2OTlhNTUxNTdjZDk4ZmRiYS4uOTYwYzYzNzlkMWFjZTYwMDdiZTEyMDUy
YWUyODQ3NDczNTQ3ZDg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5t
bQpAQCAtNjUsNiArNjUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJOU0F0dHJpYnV0ZWRTdHJp
bmdFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvQ3Vy
cmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPEFwcGxpY2F0
aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlc1ByaXYuaD4KQEAgLTMyMSwxMCArMzIyLDcg
QEAgc3RhdGljIEJPT0wgX1BERlNlbGVjdGlvbnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVj
dGlvbkEsIFBERlNlbGVjdGlvbiAqc2VsZWMKICAgICAvLyBPdmVycmlkZSBoaXRUZXN0IHNvIHdl
IGNhbiBvdmVycmlkZSBtZW51Rm9yRXZlbnQuCiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAg
Y3VycmVudEV2ZW50XTsKICAgICBOU0V2ZW50VHlwZSB0eXBlID0gW2V2ZW50IHR5cGVdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICh0eXBlID09IE5TUmlnaHRN
b3VzZURvd24gfHwgKHR5cGUgPT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgaWYgKHR5cGUgPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8fCAodHlwZSA9PSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZl
bnRNb2RpZmllckZsYWdDb250cm9sKSkpCiAgICAgICAgIHJldHVybiBzZWxmOwogCiAgICAgcmV0
dXJuIFtzdXBlciBoaXRUZXN0OnBvaW50XTsKQEAgLTEwMDksMzkgKzEwMDcsMzMgQEAgc3RhdGlj
IEJPT0wgaXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAg
ICAgaW50IGJ1dHRvbiA9IG5vQnV0dG9uOwogICAgIFJlZlB0cjxFdmVudD4gZXZlbnQ7CiAgICAg
c3dpdGNoIChbbnNFdmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSAw
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAg
ICAgICAgICBidXR0b24gPSAxOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNP
dGhlck1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSBbbnNFdmVudCBidXR0b25OdW1iZXJd
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNLZXlEb3duOiB7Ci0gICAgICAg
ICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGUgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3Jl
YXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KG5zRXZlbnQpOwotICAgICAgICAgICAgcGUuZGlzYW1i
aWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwotICAgICAgICAg
ICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDoKKyAgICAgICAgYnV0dG9uID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gW25zRXZl
bnQgYnV0dG9uTnVtYmVyXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2ZW50VHlwZUtl
eURvd246IHsKKyAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVu
dEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKKyAgICAgICAg
cGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwor
ICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYg
KGJ1dHRvbiAhPSBub0J1dHRvbikgewogICAgICAgICBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgMCwg
W25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5h
dGVLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU1NoaWZ0
S2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5k
S2V5TWFzaywKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIFtuc0V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wsCisgICAgICAg
ICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24s
CisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZs
YWdTaGlmdCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICBidXR0b24sIDAsIFdlYkNvcmU6OkZvcmNl
QXRDbGljaywgMCwgMCwgdHJ1ZSk7CiAgICAgfQogCkBAIC0xMTQ5LDkgKzExNDEsNyBAQCBzdGF0
aWMgQk9PTCBpc0ZyYW1lSW5SYW5nZShXZWJGcmFtZSAqZnJhbWUsIERPTVJhbmdlICpyYW5nZSkK
ICAgICAvLyBGSVhNRSA0NDAwNDgwOiB3aGVuIFBERlZpZXcgaW1wbGVtZW50cyB0aGUgc3RhbmRh
cmQgc2Nyb2xsaW5nIHNlbGVjdG9ycyB0aGF0IHRoaXMKICAgICAvLyBtZXRob2QgaXMgdXNlZCB0
byBtaW1pYywgd2UgY2FuIGVsaW1pbmF0ZSB0aGlzIG1ldGhvZCBhbmQgY2FsbCB0aGVtIGRpcmVj
dGx5LgogICAgIE5TU3RyaW5nICprZXlBc1N0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hh
cmFjdGVyczomZnVuY3Rpb25LZXkgbGVuZ3RoOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIHJldHVybiBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5RG93
bgorICAgIHJldHVybiBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93
bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TWmVyb1BvaW50CiAgICAg
ICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGltZXN0YW1wOjAKQEAgLTExNjEsNyArMTE1MSw2IEBAIHN0YXRpYyBCT09MIGlzRnJh
bWVJblJhbmdlKFdlYkZyYW1lICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQogICAgICAgICAgY2hh
cmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmtleUFzU3RyaW5nCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpc0FSZXBlYXQ6Tk8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5Q29k
ZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KIAogLSAodm9pZClfbG9va1Vw
SW5EaWN0aW9uYXJ5RnJvbU1lbnU6KGlkKXNlbmRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbQppbmRleCA0Mzgy
YjA0NDc0ZTYwYzhjMjM3MzMwNDdiODEzOTY0YTRmNzg0MjYzLi43YjllNWRiY2Y0OGMyMTZiNmM1
NjYzMTBjMTc0ZTQzMTJjNTYyOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbQpAQCAtMzUsNiArMzUsNyBA
QAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViVmlldy5oIgogI2lt
cG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmls
aXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgTlNXaW5kb3cgKFdlYk5TV2luZG93RGV0
YWlscykKIC0gKHZvaWQpX3NldEZvcmNlQWN0aXZlQ29udHJvbHM6KEJPT0wpZmxhZzsKQEAgLTEx
MiwxMCArMTEzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgW3Njcm9sbFZpZXcg
c2V0RG9jdW1lbnRWaWV3Ol90YWJsZVZpZXddOwogICAgIFtfdGFibGVWaWV3IHJlbGVhc2VdOwog
ICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIF9wb3B1cFdpbmRv
dyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6c2Nyb2xsRnJhbWUgc3R5
bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZl
cmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBfcG9wdXBX
aW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnNjcm9sbEZyYW1l
IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdT
dG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbX3BvcHVwV2luZG93IHNldEFscGhhVmFsdWU6
MC44OGZdOwogICAgIFtfcG9wdXBXaW5kb3cgc2V0Q29udGVudFZpZXc6c2Nyb2xsVmlld107CiAg
ICAgW3Njcm9sbFZpZXcgcmVsZWFzZV07CkBAIC0xNTUsOCArMTUzLDggQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAg
IG1heFdpZHRoID0gY2VpbGYoW05TU2Nyb2xsVmlldyBmcmFtZVNpemVGb3JDb250ZW50U2l6ZTpO
U01ha2VTaXplKG1heFdpZHRoLCAxMDAuMGYpIGhhc0hvcml6b250YWxTY3JvbGxlcjpOTyBoYXNW
ZXJ0aWNhbFNjcm9sbGVyOllFUyBib3JkZXJUeXBlOk5TTm9Cb3JkZXJdLndpZHRoKTsKLSAgICAg
ICAgbWF4V2lkdGggPSBjZWlsZihbTlNXaW5kb3cgZnJhbWVSZWN0Rm9yQ29udGVudFJlY3Q6TlNN
YWtlUmVjdCgwLjBmLCAwLjBmLCBtYXhXaWR0aCwgMTAwLjBmKSBzdHlsZU1hc2s6TlNCb3JkZXJs
ZXNzV2luZG93TWFza10uc2l6ZS53aWR0aCk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TV2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRS
ZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5T
V2luZG93U3R5bGVNYXNrQm9yZGVybGVzc10uc2l6ZS53aWR0aCk7CiAgICAgICAgIG1heFdpZHRo
ICs9IDUuMGY7CiAgICAgICAgIHdpbmRvd0ZyYW1lLnNpemUud2lkdGggPSBzdGQ6Om1heChtYXhX
aWR0aCwgd2luZG93RnJhbWUuc2l6ZS53aWR0aCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCmluZGV4IDdjZmFhODdiNTU2ZWI0NzZiZjNjNWZlZDVlMDNlNjhmYmEyZGU0
YmYuLmJlMzI2ZTdmOGU3MzI3Njk5NmRkY2U1YzkzMzJhZjQ2YjlhZjcxNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIxMyw2ICsyMTMsNyBAQAogI2ltcG9ydCA8d3Rm
L1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oPgogCiAjaWYgIVBMQVRGT1JN
KElPUykKQEAgLTYwOTUsMTAgKzYwOTYsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNr
aW5nUHJvcGVydHlPbGRTY2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogICAg
ICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25IYXNBdHRhY2hlZFNoZWV0OwogICAgIGlmIChb
ZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlXSA9PSBzZWxmKQogICAgICAgICBmbGFncyB8PSBE
cmFnQXBwbGljYXRpb25Jc1NvdXJjZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBpZiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRl
cm5hdGVLZXlNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW05T
QXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uKQogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25Jc0NvcHlLZXlEb3duOwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxEcmFnQXBwbGljYXRpb25GbGFncz4oZmxhZ3MpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQppbmRleCAyZTY1ODA2
ZGI1ZDY4ZjBhNGEyODJkMzgzYjk2ZTdiNDUxNmI5MDQwLi5iMGM1NTRkNGRhNjIzZDk5YjAxNDM1
ODY3YjIwNzcyNWI4Njc0NTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L0NoaWxkUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxk
UHJvY2Vzc01hYy5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCA8cHdkLmg+CiAjaW1wb3J0
IDxzdGRsaWIuaD4KICNpbXBvcnQgPHN5c2V4aXRzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtp
dENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1Nh
bmRib3hTUEkuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCkBAIC0xOTcsMTAgKzE5
OCw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKCkKICAgICBBU1NFUlQo
W05TQXBwIGlzUnVubmluZ10pOwogICAgIFtOU0FwcCBzdG9wOm5pbF07CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90
aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0aW9uRGVmaW5lZCBsb2NhdGlvbjpOU01ha2VQb2lu
dCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAuMCB3aW5kb3dOdW1iZXI6MCBjb250
ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBkYXRhMjowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAw
KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5p
bCBzdWJ0eXBlOjAgZGF0YTE6MCBkYXRhMjowXTsKICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50
IGF0U3RhcnQ6dHJ1ZV07CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkubW0KaW5kZXggYTg1ZWZjYWVlOWE1MmQ4YzA0NTY2NmQ5NGM0OTE4NzBj
YTY4YTdkMy4uMmYxNThjMDNlM2JlMzgzOGMwNjNiMjFiMjBmYzlmNjdjNzJiOWM2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KQEAgLTYzLDc4ICs2
Myw2OSBAQCBzdGF0aWMgV2ViTW91c2VFdmVudDo6QnV0dG9uIGN1cnJlbnRNb3VzZUJ1dHRvbigp
CiAKIHN0YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBz
d2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dl
ZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOwotICAgICAg
ICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJN
b3VzZUV2ZW50OjpSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURy
YWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOwor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICAg
ICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViTW91
c2VFdmVudDo6UmlnaHRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3du
OgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TWlkZGxl
QnV0dG9uOwogI2lmIGRlZmluZWQoX19MUDY0X18pCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQ
cmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSAgICAgICAg
Y2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAg
ICAgICAgcmV0dXJuIGN1cnJlbnRNb3VzZUJ1dHRvbigpOwotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVu
dFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAg
ICAgICByZXR1cm4gY3VycmVudE1vdXNlQnV0dG9uKCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKIH0KIAogc3RhdGljIFdlYkV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9y
RXZlbnQoTlNFdmVudCogZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3Vz
ZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNN
b3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNP
dGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAg
ICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7Ci0gICAgICAgIGNhc2UgTlNMZWZ0
TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2Ug
TlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VEb3du
OwotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
VXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgICAgICByZXR1cm4gV2Vi
RXZlbnQ6Ok1vdXNlVXA7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gV2Vi
RXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVN
b3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgICAgICByZXR1
cm4gV2ViRXZlbnQ6Ok1vdXNlRG93bjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6
CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
T3RoZXJNb3VzZVVwOgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlVXA7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CiAgICAgfQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgaW50IGNsaWNrQ291bnRGb3JFdmVu
dChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
ICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93
bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5T
UmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFtldmVu
dCBjbGlja0NvdW50XTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiAwOwor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1v
dXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICBy
ZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAw
OwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KIAogc3RhdGljIE5TUG9p
bnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKQEAgLTE0MywyMiArMTM0LDE5
IEBAIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAj
aWYgZGVmaW5lZChfX0xQNjRfXykKICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5k
aWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TTGVmdE1v
dXNlRG93bjoKLSAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6
Ci0gICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAg
IGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0g
ICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICBjYXNlIE5TU2Nyb2xsV2hlZWw6Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1v
dmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6
CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsOgogICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6Z2xvYmFsUG9pbnQoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIE5TWmVyb1BvaW50OwpAQCAtMTcxLDIyICsx
NTksMTkgQEAgc3RhdGljIE5TUG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNW
aWV3ICp3aW5kb3dWaWV3KQogI2lmIGRlZmluZWQoX19MUDY0X18pCiAgICAgY2FzZSBOU0V2ZW50
VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6
Ci0gICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAg
Y2FzZSBOU01vdXNlRXhpdGVkOgotICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgIGNhc2UgTlNP
dGhlck1vdXNlRG93bjoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBO
U090aGVyTW91c2VVcDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgY2FzZSBOU1Jp
Z2h0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgY2FzZSBOU1Nj
cm9sbFdoZWVsOiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNl
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURv
d246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsOiB7
CiAgICAgICAgIC8vIE5vdGU6IFRoaXMgd2lsbCBoYXZlIGl0cyBvcmlnaW4gYXQgdGhlIGJvdHRv
bSBsZWZ0IG9mIHRoZSB3aW5kb3cgdW5sZXNzIHdpbmRvd1ZpZXcgaXMgZmxpcHBlZC4KICAgICAg
ICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5IFdp
ZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93LgogICAgICAgICBOU1BvaW50IGxvY2F0
aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOwpAQCAtMjQwLDEwICsyMjUsNyBAQCBzdGF0
aWMgaW5saW5lIFN0cmluZyB0ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxh
Y2VzU29mdFNwYWNlKQogewogICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKICAgICAgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFu
Z2VkKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAgICByZXR1cm4gU3RyaW5nKFtl
dmVudCBjaGFyYWN0ZXJzXSk7CiB9CkBAIC0yNTIsMTAgKzIzNCw3IEBAIHN0YXRpYyBpbmxpbmUg
U3RyaW5nIHVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxh
Y2VzU29mdFNwCiB7CiAgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQogICAgICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQp
CiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmcoW2V2ZW50
IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10pOwogfQpAQCAtMjY0LDc0ICsyNDMsNjggQEAg
c3RhdGljIGJvb2wgaXNLZXlwYWRFdmVudChOU0V2ZW50KiBldmVudCkKIHsKICAgICAvLyBDaGVj
ayB0aGF0IHRoaXMgaXMgdGhlIHR5cGUgb2YgZXZlbnQgdGhhdCBoYXMgYSBrZXlDb2RlLgogICAg
IHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgICAgIGNhc2UgTlNLZXlEb3duOgotICAgICAgICBjYXNlIE5TS2V5VXA6Ci0gICAg
ICAgIGNhc2UgTlNGbGFnc0NoYW5nZWQ6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
S2V5VXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZDoKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHN3aXRj
aCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFyCi0gICAgICAg
IGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBjYXNlIDY3OiAv
LyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8gKwotICAgICAg
ICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAgICAgIGNhc2Ug
ODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0OiAvLyAyCi0g
ICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAgICAgICBjYXNl
IDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4OTogLy8gNwot
ICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAgICBjYXNlIDgx
OiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAgICBjYXNlIDc4
OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVyCisgICAgY2Fz
ZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAxCisgICAgY2Fz
ZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0CisgICAgY2Fz
ZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3CisgICAgY2Fz
ZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNL
ZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpCi0gICAgICAg
IHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcDsKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9
IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09
IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgLy8gRklYTUU6IFRoaXMgbG9naWMgZmFpbHMgaWYgdGhl
IHVzZXIgcHJlc3NlcyBib3RoIFNoaWZ0IGtleXMgYXQgb25jZSwgZm9yIGV4YW1wbGU6CiAgICAg
Ly8gd2UgdHJlYXQgcmVsZWFzaW5nIG9uZSBvZiB0aGVtIGFzIGtleURvd24uCiAgICAgc3dpdGNo
IChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAot
ICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAgICAgICAgICAgIHJldHVybiAoW2V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAg
IAotICAgICAgICBjYXNlIDU3OiAvLyBDYXBzbG9jawotICAgICAgICAgICAgcmV0dXJuIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0FscGhhU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAgICAg
ICAgCi0gICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgY2FzZSA2MDogLy8g
UmlnaHQgU2hpZnQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYg
TlNTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1ODogLy8g
TGVmdCBBbHQKLSAgICAgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0gICAgICAgICAgICByZXR1
cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgPT0gMDsKLSAg
ICAgICAgICAgIAotICAgICAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKLSAgICAgICAgY2FzZSA2
MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0NvbnRyb2xLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2Ug
NjM6IC8vIEZ1bmN0aW9uCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TRnVuY3Rpb25LZXlNYXNrKSA9PSAwOworICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1h
bmQKKyAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpOworCisgICAgY2Fz
ZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrKTsKKworICAgIGNhc2UgNTY6IC8vIExlZnQg
U2hpZnQKKyAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAgICAgICByZXR1cm4gIShbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpOworCisgICAgY2Fz
ZSA1ODogLy8gTGVmdCBBbHQKKyAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgcmV0
dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbik7
CisKKyAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKKyAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJs
CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdDb250cm9sKTsKKworICAgIGNhc2UgNjM6IC8vIEZ1bmN0aW9uCisgICAgICAgIHJldHVy
biAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbik7
CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIHJldHVybiBmYWxzZTsK
IH0KIApAQCAtNDg0LDEwICs0NTcsNyBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBoYQogICAgIGlu
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUgICAgICAgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50
KGV2ZW50KTsKICAgICBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUgICAgICAgID0gW2V2ZW50IGtl
eUNvZGVdOwogICAgIGludCBtYWNDaGFyQ29kZSAgICAgICAgICAgICAgICAgPSBXS0dldE5TRXZl
bnRLZXlDaGFyKGV2ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBib29sIGF1dG9SZXBlYXQgICAgICAgICAgICAgICAgID0gKFtldmVudCB0eXBlXSAhPSBOU0Zs
YWdzQ2hhbmdlZCkgJiYgW2V2ZW50IGlzQVJlcGVhdF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgYm9vbCBhdXRvUmVwZWF0ICAgICAgICAgICAgICAgICA9IFtldmVudCB0eXBl
XSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKICAgICBi
b29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAg
ICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkg
aXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2Rp
ZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAzMmU2MzljNGQ5MTlhZDE2ZTlhOTQ4
MmI5MzVjZWYwNDYzNzcxZmJhLi43NjNkOTA2MDU3NTk5M2Q4Y2IwNzNjNmFhNGUwOTVjMGRiYjRh
ODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CkBAIC05Myw2ICs5Myw3IEBACiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNp
bXBvcnQgPHN5cy9zdGF0Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJWaWV3SW1w
bEluY2x1ZGVzLmg+CkBAIC02MjAsMTEgKzYyMSw4IEBAIGJvb2wgV2ViVmlld0ltcGw6OmJlY29t
ZUZpcnN0UmVzcG9uZGVyKCkKICAgICBpZiAoZGlyZWN0aW9uICE9IE5TRGlyZWN0U2VsZWN0aW9u
KSB7CiAgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVudF07CiAgICAg
ICAgIE5TRXZlbnQgKmtleWJvYXJkRXZlbnQgPSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtl
dmVudCB0eXBlXSA9PSBOU0tleVVwKQorICAgICAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZl
bnRUeXBlS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlVcCkKICAgICAg
ICAgICAgIGtleWJvYXJkRXZlbnQgPSBldmVudDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKICAgICAgICAgbV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0
aW5nTmV4dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5
Ym9hcmRFdmVudCwgZmFsc2UsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6
RXJyb3IpIHsgfSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtODQ4LDEwICs4NDYsNyBA
QCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKQogICAg
ICAgICByZXR1cm47CiAKICAgICBOU1dpbmRvdyAqd2luZG93ID0gbV92aWV3LndpbmRvdzsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoKHdpbmRvdy5zdHlsZU1h
c2sgJiBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrKSAmJiAhd2luZG93LnRpdGxlYmFy
QXBwZWFyc1RyYW5zcGFyZW50ICYmICFbbV92aWV3IGVuY2xvc2luZ1Njcm9sbFZpZXddKSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKCh3aW5kb3cuc3R5bGVNYXNrICYg
TlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3KSAmJiAhd2luZG93LnRpdGxlYmFy
QXBwZWFyc1RyYW5zcGFyZW50ICYmICFbbV92aWV3IGVuY2xvc2luZ1Njcm9sbFZpZXddKSB7CiAg
ICAgICAgIE5TUmVjdCBjb250ZW50TGF5b3V0UmVjdCA9IFttX3ZpZXcgY29udmVydFJlY3Q6d2lu
ZG93LmNvbnRlbnRMYXlvdXRSZWN0IGZyb21WaWV3Om5pbF07CiAgICAgICAgIENHRmxvYXQgbmV3
VG9wQ29udGVudEluc2V0ID0gTlNNYXhZKGNvbnRlbnRMYXlvdXRSZWN0KSAtIE5TSGVpZ2h0KGNv
bnRlbnRMYXlvdXRSZWN0KTsKICAgICAgICAgaWYgKG1fdG9wQ29udGVudEluc2V0ICE9IG5ld1Rv
cENvbnRlbnRJbnNldCkKQEAgLTEyMjgsMTAgKzEyMjMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp2
aWV3RGlkTW92ZVRvV2luZG93KCkKIAogICAgICAgICBpZiAoIW1fZmxhZ3NDaGFuZ2VkRXZlbnRN
b25pdG9yKSB7CiAgICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgbV9mbGFnc0No
YW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRj
aGluZ01hc2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6W3dlYWtUaGlzXSAoTlNFdmVudCAq
ZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25p
dG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6
W3dlYWtUaGlzXSAoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKICAgICAgICAgICAgICAg
ICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5wb3N0RmFrZU1v
dXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50KGZsYWdzQ2hhbmdlZEV2ZW50KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CkBAIC0xMzAyLDEyICsxMjk0
LDkgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6aGl0VGVzdChDR1BvaW50IHBvaW50KQogCiB2b2lk
IFdlYlZpZXdJbXBsOjpwb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50
KE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1v
dXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRp
b246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0
cmVhbQogICAgICAgICBtb2RpZmllckZsYWdzOmZsYWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxh
Z3MgdGltZXN0YW1wOmZsYWdzQ2hhbmdlZEV2ZW50LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6Zmxh
Z3NDaGFuZ2VkRXZlbnQud2luZG93TnVtYmVyCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVu
dE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGZha2VFdmVudCwgbV9s
YXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgbV92aWV3KTsKICAgICBtX3BhZ2UtPmhhbmRsZU1vdXNl
RXZlbnQod2ViRXZlbnQpOwogfQpAQCAtMTY1NiwxMCArMTY0NSw3IEBAIE5TVmlldyAqV2ViVmll
d0ltcGw6OmZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcoKQogTlNXaW5kb3cgKldlYlZpZXdJbXBs
OjpjcmVhdGVGdWxsU2NyZWVuV2luZG93KCkKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIFtbW1dlYkNv
cmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4g
bWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazooTlNCb3JkZXJsZXNzV2luZG93TWFzayB8IE5T
UmVzaXphYmxlV2luZG93TWFzaykgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVy
Ok5PXSBhdXRvcmVsZWFzZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0
dXJuIFtbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
OltbTlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazooTlNXaW5kb3dTdHlsZU1h
c2tCb3JkZXJsZXNzIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUpIGJhY2tpbmc6TlNCYWNr
aW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVhc2VdOwogI2Vsc2UKICAgICByZXR1
cm4gbmlsOwogI2VuZGlmCkBAIC0yNjMxLDkgKzI2MTcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpy
ZW1vdmVUcmFja2luZ1JlY3RzKE5TVHJhY2tpbmdSZWN0VGFnICp0YWdzLCBpbnQgY291bnQpCiB2
b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCkKIHsKICAgICAvLyBOb3Ro
aW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFeGl0ZWQKKyAgICBO
U0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlTW91c2VFeGl0ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yNjQyLDE2ICsy
NjI2LDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFeGl0ZWQoKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6MAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tpbmdOdW1iZXI6
VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVzZXJEYXRhOm1fdHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIFttX3RyYWNraW5nUmVjdE93bmVyIG1vdXNlRXhpdGVkOmZh
a2VFdmVudF07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFbnRlcmVk
KCkKIHsKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1i
ZXIsIGFuZCB1c2VyRGF0YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5T
TW91c2VFbnRlcmVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdz
OjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0
YW1wOjAKQEAgLTI2NjAsNyArMjY0MSw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlw
TW91c2VFbnRlcmVkKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YTptX3RyYWNraW5nUmVjdFVzZXJE
YXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbbV90cmFja2luZ1JlY3RP
d25lciBtb3VzZUVudGVyZWQ6ZmFrZUV2ZW50XTsKIH0KIApAQCAtMjgxNiwxMCArMjc5Niw3IEBA
IHN0YXRpYyBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncyBhcHBsaWNhdGlvbkZsYWdzRm9y
RHJhZyhOU1ZpZXcgKnZpZXcsIGlkIDxOCiAgICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdB
cHBsaWNhdGlvbkhhc0F0dGFjaGVkU2hlZXQ7CiAgICAgaWYgKGRyYWdnaW5nSW5mby5kcmFnZ2lu
Z1NvdXJjZSA9PSB2aWV3KQogICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRp
b25Jc1NvdXJjZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAo
W05TQXBwIGN1cnJlbnRFdmVudF0ubW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW05TQXBwIGN1cnJlbnRFdmVu
dF0ubW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgIGZs
YWdzIHw9IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbklzQ29weUtleURvd247CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzPihmbGFncyk7CiAKQEAg
LTMzNTksMTAgKzMzMzYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzbWFydE1hZ25pZnlXaXRoRXZl
bnQoTlNFdmVudCAqZXZlbnQpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldExhc3RNb3VzZURvd25F
dmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50LnR5cGUgPT0gTlNSaWdodE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TT3RoZXJN
b3VzZURvd24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFTU0VSVCghZXZl
bnQgfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gfHwgZXZlbnQudHlw
ZSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5
cGVPdGhlck1vdXNlRG93bik7CiAKICAgICBpZiAoZXZlbnQgPT0gbV9sYXN0TW91c2VEb3duRXZl
bnQuZ2V0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMzOTksMTEgKzMzNzMsOCBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiB2b2lkIFdlYlZpZXdJbXBs
Ojpkb25lV2l0aEtleUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5
cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5
RG93bikKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAg
ICAgaWYgKHRyeVBvc3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24oZXZlbnQp
KQogICAgICAgICByZXR1cm47CkBAIC0zNDc5LDExICszNDUwLDggQEAgVmVjdG9yPFdlYkNvcmU6
OktleXByZXNzQ29tbWFuZD4gV2ViVmlld0ltcGw6OmNvbGxlY3RLZXlib2FyZExheW91dENvbW1h
bmRzRm9yRXYKIHsKICAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBjb21tYW5k
czsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQg
dHlwZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVL
ZXlEb3duKQogICAgICAgICByZXR1cm4gY29tbWFuZHM7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAKICAgICBBU1NFUlQoIW1fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kcyk7CiAgICAg
bV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzID0gJmNvbW1hbmRzOwpAQCAtMzg1OCwxMSArMzgy
Niw4IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2
ZW50KQogICAgIC8vIFdlIGdldCBFc2Mga2V5IGhlcmUgYWZ0ZXIgcHJvY2Vzc2luZyBlaXRoZXIg
RXNjIG9yIENtZCtwZXJpb2QuIFRoZSBmb3JtZXIgc3RhcnRzIGFzIGEga2V5RG93biwgYW5kIHRo
ZSBsYXR0ZXIgc3RhcnRzIGFzIGEga2V5IGVxdWl2YWxlbnQsCiAgICAgLy8gYnV0IGJvdGggZ2V0
IHRyYW5zZm9ybWVkIHRvIGEgY2FuY2VsT3BlcmF0aW9uOiBjb21tYW5kLCBleGVjdXRpbmcgd2hp
Y2ggcGFzc2VzIGFuIEVzYyBrZXkgZXZlbnQgdG8gLXBlcmZvcm1LZXlFcXVpdmFsZW50Oi4KICAg
ICAvLyBEb24ndCBpbnRlcnByZXQgdGhpcyBldmVudCBhZ2FpbiwgYXZvaWRpbmcgcmUtZW50cmFu
Y3kgYW5kIGluZmluaXRlIGxvb3BzLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRv
U3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBl
bmRlbnRNb2RpZmllckZsYWdzTWFzaykpCisgICAgaWYgKFtbZXZlbnQgY2hhcmFjdGVyc0lnbm9y
aW5nTW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrKSkK
ICAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3dlYl9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2
ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIGlmIChtX2tleURvd25F
dmVudEJlaW5nUmVzZW50KSB7CiAgICAgICAgIC8vIFdlYkNvcmUgaGFzIGFscmVhZHkgc2VlbiB0
aGUgZXZlbnQsIG5vIG5lZWQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJv
eHlNYWMubW0KaW5kZXggZjA3ZDI3OWQ2MzdkMzBmOGY1MDUzMTdkOGYwOTYwNTU3YTExZDJkMi4u
OGYzN2Q0MjYxNTJiNjE3ZDU1YzkxNDg4MTUxMTRmOGMzMzllN2M1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vz
c1Byb3h5TWFjLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5oPgog
I2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPHNwYXduLmg+CisjaW1wb3J0IDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAogQGludGVyZmFjZSBXS1BsYWNlaG9sZGVyTW9kYWxXaW5kb3cgOiBOU1dp
bmRvdyAKQEAgLTIzMSwxMCArMjMyLDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmJlZ2lu
TW9kYWwoKQogICAgIEFTU0VSVCghbV9wbGFjZWhvbGRlcldpbmRvdyk7CiAgICAgQVNTRVJUKCFt
X2FjdGl2YXRpb25PYnNlcnZlcik7CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgbV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0TlMoW1tXS1BsYWNlaG9sZGVy
TW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAx
LCAxKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0
b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgbV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0TlMoW1tXS1BsYWNlaG9sZGVyTW9kYWxXaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHls
ZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVC
dWZmZXJlZCBkZWZlcjpZRVNdKTsKICAgICBbbV9wbGFjZWhvbGRlcldpbmRvdyBzZXRSZWxlYXNl
ZFdoZW5DbG9zZWQ6Tk9dOwogICAgIAogICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNBcHBs
aWNhdGlvbldpbGxCZWNvbWVBY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5p
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVu
dVByb3h5TWFjLm1tCmluZGV4IGE0ODM5NjRkOGYxZjIyNmQ0YWVjYzI3Y2NiMGYwNzYwNzFiN2Ji
ZDEuLmJiNWFkN2MyMWU4MTBjYTM2NTY1ZWNjNzc3ZDA2YWYzMWJiMDI4NjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMu
bW0KQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTlNTaGFyaW5nU2VydmljZVNQ
SS5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQ2MywxMCArNDY0LDcgQEAg
dm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoY29u
c3QgVmVjdG9yPFdlYkNvbnRleHRNZW4KICAgICBbW1dLTWVudVRhcmdldCBzaGFyZWRNZW51VGFy
Z2V0XSBzZXRNZW51UHJveHk6dGhpc107CiAKICAgICBOU1BvaW50IG1lbnVMb2NhdGlvbiA9IFtt
X3dlYlZpZXcgY29udmVydFBvaW50Om1fY29udGV4dC5tZW51TG9jYXRpb24oKSB0b1ZpZXc6bmls
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VVcCBsb2NhdGlvbjpt
ZW51TG9jYXRpb24gbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjptX3dl
YlZpZXcud2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNr
Q291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJp
Z2h0TW91c2VVcCBsb2NhdGlvbjptZW51TG9jYXRpb24gbW9kaWZpZXJGbGFnczowIHRpbWVzdGFt
cDowIHdpbmRvd051bWJlcjptX3dlYlZpZXcud2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5p
bCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBbTlNNZW51IHBv
cFVwQ29udGV4dE1lbnU6bV9tZW51LmdldCgpIHdpdGhFdmVudDpldmVudCBmb3JWaWV3Om1fd2Vi
Vmlld107CiAKICAgICBpZiAobV9jb250ZXh0TWVudUxpc3RlbmVyKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCAw
YTc5OTEzNDZkMTVjY2ZhYzc3NDM1ZWYzMGVmOGRmODIyYWZhZTIzLi5mMDZiNTg0MmFjZDUzNGRm
ZTI0MTBmZWNhOWExYWRmYjZlYTk3Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5n
Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogCiBTT0ZUX0xJTktfU1RBR0VEX0ZSQU1FV09S
SyhXZWJJbnNwZWN0b3JVSSwgUHJpdmF0ZUZyYW1ld29ya3MsIEEpCkBAIC00OCwxMCArNDksNyBA
QCBTT0ZUX0xJTktfU1RBR0VEX0ZSQU1FV09SSyhXZWJJbnNwZWN0b3JVSSwgUHJpdmF0ZUZyYW1l
d29ya3MsIEEpCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLXN0YXRpYyBjb25zdCBO
U1VJbnRlZ2VyIHdpbmRvd1N0eWxlTWFzayA9IE5TVGl0bGVkV2luZG93TWFzayB8IE5TQ2xvc2Fi
bGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdp
bmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorc3RhdGljIGNvbnN0IE5TVUludGVnZXIgd2luZG93U3R5bGVNYXNr
ID0gTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIHwg
TlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXph
YmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogCiAvLyBUaGUgdGlt
ZSB3ZSBrZWVwIG91ciBXZWJWaWV3IGFsaXZlIGJlZm9yZSBjbG9zaW5nIGl0IGFuZCBpdHMgcHJv
Y2Vzcy4KIC8vIFJldXNpbmcgdGhlIFdlYlZpZXcgaW1wcm92ZXMgc3RhcnQgdXAgdGltZSBmb3Ig
cGVvcGxlIHRoYXQganVtcCBpbiBhbmQgb3V0IG9mIHRoZSBJbnNwZWN0b3IuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQppbmRl
eCBkMjlkMDg5MDUyYzg4N2FmYjg2NDIzODQ1NWFhMTg4NGI0ZGQ0NjVjLi5jMjI5ZmJkMGI4YmVi
YmFmMTE1YzM1M2U4M2M3ZTA4NDY1MDYwMzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV2ViUG9wdXBJdGVtLmgiCiAj
aW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtNzQsMTkgKzc1LDEzIEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnBvcHVsYXRl
KGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgTlNGb250ICpmCiAgICAgICAgICAg
ICBSZXRhaW5QdHI8TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+IHBhcmFncmFwaFN0eWxlID0gYWRv
cHROUyhbW05TUGFyYWdyYXBoU3R5bGUgZGVmYXVsdFBhcmFncmFwaFN0eWxlXSBtdXRhYmxlQ29w
eV0pOwogICAgICAgICAgICAgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24gPSBp
dGVtc1tpXS5tX3RleHREaXJlY3Rpb24gPT0gTFRSID8gTlNXcml0aW5nRGlyZWN0aW9uTGVmdFRv
UmlnaHQgOiBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtwYXJh
Z3JhcGhTdHlsZSBzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbjp3cml0aW5nRGlyZWN0aW9uXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtwYXJhZ3JhcGhT
dHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNMZWZ0VGV4dEFs
aWdubWVudCA6IE5TUmlnaHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRleHRE
aXJlY3Rpb24gPT0gTFRSID8gTlNUZXh0QWxpZ25tZW50TGVmdCA6IE5TVGV4dEFsaWdubWVudFJp
Z2h0XTsKICAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiBhdHRyaWJ1
dGVzID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoT2JqZWN0
c0FuZEtleXM6CiAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGUuZ2V0KCksIE5TUGFyYWdy
YXBoU3R5bGVBdHRyaWJ1dGVOYW1lLAogICAgICAgICAgICAgICAgIGZvbnQsIE5TRm9udEF0dHJp
YnV0ZU5hbWUsCiAgICAgICAgICAgICBuaWxdKTsKICAgICAgICAgICAgIGlmIChpdGVtc1tpXS5t
X2hhc1RleHREaXJlY3Rpb25PdmVycmlkZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU051bWJlcj4gd3JpdGluZ0RpcmVj
dGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3Jp
dGluZ0RpcmVjdGlvbiArIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU051bWJl
cj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVyIGFsbG9jXSBpbml0
V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
XSk7CiAgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IHdyaXRpbmdEaXJlY3Rpb25B
cnJheSA9IGFkb3B0TlMoW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0Rp
cmVjdGlvblZhbHVlLmdldCgpLCBuaWxdKTsKICAgICAgICAgICAgICAgICBbYXR0cmlidXRlcyBz
ZXRPYmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpOU1dyaXRpbmdEaXJl
Y3Rpb25BdHRyaWJ1dGVOYW1lXTsKICAgICAgICAgICAgIH0KQEAgLTE1NCwxOCArMTQ5LDE1IEBA
IHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYg
cmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAKICAgICBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXpl
OwogICAgIHN3aXRjaCAoZGF0YS5tZW51U2l6ZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgogICAgIGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNp
emVOb3JtYWw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNSZWd1bGFyQ29udHJvbFNpemU7Cisg
ICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDoK
LSAgICAgICAgY29udHJvbFNpemUgPSBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRy
b2xTaXplID0gTlNDb250cm9sU2l6ZVNtYWxsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdl
YkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaToKLSAgICAgICAgY29udHJv
bFNpemUgPSBOU01pbmlDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRy
b2xTaXplTWluaTsKICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAgICAgfQogCiAgICAgUmVmPFdlYlBvcHVwTWVudVByb3h5TWFjPiBwcm90ZWN0KCp0aGlzKTsK
QEAgLTE4MywxMyArMTc1LDExIEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1
cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgaWYgKCFt
X2NsaWVudC0+Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIE5TRXZl
bnQqIGluaXRpYXRpbmdOU0V2ZW50ID0gbV9jbGllbnQtPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNl
RG93bkV2ZW50KCktPm5hdGl2ZUV2ZW50KCk7Ci0gICAgaWYgKFtpbml0aWF0aW5nTlNFdmVudCB0
eXBlXSAhPSBOU0xlZnRNb3VzZURvd24pCisgICAgaWYgKFtpbml0aWF0aW5nTlNFdmVudCB0eXBl
XSAhPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24pCiAgICAgICAgIHJldHVybjsKIAotICAgIE5T
RXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3Vz
ZVVwCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBl
Ok5TRXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9jYXRpb246W2luaXRpYXRpbmdOU0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltp
bml0aWF0aW5nTlNFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ05TRXZlbnQgdGltZXN0YW1w
XQpAQCAtMTk4LDEzICsxODgsMTQgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1Bv
cHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6W2luaXRpYXRpbmdO
U0V2ZW50IGV2ZW50TnVtYmVyXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xpY2tDb3VudDpbaW5pdGlhdGluZ05TRXZlbnQgY2xpY2tDb3VudF0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2luaXRpYXRpbmdO
U0V2ZW50IHByZXNzdXJlXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBb
TlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107CisgICAgZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW21fd2ViVmlldyB3aW5kb3dd
CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgZmFrZUV2ZW50ID0gW05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW21fd2ViVmlldyB3aW5kb3ddIGNvbnZlcnRTY3Jl
ZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAgICAgICAgICAgICAgICAgICAg
ICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZp
ZXJGbGFnczpbaW5pdGlhdGluZ05TRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFt
cF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W2luaXRpYXRp
bmdOU0V2ZW50IHdpbmRvd051bWJlcl0KQEAgLTIxMiw3ICsyMDMsNiBAQCB2b2lkIFdlYlBvcHVw
TWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJl
Y3Rpb24gdGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjow
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlja0NvdW50OjAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNd
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KaW5kZXggNWVkZTU2ZWVlNDBhY2ZkYjk5MDEx
OWRlN2FjZTkxOGU2NzhiYzY2Ni4uMTI1MThkZjMzNGNmM2ZkZDY1OGRmODkxOWMzMzYxYjA4NDJl
MmRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9E
ZXByZWNhdGVkUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQpAQCAtODAsNiArODAsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuaD4KICNpbXBvcnQgPFdlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKQEAgLTEyNzgsMzMgKzEyNzksMjggQEAgdm9pZCBQREZQbHVnaW46OmRpZEV2
YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJpbmcmKQogICAgIAogc3Rh
dGljIE5TVUludGVnZXIgbW9kaWZpZXJGbGFnc0Zyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYg
ZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJu
IChldmVudC5zaGlmdEtleSgpID8gTlNTaGlmdEtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVu
dC5jb250cm9sS2V5KCkgPyBOU0NvbnRyb2xLZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQu
YWx0S2V5KCkgPyBOU0FsdGVybmF0ZUtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5tZXRh
S2V5KCkgPyBOU0NvbW1hbmRLZXlNYXNrIDogMCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ1No
aWZ0IDogMCkKKyAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbnRyb2wgOiAwKQorICAgICAgICB8IChldmVudC5hbHRLZXkoKSA/IE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24gOiAwKQorICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29tbWFuZCA6IDApOwogfQogICAgIAogc3RhdGljIGJvb2wgZ2V0RXZlbnRU
eXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50
VHlwZSkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2gg
KGV2ZW50LnR5cGUoKSkgewogICAgIGNhc2UgV2ViRXZlbnQ6OktleURvd246Ci0gICAgICAgIGV2
ZW50VHlwZSA9IE5TS2V5RG93bjsKKyAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlE
b3duOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIFdlYkV2ZW50OjpLZXlVcDoKLSAg
ICAgICAgZXZlbnRUeXBlID0gTlNLZXlVcDsKKyAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5
cGVLZXlVcDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VE
b3duOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihl
dmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9u
OgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEb3duOworICAgICAgICAgICAg
ZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAg
ICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEb3duOworICAgICAgICAgICAgZXZlbnRUeXBl
ID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMxMiwxMCAr
MTMwOCwxMCBAQCBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2Vi
RXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGNhc2UgV2ViRXZlbnQ6Ok1v
dXNlVXA6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+
KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0
b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZVVwOworICAgICAgICAgICAg
ZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VVcDsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAg
ICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlVXA7CisgICAgICAgICAgICBldmVudFR5cGUgPSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMyMywxMyArMTMxOSwx
MyBAQCBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQm
IGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlTW92
ZToKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4oZXZl
bnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoK
LSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRHJhZ2dlZDsKKyAgICAgICAgICAg
IGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgotICAg
ICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlRHJhZ2dlZDsKKyAgICAgICAgICAgIGV2
ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjoKLSAgICAgICAg
ICAgIGV2ZW50VHlwZSA9IE5TTW91c2VNb3ZlZDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5T
RXZlbnRUeXBlTW91c2VNb3ZlZDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMzNyw3ICsxMzMzLDYgQEAg
c3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVu
dCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogICAgIAogTlNFdmVu
dCAqUERGUGx1Z2luOjpuc0V2ZW50Rm9yV2ViTW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50
JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCmluZGV4IDZjNjBiZGRlOTVm
ZGQzMTdmNmI3MTRlMWY0NGY2ZWViMmYzM2QzMGIuLjYwMzFjNTkwZGMyMzFlY2NmZWVhMjBhMDQ3
Zjg1Njk2Y2E1ZDhhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQpAQCAtNDQs
NiArNDQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEFyZWFFbGVtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgor
I2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01MywyMSArNTQsMTggQEAgdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogc3RhdGljIGNvbnN0IFN0cmluZyBjc3NBbGlnbm1lbnRWYWx1ZUZv
ck5TVGV4dEFsaWdubWVudChOU1RleHRBbGlnbm1lbnQgYWxpZ25tZW50KQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7Ci0gICAg
Y2FzZSBOU0xlZnRUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50TGVmdDoK
ICAgICAgICAgcmV0dXJuICJsZWZ0IjsKLSAgICBjYXNlIE5TUmlnaHRUZXh0QWxpZ25tZW50Ogor
ICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50UmlnaHQ6CiAgICAgICAgIHJldHVybiAicmlnaHQiOwot
ICAgIGNhc2UgTlNDZW50ZXJUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50
Q2VudGVyOgogICAgICAgICByZXR1cm4gImNlbnRlciI7Ci0gICAgY2FzZSBOU0p1c3RpZmllZFRl
eHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZpZWQ6CiAgICAgICAg
IHJldHVybiAianVzdGlmeSI7Ci0gICAgY2FzZSBOU05hdHVyYWxUZXh0QWxpZ25tZW50OgorICAg
IGNhc2UgTlNUZXh0QWxpZ25tZW50TmF0dXJhbDoKICAgICAgICAgcmV0dXJuICItd2Via2l0LXN0
YXJ0IjsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdD
bGllbnRNYWMubW0KaW5kZXggYTM2ZjNiMzIzYWI5MTY1MTQ3N2JkM2M3YmUyOGM2YTIzZGU5YjE3
ZC4uNjI2ZTQzNmM2YWM0ZmU2YjlhN2ViNTNjMmQzNTZiZjc5NmZmNDQ3YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVu
dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC00Niw2ICs0Niw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1N0cmluZ1RydW5jYXRvci5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAj
aW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNjMsMTAgKzY0LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8
U2hhcmVhYmxlQml0bWFwPiBjb252ZXJ0SW1hZ2VUb0JpdG1hcChOU0ltYWdlICppbWFnZSwgY29u
c3QgSW4KICAgICBSZXRhaW5QdHI8TlNHcmFwaGljc0NvbnRleHQ+IHNhdmVkQ29udGV4dCA9IFtO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07CiAKICAgICBbTlNHcmFwaGljc0NvbnRl
eHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdp
dGhHcmFwaGljc1BvcnQ6Z3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVk
OllFU11dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtpbWFnZSBk
cmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFw
LT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9z
aXRlU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5TTWFr
ZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFwLT5zaXplKCkuaGVpZ2h0
KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25T
b3VyY2VPdmVyIGZyYWN0aW9uOjEgcmVzcGVjdEZsaXBwZWQ6WUVTIGhpbnRzOm5pbF07CiAKICAg
ICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6c2F2ZWRDb250ZXh0LmdldCgp
XTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294111</attachid>
            <date>2016-11-07 18:34:58 -0800</date>
            <delta_ts>2016-11-07 18:38:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107183050.patch</filename>
            <type>text/plain</type>
            <size>158822</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjczZjNkMDM3MjQ4Y2Q2YzM1ZTI0MWU3YjJkZGRmNDJmYjJjMGE4ZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODUsOCArMTg1LDggQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
TlNXcml0aW5nRGlyZWN0aW9uKSB7CiB9IE5TX0VOVU1fQVZBSUxBQkxFX0lPUyg2XzApOwogCiB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBOU1RleHRXcml0aW5nRGlyZWN0aW9uKSB7Ci0gICAg
TlNUZXh0V3JpdGluZ0RpcmVjdGlvbkVtYmVkZGluZyAgICAgPSAoMCA8PCAxKSwKLSAgICBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGUgICAgICA9ICgxIDw8IDEpCisgICAgTlNXcml0aW5n
RGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVjdGlv
bk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQogfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoN18wKTsK
IAogZW51bSB7CkBAIC0xMjEwLDggKzEyMTAsNiBAQCBOU0RpY3Rpb25hcnkgKkhUTUxDb252ZXJ0
ZXI6OmNvbXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICAg
ICAgU3RyaW5nIHRleHRBbGlnbiA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGNvcmVC
bG9ja0VsZW1lbnQsIENTU1Byb3BlcnR5VGV4dEFsaWduKTsKICAgICAgICAgaWYgKHRleHRBbGln
bi5sZW5ndGgoKSkgewogICAgICAgICAgICAgLy8gV2ViS2l0IGNhbiByZXR1cm4gLWtodG1sLWxl
ZnQsIC1raHRtbC1yaWdodCwgLWtodG1sLWNlbnRlcgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgogICAgICAgICAgICAgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgibGVmdCIpKQog
ICAgICAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25t
ZW50TGVmdF07CiAgICAgICAgICAgICBlbHNlIGlmICh0ZXh0QWxpZ24uZW5kc1dpdGgoInJpZ2h0
IikpCkBAIC0xMjIwLDcgKzEyMTgsNiBAQCBOU0RpY3Rpb25hcnkgKkhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICAgICAgICAg
ICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVudENlbnRlcl07
CiAgICAgICAgICAgICBlbHNlIGlmICh0ZXh0QWxpZ24uZW5kc1dpdGgoImp1c3RpZnkiKSkKICAg
ICAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVu
dEp1c3RpZmllZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIH0KIAog
ICAgICAgICBTdHJpbmcgZGlyZWN0aW9uID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUo
Y29yZUJsb2NrRWxlbWVudCwgQ1NTUHJvcGVydHlEaXJlY3Rpb24pOwpAQCAtMTg1MSwxOCArMTg0
OCwxMiBAQCBCT09MIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzRWxlbWVudChFbGVtZW50JiBlbGVt
ZW50LCBOU0ludGVnZXIgZGVwdGgpCiAgICAgZWxzZSB7CiAgICAgICAgIFN0cmluZyBiaWRpID0g
X2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVydHlVbmljb2Rl
QmlkaSk7CiAgICAgICAgIGlmIChiaWRpID09ICJlbWJlZCIpIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIE5TVUludGVnZXIgdmFsID0gTlNUZXh0V3Jp
dGluZ0RpcmVjdGlvbkVtYmVkZGluZzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgICAgIE5TVUludGVnZXIgdmFsID0gTlNXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5nOwog
ICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQsIENT
U1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0gTlNX
cml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJlY3Rp
b25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6dmFs
XV07CiAgICAgICAgIH0gZWxzZSBpZiAoYmlkaSA9PSAiYmlkaS1vdmVycmlkZSIpIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIE5TVUludGVnZXIgdmFs
ID0gTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25P
dmVycmlkZTsKICAgICAgICAgICAgIGlmIChfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShl
bGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbikgPT0gInJ0bCIpCiAgICAgICAgICAgICAgICAg
dmFsIHw9IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICAgICAgW193cml0
aW5nRGlyZWN0aW9uQXJyYXkgYWRkT2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJ
bnRlZ2VyOnZhbF1dOwpAQCAtMjA2MywxNCArMjA1NCw3IEBAIHZvaWQgSFRNTENvbnZlcnRlcjo6
X2FkZE1hcmtlcnNUb0xpc3QoTlNUZXh0TGlzdCAqbGlzdCwgTlNSYW5nZSByYW5nZSkKICAgICAg
ICAgICAgICAgICAgICAgdGFiID0gW1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhU
eXBlOk5TTGVmdFRhYlN0b3BUeXBlIGxvY2F0aW9uOm1hcmtlckxvY2F0aW9uXTsKICAgICAgICAg
ICAgICAgICAgICAgW25ld1N0eWxlIGFkZFRhYlN0b3A6dGFiXTsKICAgICAgICAgICAgICAgICAg
ICAgW3RhYiByZWxlYXNlXTsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICAgICAgICAgICAg
IHRhYiA9IFtbUGxhdGZvcm1OU1RleHRUYWIgYWxsb2NdIGluaXRXaXRoVGV4dEFsaWdubWVudDpO
U1RleHRBbGlnbm1lbnROYXR1cmFsIGxvY2F0aW9uOmxpc3RMb2NhdGlvbiBvcHRpb25zOkB7IH1d
OwotI2Vsc2UKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAg
ICAgICAgICAgdGFiID0gW1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxp
Z25tZW50Ok5TTmF0dXJhbFRleHRBbGlnbm1lbnQgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlv
bnM6QHsgfV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKICAgICAgICAg
ICAgICAgICAgICAgW25ld1N0eWxlIGFkZFRhYlN0b3A6dGFiXTsKICAgICAgICAgICAgICAgICAg
ICAgW3RhYiByZWxlYXNlXTsKICAgICAgICAgICAgICAgICAgICAgW19hdHRyU3RyIGFkZEF0dHJp
YnV0ZTpOU1BhcmFncmFwaFN0eWxlQXR0cmlidXRlTmFtZSB2YWx1ZTpuZXdTdHlsZSByYW5nZTpw
YXJhZ3JhcGhSYW5nZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVu
dEhhbmRsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW0KaW5kZXggMzM1ZTYyNjE0OGU5MzI5ZjVkYWNmMzMzYzNjMThjYzY4NjI0NTYxZC4uZDFlODll
MjE2YzQxMzRkMTQxMjY2NmVhMjA3ZWI0MTgyMWEwNGNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtNjcsNiArNjcsNyBAQAogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRT
KQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL0V2ZW50SGFuZGxlck1hY0dlc3R1cmUuY3BwPgpA
QCAtMTUwLDEwICsxNTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZlbnQoTlNFdmVudCAq
ZXZlbnQpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0tl
eURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFTU0VSVChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlEb3duIHx8
IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleVVwKTsKIAogICAgIEN1cnJlbnRFdmVudFNj
b3BlIHNjb3BlKGV2ZW50LCBuaWwpOwogICAgIHJldHVybiBrZXlFdmVudChQbGF0Zm9ybUV2ZW50
RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KGV2ZW50KSk7CkBAIC0yMDYsMTIg
KzIwNCw5IEBAIHN0YXRpYyBib29sIGxhc3RFdmVudElzTW91c2VVcCgpCiAKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgTlNFdmVudCAqY3VycmVudEV2ZW50QWZ0ZXJIYW5k
bGluZ01vdXNlRG93biA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIHJldHVybiBFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50
KCkgIT0gY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNlRG93bgotICAgICAgICAmJiBbY3Vy
cmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNlRG93biB0eXBlXSA9PSBOU0xlZnRNb3VzZVVwCisg
ICAgICAgICYmIFtjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5T
RXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAgICAgJiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxp
bmdNb3VzZURvd24gdGltZXN0YW1wXSA+PSBbRXZlbnRIYW5kbGVyOjpjdXJyZW50TlNFdmVudCgp
IHRpbWVzdGFtcF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTM3NSw1OCArMzcwLDU1
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzU3ViZnJhbWVFdmVudFRvU3ViZnJhbWUoTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNo
IChbY3VycmVudE5TRXZlbnQoKSB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJh
Z2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5T
UmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICAvLyBUaGlzIGNoZWNrIGlzIGJvZ3VzIGFu
ZCByZXN1bHRzIGluIDxyZGFyOi8vNjgxMzgzMD4sIGJ1dCByZW1vdmluZyBpdCBicmVha3MgYSBu
dW1iZXIgb2YKLSAgICAgICAgICAgIC8vIGxheW91dCB0ZXN0cy4KLSAgICAgICAgICAgIGlmICgh
bV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFn
Z2VkOgorICAgICAgICAvLyBUaGlzIGNoZWNrIGlzIGJvZ3VzIGFuZCByZXN1bHRzIGluIDxyZGFy
Oi8vNjgxMzgzMD4sIGJ1dCByZW1vdmluZyBpdCBicmVha3MgYSBudW1iZXIgb2YKKyAgICAgICAg
Ly8gbGF5b3V0IHRlc3RzLgorICAgICAgICBpZiAoIW1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAg
ICAgICAgICAgaWYgKHN1YmZyYW1lLT5wYWdlKCktPmRyYWdDb250cm9sbGVyKCkuZGlkSW5pdGlh
dGVEcmFnKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoc3Vi
ZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWcoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoK
LSAgICAgICAgICAgIC8vIFNpbmNlIHdlJ3JlIHBhc3NpbmcgaW4gY3VycmVudE5TRXZlbnQoKSBo
ZXJlLCB3ZSBjYW4gY2FsbAotICAgICAgICAgICAgLy8gaGFuZGxlTW91c2VNb3ZlRXZlbnQoKSBk
aXJlY3RseSwgc2luY2UgdGhlIHNhdmUvcmVzdG9yZSBvZgotICAgICAgICAgICAgLy8gY3VycmVu
dE5TRXZlbnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0Lgot
ICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAgICAg
ICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VF
dmVudCgpLCBob3ZlcmVkTm9kZSk7Ci0gICAgICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vidmll
dyA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU1vdXNlTW92ZWQ6CisgICAgICAgIC8vIFNpbmNlIHdlJ3JlIHBhc3NpbmcgaW4gY3VycmVudE5T
RXZlbnQoKSBoZXJlLCB3ZSBjYW4gY2FsbAorICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVu
dCgpIGRpcmVjdGx5LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCisgICAgICAgIC8vIGN1cnJl
bnROU0V2ZW50KCkgdGhhdCBtb3VzZU1vdmVkKCkgZG9lcyB3b3VsZCBoYXZlIG5vIGVmZmVjdC4K
KyAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7CisgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKKyAgICAgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxl
cigpLmhhbmRsZU1vdXNlTW92ZUV2ZW50KGN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSwgaG92
ZXJlZE5vZGUpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3du
OiB7Ci0gICAgICAgICAgICBOb2RlKiBub2RlID0gZXZlbnQudGFyZ2V0Tm9kZSgpOwotICAgICAg
ICAgICAgaWYgKCFub2RlKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIGF1dG8qIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKLSAgICAgICAgICAgIGlmICgh
aXM8UmVuZGVyV2lkZ2V0PihyZW5kZXJlcikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgV2lkZ2V0KiB3aWRnZXQgPSBkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KCpy
ZW5kZXJlcikud2lkZ2V0KCk7Ci0gICAgICAgICAgICBpZiAoIXdpZGdldCB8fCAhd2lkZ2V0LT5p
c0ZyYW1lVmlldygpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IGlmICghcGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoZG93bmNhc3Q8UmVuZGVyV2lk
Z2V0PihyZW5kZXJlcikpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIG1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6IHsKLSAgICAgICAg
ICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQotICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgICAgIEFTU0VSVCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOwot
ICAgICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSB0cnVlOwotICAgICAgICAgICAg
c3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KGN1cnJlbnRQ
bGF0Zm9ybU1vdXNlRXZlbnQoKSk7Ci0gICAgICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vidmll
dyA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAg
ZGVmYXVsdDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjogeworICAgICAgICBO
b2RlKiBub2RlID0gZXZlbnQudGFyZ2V0Tm9kZSgpOworICAgICAgICBpZiAoIW5vZGUpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGF1dG8qIHJlbmRlcmVyID0gbm9kZS0+cmVu
ZGVyZXIoKTsKKyAgICAgICAgaWYgKCFpczxSZW5kZXJXaWRnZXQ+KHJlbmRlcmVyKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgV2lkZ2V0KiB3aWRnZXQgPSBkb3duY2FzdDxS
ZW5kZXJXaWRnZXQ+KCpyZW5kZXJlcikud2lkZ2V0KCk7CisgICAgICAgIGlmICghd2lkZ2V0IHx8
ICF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGlmICghcGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoZG93bmNhc3Q8UmVuZGVy
V2lkZ2V0PihyZW5kZXJlcikpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBt
X21vdXNlRG93bldhc0luU3ViZnJhbWUgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOiB7CisgICAgICAgIGlmICghbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpKTsKKyAgICAg
ICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
IAogICAgIHJldHVybiBmYWxzZTsKQEAgLTQ3OSwxMSArNDcxLDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW4KICAgICAgICAgcmV0dXJuIGRvd25jYXN0PEZyYW1lVmlldz4od2lkZ2V0KS5mcmFt
ZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAgICAgfQog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtjdXJyZW50TlNF
dmVudCgpIHR5cGVdICE9IE5TU2Nyb2xsV2hlZWwgfHwgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcp
CisgICAgaWYgKFtjdXJyZW50TlNFdmVudCgpIHR5cGVdICE9IE5TRXZlbnRUeXBlU2Nyb2xsV2hl
ZWwgfHwgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIEFTU0VSVChub2RlVmlldyk7CiAgICAg
QVNTRVJUKFtub2RlVmlldyBzdXBlcnZpZXddKTsKQEAgLTU4NiwxMiArNTc1LDEwIEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcoTlNFdmVudCAq
aW5pdGlhdGluZ0V2ZW50KQogCiAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsK
ICAgICBpbnQgZXZlbnRUeXBlID0gW2luaXRpYXRpbmdFdmVudCB0eXBlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoZXZlbnRUeXBlID09IE5TTGVmdE1vdXNl
RG93biB8fCBldmVudFR5cGUgPT0gTlNLZXlEb3duKSB7CisgICAgaWYgKGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd24gfHwgZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlS2V5RG93
bikgewogICAgICAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBuaWw7Ci0gICAgICAgIGlmIChldmVu
dFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duKSB7Ci0gICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAorICAgICAgICBpZiAoZXZlbnRU
eXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bikgeworICAgICAgICAgICAgZmFrZUV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlh
dGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0
aWF0aW5nRXZlbnQgdGltZXN0YW1wXQpAQCAtNjAyLDggKzU4OSw4IEBAIHZvaWQgRXZlbnRIYW5k
bGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGlu
Z0V2ZW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNz
dXJlOltpbml0aWF0aW5nRXZlbnQgcHJlc3N1cmVdXTsKICAgICAgICAgCiAgICAgICAgICAgICBb
TlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107Ci0gICAgICAgIH0gZWxzZSB7
IC8vIGV2ZW50VHlwZSA9PSBOU0tleURvd24KLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2
ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAorICAgICAgICB9IGVsc2UgeyAvLyBldmVudFR5
cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duCisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNFdmVu
dCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W2luaXRpYXRpbmdFdmVudCBsb2NhdGlvbklu
V2luZG93XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFn
czpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nRXZlbnQgdGltZXN0YW1wXQpA
QCAtNjE5LDggKzYwNiwxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVudHNBZnRl
cldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCByZWFsbHkgZ2V0IHRoZSBjdXJyZW50IG1vZGlmaWVyRmxhZ3MgaGVyZSwg
YnV0IHRoZXJlJ3Mgbm8gd2F5IHRvIHBvbGwKICAgICAgICAgLy8gdGhlbSBpbiBDb2NvYSwgYW5k
IGJlY2F1c2UgdGhlIGV2ZW50IHN0cmVhbSB3YXMgc3RvbGVuIGJ5IHRoZSBDYXJib24gbWVudSBj
b2RlIHdlIGhhdmUKICAgICAgICAgLy8gbm8gdXAtdG8tZGF0ZSBjYWNoZSBvZiB0aGVtIGFueXdo
ZXJlLgotICAgICAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNN
b3VzZU1vdmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlv
bjpbW3ZpZXctPnBsYXRmb3JtV2lkZ2V0KCkgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltO
U0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW3ZpZXctPnBsYXRmb3JtV2lkZ2V0KCkgd2lu
ZG93XQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2Nh
dGlvbl1dCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxh
Z3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5p
dGlhdGluZ0V2ZW50IHRpbWVzdGFtcF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2luZG93TnVtYmVyOltpbml0aWF0aW5nRXZlbnQgd2luZG93TnVtYmVyXQpAQCAtNjI4LDcg
KzYxOSw2IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJh
Y2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsaWNrQ291bnQ6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIFtO
U0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKICAgICB9CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRleCBhNzRk
YTg1YWNlY2EzYzY2OThkZDE1NmFiMzFhNmM5NzFhMzU0ZTZlLi4xNGZmMGU3YzdkOWU2OWRlNGZj
YmIzNGNiMWZiNThlNDhmNjcxZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIlF1YXJ0ekNv
cmVTUEkuaCIKICNpbXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKICNpbXBvcnQgIldlYkFjdGlvbkRp
c2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRp
YmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIGNvbnN0IENGVGltZUludGVydmFsIGJvdW5jZUFuaW1h
dGlvbkR1cmF0aW9uID0gMC4xMjsKIGNvbnN0IENGVGltZUludGVydmFsIGJvdW5jZVdpdGhDcm9z
c2ZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKQEAgLTQ1NywxMyArNDU4LDEwIEBAIHZvaWQg
VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4g
dGV4dEluZGljYXRvciwgQ0dSCiAgICAgdmVydGljYWxNYXJnaW4gPSBDR0NlaWxpbmcodmVydGlj
YWxNYXJnaW4pOwogCiAgICAgQ0dSZWN0IGNvbnRlbnRSZWN0ID0gQ0dSZWN0SW5zZXQodGV4dEJv
dW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMsIC1ob3Jpem9udGFsTWFyZ2luLCAtdmVydGlj
YWxNYXJnaW4pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TUmVj
dCB3aW5kb3dDb250ZW50UmVjdCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1lUmVjdDpO
U1JlY3RGcm9tQ0dSZWN0KGNvbnRlbnRSZWN0KSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93
TWFza107CisgICAgTlNSZWN0IHdpbmRvd0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRS
ZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZyb21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpO
U1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3NdOwogICAgIE5TUmVjdCBpbnRlZ3JhbFdpbmRvd0Nv
bnRlbnRSZWN0ID0gTlNJbnRlZ3JhbFJlY3Qod2luZG93Q29udGVudFJlY3QpOwogICAgIE5TUG9p
bnQgZnJhY3Rpb25hbFRleHRPZmZzZXQgPSBOU01ha2VQb2ludCh3aW5kb3dDb250ZW50UmVjdC5v
cmlnaW4ueCAtIGludGVncmFsV2luZG93Q29udGVudFJlY3Qub3JpZ2luLngsIHdpbmRvd0NvbnRl
bnRSZWN0Lm9yaWdpbi55IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueSk7Ci0g
ICAgbV90ZXh0SW5kaWNhdG9yV2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0OmludGVncmFsV2luZG93Q29udGVudFJlY3Qgc3R5bGVNYXNrOk5TQm9y
ZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5P
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgbV90ZXh0SW5kaWNhdG9yV2lu
ZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmludGVn
cmFsV2luZG93Q29udGVudFJlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVz
cyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBbbV90ZXh0
SW5kaWNhdG9yV2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBjbGVhckNvbG9yXV07
CiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRPcGFxdWU6Tk9dOwogICAgIFttX3RleHRJ
bmRpY2F0b3JXaW5kb3cgc2V0SWdub3Jlc01vdXNlRXZlbnRzOllFU107CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tCmluZGV4IDVhNDlmM2FiM2Jk
MGU0YjJhMjJlNDRmYjVjMTJjNmNiODdiNDVjZTMuLjJiNDg1ZDlkYjU3NzY5YTkyMTg2NmMwMDUz
NmRmNjgxOTQ4MTFmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9JY29uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9JY29uTWFjLm1tCkBAIC0yOCw3ICsyOCw4IEBACiAjaW1wb3J0ICJMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIlVUSVV0aWxpdGllcy5oIgogI2ltcG9ydCA8d3Rm
L1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05OCwxMCArOTksNyBA
QCB2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQogCiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2FsQ3VycmVu
dEdDKGNvbnRleHQpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
W21fbnNJbWFnZSBkcmF3SW5SZWN0OnJlY3QgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbbV9u
c0ltYWdlIHNpemVdLndpZHRoLCBbbV9uc0ltYWdlIHNpemVdLmhlaWdodCkgb3BlcmF0aW9uOk5T
Q29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBbbV9uc0ltYWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VS
ZWN0KDAsIDAsIFttX25zSW1hZ2Ugc2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0
KSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4w
Zl07CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJz
b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4
IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5YzBiZDBmNjY5ZWIyNTRkMGMuLjcyOGQzNDRhOTQ1MDM0
YjljN2EyMDg1ZjQ1NjNkYzFiYjY5NjRlNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9DdXJzb3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0N1cnNvck1hYy5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oIgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIFdlYkNvcmVDdXJzb3JCdW5kbGUgOiBOU09i
amVjdCB7IH0KIEBlbmQKQEAgLTY0LDEwICs2NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJz
b3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJbWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RT
CiAgICAgICAgIE5TUmVjdCBmcm9tUmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgaW1hZ2UtPndpZHRo
KCksIGltYWdlLT5oZWlnaHQoKSk7CiAKICAgICAgICAgW2V4cGFuZGVkSW1hZ2UgbG9ja0ZvY3Vz
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW25zSW1hZ2Ug
ZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRl
U291cmNlT3ZlciBmcmFjdGlvbjoxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgW25zSW1hZ2UgZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0
aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwogICAgICAg
ICBbZXhwYW5kZWRJbWFnZSB1bmxvY2tGb2N1c107CiAKICAgICAgICAgcmV0dXJuIGFkb3B0TlMo
W1tOU0N1cnNvciBhbGxvY10gaW5pdFdpdGhJbWFnZTpleHBhbmRlZEltYWdlLmdldCgpIGhvdFNw
b3Q6aG90U3BvdF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMu
bW0KaW5kZXggNjgyNDZiZWZhNTIzZWRmZjNiNjA1YzYwMTE4NzE5ZDQ3Mjk4ZDA5Yi4uMGZmNDIw
MjAwY2M4YmQzNDg3ZTQ1NmY3NzkwZWRlZTk1ZThmNTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJT
dHJpbmdUcnVuY2F0b3IuaCIKICNpbXBvcnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzUsMTAgKzc2LDcgQEAgUmV0
YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihSZXRhaW5QdHI8TlNJ
bWFnZT4gaW1hZ2UsIGZsb2F0IGQKICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVkSW1h
Z2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBhbGxvY10gaW5pdFdpdGhTaXplOltpbWFnZS5nZXQoKSBz
aXplXV0pOwogICAgIAogICAgIFtkaXNzb2x2ZWRJbWFnZS5nZXQoKSBsb2NrRm9jdXNdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtpbWFnZS5nZXQoKSBkcmF3QXRQ
b2ludDpOU1plcm9Qb2ludCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXplXS53
aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdodCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weSBmcmFj
dGlvbjpkZWx0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlLmdl
dCgpIGRyYXdBdFBvaW50Ok5TWmVyb1BvaW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2lt
YWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGluZ09wZXJhdGlvbkNvcHkgZnJhY3Rpb246ZGVsdGFdOwogICAgIFtkaXNzb2x2ZWRJbWFnZS5n
ZXQoKSB1bmxvY2tGb2N1c107CiAKICAgICByZXR1cm4gZGlzc29sdmVkSW1hZ2U7CkBAIC0xMTks
MTAgKzExNyw4IEBAIFJldGFpblB0cjxOU0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2Uo
SW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpCiAgICAgICAgICAgICBbY29jb2FU
cmFuc2Zvcm0uZ2V0KCkgc2V0VHJhbnNmb3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1
Y3QqKSZ0cmFuc2Zvcm1dOwogICAgICAgICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIGNvbmNh
dF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtp
bWFnZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01h
a2VSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29t
cG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxLjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICAgICAgW2ltYWdlLT5zbmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRl
c3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdo
dCgpKSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246
MS4wXTsKKwogICAgICAgICAgICAgW3JvdGF0ZWREcmFnSW1hZ2UuZ2V0KCkgdW5sb2NrRm9jdXNd
OwogCiAgICAgICAgICAgICByZXR1cm4gcm90YXRlZERyYWdJbWFnZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tCmluZGV4IGFmMGEzOTkyYjY2ZTlkNmZmYzAx
NzcxMjQ4NTc2MjZhMDA1YTVlOTAuLmI5Y2M1NDVhOTg0OTM0ZDU0NjBkZGJkZjViZDRlYzNlYTcx
NTkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQpA
QCAtMjUsMTYgKzI1LDE0IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVu
dExvb3AuaCIKKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQog
ewogICAgIFtOU0FwcCBzZXRXaW5kb3dzTmVlZFVwZGF0ZTpZRVNdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVu
dE1hdGNoaW5nTWFzazpOU0FueUV2ZW50TWFzayB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRp
bWVJbnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1
ZXVlOllFU11dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtOU0FwcCBzZW5k
RXZlbnQ6W05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0V2ZW50TWFza0FueSB1bnRpbERh
dGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0Rl
ZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU11dOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4
IGE1ZGYzNDc0YzMxMWM2YTc1NjFkN2Y0ZDQ0NTUzMTRhYTA0ZDAwNzAuLjFjNGUzYzE5ODAzMWNm
ZmE2ZmE5YjY2NTI3MWFiZmE0NzMyZDc2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC01NSw2ICs1NSw3IEBACiAjaW1wb3J0ICJtYXJrdXAu
aCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
I2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2ltcG9ydCA8d3RmL3VuaWNvZGUv
Q2hhcmFjdGVyTmFtZXMuaD4KIApAQCAtNjUzLDExICs2NTQsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6
OnNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBsb2NhdGlv
bikKICAgICAvLyBIYWNrOiBXZSBtdXN0IHBvc3QgYW4gZXZlbnQgdG8gd2FrZSB1cCB0aGUgTlNE
cmFnTWFuYWdlciwgd2hpY2ggaXMgc2l0dGluZyBpbiBhIG5leHRFdmVudCBjYWxsCiAgICAgLy8g
dXAgdGhlIHN0YWNrIGZyb20gdXMgYmVjYXVzZSB0aGUgQ29yZUZvdW5kYXRpb24gZHJhZyBtYW5h
Z2VyIGRvZXMgbm90IHVzZSB0aGUgcnVuIGxvb3AgYnkgaXRzZWxmLgogICAgIC8vIFRoaXMgaXMg
dGhlIG1vc3QgaW5ub2N1b3VzIGV2ZW50IHRvIHVzZSwgcGVyIEtyaXN0ZW4gRm9yc3Rlci4KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9p
bnQKKyAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9pbnQKICAgICAgICAgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjowIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVy
OjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDpZRVNdOwogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMubW0KaW5kZXggZDM0ZDZlYWU5NDhmN2FmY2JhYjMzMDMxNGZkY2JhNzhlOWU0MDBiOC4u
MGQyZTMxOGVjZGZiMTMwNDIzODc3YTczMmQ4MmY4NjkxOTc2OTdlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpA
QCAtNTIsMjcgKzUyLDI0IEBAIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNF
dmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVk
KF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0g
ICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJl
c3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2Vk
OgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVy
ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92
ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNl
IE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBv
aW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOwotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIHsgMCwgMCB9OworICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91
c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246
CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKKyAgICAg
ICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdp
bmRvd10pOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiB7IDAsIDAgfTsKICAgICB9CiB9
CiAKQEAgLTgwLDMzICs3NywzMCBAQCBzdGF0aWMgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2
ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5
cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEID49IDEwMTAwMwotICAgICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNl
IE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAg
ICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAg
ICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmln
aHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNh
c2UgTlNTY3JvbGxXaGVlbDogewotICAgICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUg
aXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93
VmlldyBpcyBmbGlwcGVkLgotICAgICAgICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNv
b3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2lu
ZG93LgotICAgICAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2lu
ZG93XTsKLSAgICAgICAgICAgIGlmICh3aW5kb3dWaWV3KQotICAgICAgICAgICAgICAgIGxvY2F0
aW9uID0gW3dpbmRvd1ZpZXcgY29udmVydFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0g
ICAgICAgICAgICByZXR1cm4gSW50UG9pbnQobG9jYXRpb24pOwotICAgICAgICB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1
cm4gSW50UG9pbnQoKTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVm
dE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmln
aHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6IHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxs
IGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mg
d2luZG93VmlldyBpcyBmbGlwcGVkLgorICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkg
Y29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdX
aW5kb3cuCisgICAgICAgIE5TUG9pbnQgbG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRv
d107CisgICAgICAgIGlmICh3aW5kb3dWaWV3KQorICAgICAgICAgICAgbG9jYXRpb24gPSBbd2lu
ZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9jYXRpb24gZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgcmV0
dXJuIEludFBvaW50KGxvY2F0aW9uKTsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIEludFBvaW50KCk7CiAgICAgfQogfQogCkBAIC0xMTQsNzIgKzEwOCw2MyBAQCBzdGF0aWMg
TW91c2VCdXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBz
d2l0Y2ggKFtldmVudCB0eXBlXSkgewogI2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlw
ZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93
bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5T
UmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNh
c2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsK
LSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1
cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIExlZnRCdXR0
b247CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2Vk
OgorICAgICAgICByZXR1cm4gUmlnaHRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9u
OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBOb0J1dHRvbjsKICAgICB9CiB9CiAKIHN0
YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCog
ZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAg
ICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dl
ZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJu
IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3du
OgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1v
dXNlRG93bjoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0
Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
TW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBO
U0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6
CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoK
KyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3du
OgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
VXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZVVwOgorICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxl
YXNlZDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VN
b3ZlZDsKICAgICB9CiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQg
KmV2ZW50KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
VXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090
aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAg
ICAgICAgICByZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogfQogCkBAIC00OTcsMjggKzQ4MiwyOCBAQCBT
dHJpbmcga2V5SWRlbnRpZmllckZvcktleUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIGlm
IChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpIHsKICAgICAgICAgc3dp
dGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENv
bW1hbmQKLSAgICAgICAgICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAg
ICAgIHJldHVybiBTdHJpbmcoIk1ldGEiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fw
c0xvY2siKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTY6IC8vIExlZnQg
U2hpZnQKLSAgICAgICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAgICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQK
LSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJBbHQiKTsKLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAgICAgICAgY2FzZSA2Mjog
Ly8gUmlnaHQgQ3RybAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsK
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7CisgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAgICAgICAgY2FzZSA1NTog
Ly8gTGVmdCBDb21tYW5kCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJNZXRhIik7CisKKyAg
ICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNh
cHNMb2NrIik7CisKKyAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAorICAgICAgICBjYXNl
IDYwOiAvLyBSaWdodCBTaGlmdAorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsK
KworICAgICAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAorICAgICAgICBjYXNlIDYxOiAvLyBSaWdo
dCBBbHQKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkFsdCIpOworCisgICAgICAgIGNhc2Ug
NTk6IC8vIExlZnQgQ3RybAorICAgICAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAg
ICAgICByZXR1cm4gU3RyaW5nKCJDb250cm9sIik7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC01MzQsNDQgKzUxOSwzOCBAQCBzdGF0
aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRo
YXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICAgICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAg
Y2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAgICAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5T
TnVtZXJpY1BhZEtleU1hc2spCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYg
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0g
ICAgICAgIGNhc2UgNzE6IC8vIENsZWFyCi0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAg
Y2FzZSA3NTogLy8gLwotICAgICAgICBjYXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8v
IC0KLSAgICAgICAgY2FzZSA2OTogLy8gKwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAg
ICAgICBjYXNlIDY1OiAvLyAuCi0gICAgICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4
MzogLy8gMQotICAgICAgICBjYXNlIDg0OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAg
ICAgICAgY2FzZSA4NjogLy8gNAotICAgICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2Ug
ODg6IC8vIDYKLSAgICAgICAgY2FzZSA4OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0g
ICAgICAgIGNhc2UgOTI6IC8vIDkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9Cisg
ICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAgICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8g
LworICAgIGNhc2UgNjc6IC8vICoKKyAgICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8g
KworICAgIGNhc2UgNzY6IC8vIEVudGVyCisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6
IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAxCisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6
IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6
IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6
IC8vIDkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZh
bHNlOwogfQpAQCAtNTg1LDEwICs1NjQsNyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVu
dChOU0V2ZW50KiBldmVudCkKICAgICAvLyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBr
bm93biBNYWMgdmlydHVhbCBrZXkgY29kZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4g
Q2VydGFpbiBwdW5jdHVhdGlvbiBrZXlzLiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1h
cHBlZCBkZXBlbmRpbmcgb24gY3VycmVudCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0
IHNlZSBjb21tZW50IGluIHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYm
IChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSkg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICghaXNLZXlwYWRFdmVudChl
dmVudCkgJiYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlS2V5VXApKSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21h
biBsZXR0ZXJzIGZvciBEdm9yYWstUVdFUlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJh
Y3RlcnMgZmlyc3QuCiAgICAgICAgIE5TU3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwog
ICAgICAgICBjb2RlID0gW3MgbGVuZ3RoXSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2Rl
KFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pIDogMDsKQEAgLTY0NiwzNSArNjIyLDMyIEBAIGRvdWJs
ZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKIAogc3RhdGljIGlubGlu
ZSBib29sIGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2Vk
KQotICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVu
dCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZh
aWxzIGlmIHRoZSB1c2VyIHByZXNzZXMgYm90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFt
cGxlOgogICAgIC8vIHdlIHRyZWF0IHJlbGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgog
ICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0
IENvbW1hbmQKLSAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICBy
ZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJl
dHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsK
LSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNh
c2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgNTg6IC8vIExlZnQgQWx0Ci0gICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAg
ICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2sp
ID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAg
ICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1v
ZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAg
ICAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9uS2V5TWFzaykgPT0gMDsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTog
Ly8gTGVmdCBDb21tYW5kCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2Nr
CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdDYXBzTG9jayk7CisKKyAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2
MDogLy8gUmlnaHQgU2hpZnQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0
CisgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTog
Ly8gTGVmdCBDdHJsCisgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4g
IShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisK
KyAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KICAgICByZXR1
cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAgKzc5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9rZXkg
PSBrZXlGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fY29kZSA9IGNvZGVGb3JLZXlFdmVu
dChldmVudCk7CiAgICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gd2luZG93c0tleUNv
ZGVGb3JLZXlFdmVudChldmVudCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgIG1fYXV0b1JlcGVhdCA9IFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCAm
JiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2Vk
ICYmIFtldmVudCBpc0FSZXBlYXRdOwogICAgICAgICBtX2lzS2V5cGFkID0gaXNLZXlwYWRFdmVu
dChldmVudCk7CiAgICAgICAgIG1faXNTeXN0ZW1LZXkgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlz
IGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KaW5kZXggOTFjYmVkZDBjZGEwNzA2NWIzYmYzZjE3
MDE1OGYxZDYyNzczMTgzZi4uNjRkODU0YThlODRjODYyYTkwYWJkNDU3NWNlNjNlYmVlNGQyZWUz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1l
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1h
Yy5tbQpAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hh
bmdlLmg+CisjaW5jbHVkZSA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25z
Lmg+CiAKIC8vIEZJWE1FOiBUaGVyZSBhcmUgcmVwYWludGluZyBwcm9ibGVtcyBkdWUgdG8gQXF1
YSBzY3JvbGwgYmFyIGJ1dHRvbnMnIHZpc3VhbCBvdmVyZmxvdy4KIApAQCAtMTM5LDE4ICsxNDAs
MTUgQEAgc3RhdGljIFNjcm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9
IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVFbmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9s
bGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRy
b2xTaXplKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRj
aCAoY29udHJvbFNpemUpIHsKICAgICBjYXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJl
dHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVS
ZWd1bGFyOwogICAgIGNhc2UgU21hbGxTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxs
Q29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xT
aXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xT
aXplUmVndWxhcjsKIH0KIAogdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xs
ZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhl
bWVNYWMubW0KaW5kZXggMDI0NzJjOWE2OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4u
YjEwMDQxYjVlYjE3MmY0MzcyYzQwMDU1YjE2OTk3YzEzOTRjMjNmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHN0YXRpYyBOU1JlY3QgZm9jdXNSaW5nQ2xpcFJl
Y3Q7CiBzdGF0aWMgQk9PTCB0aGVtZVdpbmRvd0hhc0tleUFwcGVhcmFuY2U7CkBAIC02NywxMSAr
NjgsOCBAQCAtIChOU1dpbmRvdyAqKXdpbmRvdwogewogICAgIC8vIFVzaW5nIGRlZmVyOllFUyBw
cmV2ZW50cyB1cyBmcm9tIHdhc3RpbmcgYW55IHdpbmRvdyBzZXJ2ZXIgcmVzb3VyY2VzIGZvciB0
aGlzIHdpbmRvdywgc2luY2Ugd2UncmUgbm90IGFjdHVhbGx5CiAgICAgLy8gZ29pbmcgdG8gZHJh
dyBpbnRvIGl0LiBUaGUgb3RoZXIgYXJndW1lbnRzIG1hdGNoIHdoYXQgeW91IGdldCB3aGVuIGNh
bGxpbmcgLVtOU1dpbmRvdyBpbml0XS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKICAgICBzdGF0aWMgV2ViQ29yZVRoZW1lV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVUaGVt
ZVdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCAx
MDAsIDEwMCkKLSAgICAgICAgc3R5bGVNYXNrOk5TVGl0bGVkV2luZG93TWFzayBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrVGl0bGVkIGJhY2tpbmc6
TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwogICAgIHJldHVybiB3aW5kb3c7CiB9
CiAKQEAgLTE0NCwxNSArMTQyLDEyIEBAIFRoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKIAogc3RhdGlj
IE5TQ29udHJvbFNpemUgY29udHJvbFNpemVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250
KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6
ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAgICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICBy
ZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXpl
UmVndWxhcjsKICAgICBpZiAoZm9udFNpemUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxs
Q29udHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAg
IHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIExlbmd0aFNpemUgc2l6ZUZy
b21OU0NvbnRyb2xTaXplKE5TQ29udHJvbFNpemUgbnNDb250cm9sU2l6ZSwgY29uc3QgTGVuZ3Ro
U2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgY29uc3Qgc3RkOjphcnJheTxJbnRT
aXplLCAzPiYgc2l6ZXMpCkBAIC0xNzUsMTYgKzE3MCwxMyBAQCBzdGF0aWMgTGVuZ3RoU2l6ZSBz
aXplRnJvbUZvbnQoY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIGNvbnN0IExlbmd0aFNpemUmIHpv
b21lZAogCiBzdGF0aWMgQ29udHJvbFNpemUgY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKGNvbnN0
IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29tZWRT
aXplLCBmbG9hdCB6b29tRmFjdG9yKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50Pihz
aXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3IpICYmCi0gICAg
ICAgIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1Jl
Z3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJu
IE5TUmVndWxhckNvbnRyb2xTaXplOwotICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0g
c3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29t
RmFjdG9yKSAmJgotICAgICAgICBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0
PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQot
ICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250
cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAobWluWm9vbWVk
U2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3Vs
YXJdLndpZHRoKCkgKiB6b29tRmFjdG9yKQorICAgICAgICAmJiBtaW5ab29tZWRTaXplLmhlaWdo
dCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdo
dCgpICogem9vbUZhY3RvcikpCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsK
KyAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNb
TlNDb250cm9sU2l6ZVNtYWxsXS53aWR0aCgpICogem9vbUZhY3RvcikKKyAgICAgICAgJiYgbWlu
Wm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNp
emVTbWFsbF0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJv
bFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyB2
b2lkIHNldENvbnRyb2xTaXplKE5TQ2VsbCogY2VsbCwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXpl
LCAzPiYgc2l6ZXMsIGNvbnN0IEludFNpemUmIG1pblpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0
b3IpCkBAIC00ODAsMTAgKzQ3Miw3IEBAIHN0YXRpYyB2b2lkIHNldFVwQnV0dG9uQ2VsbChOU0J1
dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTCiB7CiAgICAg
Ly8gU2V0IHRoZSBjb250cm9sIHNpemUgYmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFp
bnRpbmcgaW50by4KICAgICBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcyA9IGJ1
dHRvblNpemVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYg
KHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRTaXplLmhlaWdodCgpID4gYnV0dG9u
U2l6ZXMoKVtOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9u
UGFydCB8fCB6b29tZWRTaXplLmhlaWdodCgpID4gYnV0dG9uU2l6ZXMoKVtOU0NvbnRyb2xTaXpl
UmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7CiAgICAgICAgIC8vIFVzZSB0aGUgc3F1
YXJlIGJ1dHRvbgogICAgICAgICBpZiAoW2NlbGwgYmV6ZWxTdHlsZV0gIT0gTlNTaGFkb3dsZXNz
U3F1YXJlQmV6ZWxTdHlsZSkKICAgICAgICAgICAgIFtjZWxsIHNldEJlemVsU3R5bGU6TlNTaGFk
b3dsZXNzU3F1YXJlQmV6ZWxTdHlsZV07CkBAIC01NzksMTUgKzU2OCwxMiBAQCBzdGF0aWMgY29u
c3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc3RlcHBlclNpemVzKCkKIC8vIHNob3VsZCBiZSBl
cXVhbCB0byBvciBsZXNzIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcgdGV4dCBmaWVsZCBoZWlnaHQs
CiBzdGF0aWMgTlNDb250cm9sU2l6ZSBzdGVwcGVyQ29udHJvbFNpemVGb3JGb250KGNvbnN0IEZv
bnRDYXNjYWRlJiBmb250KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgIGludCBmb250U2l6ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAgICAgaWYgKGZvbnRTaXplID49
IDE4KQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVy
biBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICBpZiAoZm9udFNpemUgPj0gMTMpCi0gICAgICAg
IHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXpl
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9s
U2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZv
aWQgcGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNj
cm9sbFZpZXcqKQpAQCAtNjAwLDE1ICs1ODYsMTIgQEAgc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVy
KENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAog
ICAgIGRyYXdJbmZvLnN0YXRlID0gY29udmVydENvbnRyb2xTdGF0ZXNUb1RoZW1lRHJhd1N0YXRl
KGtUaGVtZUluY0RlY0J1dHRvbiwgc3RhdGVzKTsKICAgICBkcmF3SW5mby5hZG9ybm1lbnQgPSBr
VGhlbWVBZG9ybm1lbnREZWZhdWx0OwogICAgIENvbnRyb2xTaXplIGNvbnRyb2xTaXplID0gY29u
dHJvbFNpemVGcm9tUGl4ZWxTaXplKHN0ZXBwZXJTaXplcygpLCBJbnRTaXplKHpvb21lZFJlY3Qu
c2l6ZSgpKSwgem9vbUZhY3Rvcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgaWYgKGNvbnRyb2xTaXplID09IE5TU21hbGxDb250cm9sU2l6ZSkKKyAgICBpZiAoY29u
dHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZVNtYWxsKQogICAgICAgICBkcmF3SW5mby5raW5kID0g
a1RoZW1lSW5jRGVjQnV0dG9uU21hbGw7Ci0gICAgZWxzZSBpZiAoY29udHJvbFNpemUgPT0gTlNN
aW5pQ29udHJvbFNpemUpCisgICAgZWxzZSBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6
ZU1pbmkpCiAgICAgICAgIGRyYXdJbmZvLmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b25NaW5pOwog
ICAgIGVsc2UKICAgICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbjsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIEludFJlY3QgcmVjdCh6b29tZWRSZWN0
KTsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CkBA
IC03NDksMTIgKzczMiw5IEBAIExlbmd0aFNpemUgVGhlbWVNYWM6Om1pbmltdW1Db250cm9sU2l6
ZShDb250cm9sUGFydCBwYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9uCiAgICAgICAgIGNhc2Ug
QnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBMZW5ndGhTaXplKExlbmd0aCgwLCBGaXhl
ZCksIExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KDE1ICogem9vbUZhY3RvciksIEZpeGVkKSk7CiAg
ICAgICAgIGNhc2UgSW5uZXJTcGluQnV0dG9uUGFydDp7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtO
U01pbmlDb250cm9sU2l6ZV07CisgICAgICAgICAgICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6
ZXMoKVtOU0NvbnRyb2xTaXplTWluaV07CiAgICAgICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZShM
ZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihiYXNlLndpZHRoKCkgKiB6b29tRmFjdG9yKSwgRml4ZWQp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoKHN0YXRpY19jYXN0PGludD4o
YmFzZS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpLCBGaXhlZCkpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1
cm4gVGhlbWU6Om1pbmltdW1Db250cm9sU2l6ZShwYXJ0LCBmb250LCB6b29tRmFjdG9yKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5I
VURXaW5kb3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggZDNiOWVlOThkZjk0MjBj
Y2Q3MTE2YjA0MDM1NjM4M2NmYzc0NmY5MC4uYjQ4NjA2Y2I1YTc0NGQ4NzBiODYxOTM0MzY2Mjg5
OGJhOWZmNGVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAg
LTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0hUTUxWaWRlb0VsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNzMsMTAgKzc0LDcgQEAg
QGltcGxlbWVudGF0aW9uIFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvdwogLSAoaWQpaW5pdFdp
dGhDb250ZW50UmVjdDooTlNSZWN0KWNvbnRlbnRSZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilh
U3R5bGUgYmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJP
T0wpZmxhZwogewogICAgIFVOVVNFRF9QQVJBTShhU3R5bGUpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpj
b250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOmJ1ZmZl
cmluZ1R5cGUgZGVmZXI6ZmxhZ107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
c2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpO
U1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmZs
YWddOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIApAQCAtMTIyLDE1ICsx
MjAsMTIgQEAgLSAoQk9PTClyZXNpZ25GaXJzdFJlc3BvbmRlcgogCiAtIChCT09MKXBlcmZvcm1L
ZXlFcXVpdmFsZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKICAgICAvLyBCbG9jayBhbGwgY29tbWFuZCBrZXkgZXZlbnRzIHdoaWxlIHRo
ZSBmdWxsc2NyZWVuIHdpbmRvdyBpcyB1cC4KLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5
RG93bikKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAg
ICAgcmV0dXJuIE5POwogICAgIAotICAgIGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5T
Q29tbWFuZEtleU1hc2spKQorICAgIGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZl
bnRNb2RpZmllckZsYWdDb21tYW5kKSkKICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIHJldHVybiBZRVM7CiB9CiAKQEAgLTE0NSwxMSArMTQwLDcg
QEAgQGltcGxlbWVudGF0aW9uIFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIK
IAogLSAoaWQpaW5pdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dI
ZWlnaHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVNYXNrOk5TQm9yZGVybGVz
c1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJW
aWRlb0Z1bGxzY3JlZW5IVURXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtl
UmVjdCgwLCAwLCB3aW5kb3dXaWR0aCwgd2luZG93SGVpZ2h0KSBzdHlsZU1hc2s6TlNXaW5kb3dT
dHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpO
T107CiAgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFdpbmRvdzp3aW5kb3ddOwogICAgIFt3aW5k
b3cgc2V0RGVsZWdhdGU6c2VsZl07CiAgICAgW3dpbmRvdyByZWxlYXNlXTsKQEAgLTE4OCwyMCAr
MTc5LDE3IEBAIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICBj
YXNlICcgJzoKICAgICAgICAgICAgICAgICBbc2VsZiB0b2dnbGVQbGF5aW5nOm5pbF07CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgICAgICAgICAgY2FzZSBOU1VwQXJyb3dGdW5jdGlvbktleToKLSAgICAgICAgICAgICAgICBp
ZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKQorICAgICAgICAg
ICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uKQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzZXRWb2x1bWU6W3NlbGYgbWF4Vm9sdW1l
XV07CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBpbmNy
ZW1lbnRWb2x1bWVdOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNhc2Ug
TlNEb3duQXJyb3dGdW5jdGlvbktleToKLSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlm
aWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAg
ICAgICAgICAgICBbc2VsZiBzZXRWb2x1bWU6MF07CiAgICAgICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgICAgICBbc2VsZiBkZWNyZW1lbnRWb2x1bWVdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNzgsMTcgKzM2NiwxMSBAQCAtICh2b2lk
KXdpbmRvd0RpZExvYWQKICAgICBbY29udGVudFZpZXcgYWRkU3VidmlldzpfdGltZWxpbmVdOwog
CiAgICAgX2VsYXBzZWRUaW1lVGV4dCA9IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh0
aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1hcmdpbiwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVU
ZXh0RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIFtfZWxhcHNlZFRpbWVUZXh0IHNldEFsaWdubWVudDpOU0xl
ZnRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX2Vs
YXBzZWRUaW1lVGV4dCBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50TGVmdF07CiAgICAgW2Nv
bnRlbnRWaWV3IGFkZFN1YnZpZXc6X2VsYXBzZWRUaW1lVGV4dF07CiAKICAgICBfcmVtYWluaW5n
VGltZVRleHQgPSBjcmVhdGVUaW1lVGV4dEZpZWxkKE5TTWFrZVJlY3Qod2luZG93V2lkdGggLSB0
aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1hcmdpbiAtIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZWxp
bmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhlaWdodCkp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtfcmVtYWluaW5nVGlt
ZVRleHQgc2V0QWxpZ25tZW50Ok5TUmlnaHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBbX3JlbWFpbmluZ1RpbWVUZXh0IHNldEFsaWdubWVudDpOU1Rl
eHRBbGlnbm1lbnRSaWdodF07CiAgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X3JlbWFpbmlu
Z1RpbWVUZXh0XTsKIAogICAgIFt3aW5kb3cgcmVjYWxjdWxhdGVLZXlWaWV3TG9vcF07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQppbmRl
eCA0NTk4YTAzZWQyZmEzMjE1MGU2NGFmOWNiYjY0NTk5NDY5ZmRkZjc3Li43ZGU1ZWI1MzdjN2Zh
MDIzNTIyYmNlZjY4MzMyM2IyNTg0ZWNjNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBv
cnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBA
IC0zOCwxMCArMzksNyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBzbG93TW90aW9uRmFjdG9yID0g
MTA7CiAKIHN0YXRpYyBOU1RpbWVJbnRlcnZhbCBXZWJXaW5kb3dBbmltYXRpb25EdXJhdGlvbkZy
b21EdXJhdGlvbihOU1RpbWVJbnRlcnZhbCBkdXJhdGlvbikKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2Rp
ZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3Rv
ciA6IGR1cmF0aW9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAo
W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxh
Z1NoaWZ0KSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwogfQogCiBz
dGF0aWMgTlNSZWN0IHNjYWxlZFJlY3QoTlNSZWN0IF9pbml0aWFsRnJhbWUsIE5TUmVjdCBfZmlu
YWxGcmFtZSwgQ0dGbG9hdCBmYWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KaW5kZXggM2VkZGMwM2U0ZDhlOWY2MzUxN2M1MjcxZjIwMWI1Njc4MjJiOTAy
OC4uODU3NjQyMzUyM2E5MGM4YTUyNTE4MDU0YWQ5MmI1MTQ0ZjQxOTI3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtODEsNiArODEsNyBAQAogI2lt
cG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNpbXBvcnQg
PG1hdGguaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiAjaWYgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCiAjaW1wb3J0ICJSZW5kZXJNZXRlci5o
IgpAQCAtMzc5LDIyICszODAsMTMgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6dXBkYXRlQ2FjaGVk
U3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm8KICAgICAgICAg
ICAgIGZvbnROYW1lID0gQXRvbWljU3RyaW5nKCItYXBwbGUtc3RhdHVzLWJhciIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQ1NTVmFsdWVXZWJraXRNaW5pQ29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6
W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TTWluaUNvbnRyb2xTaXplXV07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9u
dCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpO
U0NvbnRyb2xTaXplTWluaV1dOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NT
VmFsdWVXZWJraXRTbWFsbENvbnRyb2w6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQg
c3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3Rl
bUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJv
bFNpemVTbWFsbF1dOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVX
ZWJraXRDb250cm9sOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRT
aXplRm9yQ29udHJvbFNpemU6TlNSZWd1bGFyQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNp
emU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1
bGFyXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZV1d
OwpAQCAtNzc3LDMwICs3NjksMjQgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFN1cHBv
cnRzVGludHMoY29uc3QgUmVuZGVyT2JqZWN0JiBvKSBjb25zdAogTlNDb250cm9sU2l6ZSBSZW5k
ZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JGb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkg
Y29uc3QKIHsKICAgICBpbnQgZm9udFNpemUgPSBzdHlsZS5mb250U2l6ZSgpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGlmIChmb250U2l6ZSA+PSAxNikKLSAgICAg
ICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9s
U2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZvbnRTaXplID49IDExKQotICAgICAgICByZXR1cm4gTlNT
bWFsbENvbnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsK
KyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIE5TQ29udHJvbFNpemUgUmVuZGVy
VGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbChOU0NlbGwqLCBjb25zdCBJbnRTaXplKiBzaXpl
cywgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSwgZmxvYXQgem9vbUxldmVsKSBjb25zdAogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChtaW5TaXplLndpZHRoKCkg
Pj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lkdGgoKSAq
IHpvb21MZXZlbCkKLSAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVzW05TUmVndWxhckNvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0g
ICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0
aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRo
KCkgKiB6b29tTGV2ZWwpCisgICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nh
c3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwp
KQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAKLSAgICBpZiAobWluU2l6
ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS53
aWR0aCgpICogem9vbUxldmVsKQotICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRp
Y19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZl
bCkpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUu
d2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lk
dGgoKSAqIHpvb21MZXZlbCkKKyAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwp
KQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOwogCi0gICAgcmV0dXJuIE5TTWlu
aUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBO
U0NvbnRyb2xTaXplTWluaTsKIH0KIAogdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Q29udHJvbFNp
emUoTlNDZWxsKiBjZWxsLCBjb25zdCBJbnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWlu
U2l6ZSwgZmxvYXQgem9vbUxldmVsKQpAQCAtODU3LDE1ICs4NDMsMTIgQEAgdm9pZCBSZW5kZXJU
aGVtZU1hYzo6c2V0Rm9udEZyb21Db250cm9sU2l6ZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5
bGUmIHN0eWxlLAogCiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZv
clN5c3RlbUZvbnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRT
aXplKCk7Ci0gICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250
cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKLSAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZv
ckNvbnRyb2xTaXplOk5TU21hbGxDb250cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1NtYWxs
Q29udHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRT
aXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVJlZ3VsYXJdKQorICAgICAgICByZXR1cm4g
TlNDb250cm9sU2l6ZVJlZ3VsYXI7CisgICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVt
Rm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplU21hbGxdKQorICAgICAgICByZXR1
cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0K
IAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0
JiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiByKQpAQCAt
MTE0NywxMCArMTEzMCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50UHJvZ3Jlc3NCYXIo
Y29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgY29uc3QgYXV0
byYgcmVuZGVyUHJvZ3Jlc3MgPSBkb3duY2FzdDxSZW5kZXJQcm9ncmVzcz4ocmVuZGVyT2JqZWN0
KTsKICAgICBISVRoZW1lVHJhY2tEcmF3SW5mbyB0cmFja0luZm87CiAgICAgdHJhY2tJbmZvLnZl
cnNpb24gPSAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChj
b250cm9sU2l6ZSA9PSBOU1JlZ3VsYXJDb250cm9sU2l6ZSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZVJlZ3VsYXIpCiAg
ICAgICAgIHRyYWNrSW5mby5raW5kID0gcmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBr
VGhlbWVMYXJnZUluZGV0ZXJtaW5hdGVCYXIgOiBrVGhlbWVMYXJnZVByb2dyZXNzQmFyOwogICAg
IGVsc2UKICAgICAgICAgdHJhY2tJbmZvLmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigp
IDwgMCA/IGtUaGVtZU1lZGl1bUluZGV0ZXJtaW5hdGVCYXIgOiBrVGhlbWVNZWRpdW1Qcm9ncmVz
c0JhcjsKQEAgLTE0MzgsMTUgKzE0MTgsMTIgQEAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNp
emUgUmVuZGVyVGhlbWVNYWM6OnBvcHVwTWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmIHMKICAg
ICBOU1BvcFVwQnV0dG9uQ2VsbCogcG9wdXBCdXR0b24gPSB0aGlzLT5wb3B1cEJ1dHRvbigpOwog
ICAgIE5TQ29udHJvbFNpemUgc2l6ZSA9IGNvbnRyb2xTaXplRm9yQ2VsbChwb3B1cEJ1dHRvbiwg
cG9wdXBCdXR0b25TaXplcygpLCByZWN0LnNpemUoKSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsK
ICAgICBzd2l0Y2ggKHNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBjYXNlIE5TUmVndWxhckNvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVJl
Z3VsYXI6CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1h
bDsKLSAgICBjYXNlIE5TU21hbGxDb250cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVT
bWFsbDoKICAgICAgICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw7
Ci0gICAgY2FzZSBOU01pbmlDb250cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVNaW5p
OgogICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBQ
b3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsKICAgICB9CkBAIC0yMDU1LDEyICsy
MDMyLDkgQEAgTlNTbGlkZXJDZWxsKiBSZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJIb3Jpem9u
dGFsKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc2xpZGVyVGh1bWJIb3Jpem9udGFsKSB7CiAgICAg
ICAgIG1fc2xpZGVyVGh1bWJIb3Jpem9udGFsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxv
Y10gaW5pdF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBb
bV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRl
cl07Ci0gICAgICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6
ZTpOU1NtYWxsQ29udHJvbFNpemVdOworICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwu
Z2V0KCkgc2V0U2xpZGVyVHlwZTpOU1NsaWRlclR5cGVMaW5lYXJdOworICAgICAgICBbbV9zbGlk
ZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxs
XTsKICAgICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldEZvY3VzUmluZ1R5
cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJpb3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIH0KIAogICAgIHJldHVybiBtX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKTsKQEAg
LTIwNzAsMTEgKzIwNDQsOCBAQCBOU1NsaWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJU
aHVtYlZlcnRpY2FsKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc2xpZGVyVGh1bWJWZXJ0aWNhbCkg
ewogICAgICAgICBtX3NsaWRlclRodW1iVmVydGljYWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxs
IGFsbG9jXSBpbml0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNs
aWRlcl07Ci0gICAgICAgIFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNp
emU6TlNTbWFsbENvbnRyb2xTaXplXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TU2xpZGVy
VHlwZUxpbmVhcl07CisgICAgICAgIFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29u
dHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0
aWNhbC5nZXQoKSBzZXRGb2N1c1JpbmdUeXBlOk5TRm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dB
ZGFwdGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIu
bW0KaW5kZXggZjJhMzU5NzNhNzFlMDY4MjYwYTkxYzk2N2QyOTA1MGQyZWRlNzYwZC4uYTY5ZjZm
MWZhNTBhOWE0YWRkODYzZjQ3OTViYzFkNzEyZjBiYTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KQEAgLTc2LDYgKzc2LDcgQEAKICNp
bXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtp
dENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5o
IgogI2ltcG9ydCAiV2ViTlNPYmplY3RFeHRyYXMuaCIKQEAgLTE3MywxMyArMTc0LDE0IEBAIC0g
KGlkKWluaXRXaXRoQ2FyYm9uV2luZG93UmVmOihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5n
T3duZXJzaGlwOihCT09MKWluV2luCiAKICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBz
dHlsZSBtYXNrLgogICAgIHN0eWxlTWFzayA9IFdLQ2FyYm9uV2luZG93TWFzaygpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYg
a1dpbmRvd0Nsb3NlQm94QXR0cmlidXRlKSBzdHlsZU1hc2sgfD0gTlNDbG9zYWJsZVdpbmRvd01h
c2s7Ci0gICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRl
KSBzdHlsZU1hc2sgfD0gTlNSZXNpemFibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dGZWF0
dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBzZSkgc3R5bGVNYXNrIHw9IE5TTWluaWF0dXJpemFibGVX
aW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dIYXNUaXRsZUJhcikg
c3R5bGVNYXNrIHw9IE5TVGl0bGVkV2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0dHJpYnV0
ZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7CisgICAg
aWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKQorICAgICAg
ICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGU7CisgICAgaWYgKHdpbmRv
d0ZlYXR1cmVzICYga1dpbmRvd0NhbkNvbGxhcHNlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNX
aW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMgJiBr
V2luZG93SGFzVGl0bGVCYXIpCisgICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFz
a1RpdGxlZDsKIAogICAgIG9zU3RhdHVzID0gR2V0V2luZG93TW9kYWxpdHkoX3dpbmRvd1JlZiwg
JndpbmRvd01vZGFsaXR5LCBOVUxMKTsKICAgICBpZiAob3NTdGF0dXMgIT0gbm9FcnIpIHsKQEAg
LTM5MywxOCArMzk1LDEyIEBAIC0gKHZvaWQpc2VuZFN1cGVyRXZlbnQ6KE5TRXZlbnQgKilpbkV2
ZW50IHsKICAgICAvLyBJZ25vcmUgc29tZSB1bmtub3duIGV2ZW50IHRoYXQgZ2V0cyBzZW50IHdo
ZW4gTlNUZXh0Vmlld3MgaW4gcHJpbnRpbmcgYWNjZXNzb3J5IHZpZXdzIGFyZSBmb2N1c2VkLiAg
TS5QLiBOb3RpY2UgLSAxMi83LzAwCiAgICAgQk9PTCBpZ25vcmVFdmVudCA9IE5POwogICAgIE5T
RXZlbnRUeXBlIGV2ZW50VHlwZSA9IFtpbkV2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGU9PU5TU3lzdGVtRGVmaW5lZCkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVu
dFR5cGVTeXN0ZW1EZWZpbmVkKSB7CiAgICAgICAgIHNob3J0IGV2ZW50U3VidHlwZSA9IFtpbkV2
ZW50IHN1YnR5cGVdOwotICAgICAgICBpZiAoZXZlbnRTdWJ0eXBlPT03KSB7CisgICAgICAgIGlm
IChldmVudFN1YnR5cGUgPT0gNykgewogICAgICAgICAgICAgaWdub3JlRXZlbnQgPSBZRVM7CiAg
ICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICB9IGVsc2Ug
aWYgKGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAg
ICAgICAgLy8gSGFuZGxlIGNvbW1hbmQtc3BhY2UgYXMgW05TQXBwIHNlbmRFdmVudDpdIGRvZXMu
CiAgICAgICAgIGlmIChbTlNJbnB1dENvbnRleHQgcHJvY2Vzc0lucHV0S2V5QmluZGluZ3M6aW5F
dmVudF0pIHsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KaW5kZXgg
ZWFkNTkzNjk2ZDRiOWE5NzY2YTNjYmNlMDNlYWQ2ZWFmZDA3OTU3OS4uNmQwNmM3MDEwYzUyYjgx
ZDUzMTUxZTE4NTJkNDE0NDFiOTEyOWQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTQx
LDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSWRlbnRpZmllclJlcC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
CiBleHRlcm4gIkMiIHsKICNpbXBvcnQgIldlYktpdFBsdWdpbkhvc3QuaCIKQEAgLTIzMCwxMCAr
MjMxLDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6YmVnaW5Nb2RhbCgpCiAgICAg
QVNTRVJUKCFtX3BsYWNlaG9sZGVyV2luZG93KTsKICAgICBBU1NFUlQoIW1fYWN0aXZhdGlvbk9i
c2VydmVyKTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBt
X3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1h
c2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6WUVTXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgbV9wbGFjZWhv
bGRlcldpbmRvdyA9IGFkb3B0TlMoW1tXZWJQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TV2lu
ZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXSk7CiAKICAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25XaWxs
QmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRpb24gKil7IGFwcGxpY2F0aW9uRGlkQmVj
b21lQWN0aXZlKCk7IH1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDFiNGQz
YTk2ZmE5YWU3YTE3N2U0NTEyZjQ1NjQxZGFhMjQzN2Q0YzkuLmFhMGRmNTQyNGE0MjZmZDNhZDc4
MzQzNDZjZDdiMmFkNGMyOTU1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAg
LTY2LDYgKzY2LDcgQEAKICNpbXBvcnQgPHV0aWxpdHk+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KKyNpbXBvcnQg
PHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCiBleHRlcm4gIkMiIHsKQEAgLTQ2NSwxNSArNDY2LDEyIEBAIHZv
aWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpzeW50aGV0aWNLZXlEb3duV2l0aENvbW1h
bmRNb2RpZmllcihpbnQga2V5Q29kCiB7CiAgICAgTlNEYXRhICpjaGFyYWN0ZXJzRGF0YSA9IFtO
U0RhdGEgZGF0YVdpdGhCeXRlczomY2hhcmFjdGVyIGxlbmd0aDoxXTsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIF9XS1BIUGx1Z2luSW5zdGFuY2VLZXlib2FyZEV2
ZW50KG1fcGx1Z2luSG9zdFByb3h5LT5wb3J0KCksIG1fcGx1Z2luSUQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5j
ZURhdGVdLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOUENvY29hRXZl
bnRLZXlEb3duLCBOU0NvbW1hbmRLZXlNYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5QQ29jb2FFdmVudEtleURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5k
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFtjaGFyYWN0ZXJzRGF0YSBieXRlc10pKSwg
W2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFtj
aGFyYWN0ZXJzRGF0YSBieXRlc10pKSwgW2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0sIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBrZXlDb2RlLCBjaGFyYWN0ZXIp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eTo6ZmxhZ3NDaGFuZ2VkKE5TRXZlbnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2Nh
cGVQbHVnaW5WaWV3Lm1tCmluZGV4IDM3NjY3MmI2ODY3MzdjNzczZWRjNmRmNjg0YjI4Nzk4Mjk2
NGY1NDEuLmRmYzhjY2E3MjgyNDhhODk2YTgxM2U2Zjc5MjQyYzA5NDJiMjVjOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0
ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQg
PHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNs
YXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwpAQCAtNDQzLDEwICs0NDQsNyBAQCAtICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVj
dAogewogICAgIGlmIChfY2FjaGVkU25hcHNob3QpIHsKICAgICAgICAgTlNSZWN0IHNvdXJjZVJl
Y3QgPSB7IE5TWmVyb1BvaW50LCBbX2NhY2hlZFNuYXBzaG90LmdldCgpIHNpemVdIH07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFtfY2FjaGVkU25hcHNob3Qu
Z2V0KCkgZHJhd0luUmVjdDpbc2VsZiBib3VuZHNdIGZyb21SZWN0OnNvdXJjZVJlY3Qgb3BlcmF0
aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0Oltz
ZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09w
ZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5F
dmVudEhhbmRsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2Nh
cGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbQppbmRleCBhMWQxNTlhZjk0ZTE0ODlhNDhiMDk5
MjEwOGQwM2YzOTgwNWYyOTk2Li45YzUyMDFmZTYyZDI2M2JkMzVlYjVlNzFkNGEzNzAxYWFhOTE3
ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1
Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCkBAIC0zMCw2ICszMCw3IEBACiAj
aW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1
Z2luVmlldy5oIgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRI
YW5kbGVyQ29jb2E6OldlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EoV2ViTmV0c2Nh
cGVQbHVnaW5WaWV3KiBwbHVnaW5WaWV3KQogICAgIDogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhh
bmRsZXIocGx1Z2luVmlldykKQEAgLTE2MSwxMCArMTYyLDcgQEAgdm9pZCBXZWJOZXRzY2FwZVBs
dWdpbkV2ZW50SGFuZGxlckNvY29hOjpzeW50aGV0aWNLZXlEb3duV2l0aENvbW1hbmRNb2RpZmll
cihpbnQKICAgICAKICAgICBOUENvY29hRXZlbnQgZXZlbnQ7CiAgICAgaW5pdGlhbGl6ZUV2ZW50
KCZldmVudCwgTlBDb2NvYUV2ZW50S2V5RG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgZXZlbnQuZGF0YS5rZXkubW9kaWZpZXJGbGFncyA9IE5TQ29tbWFuZEtl
eU1hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgZXZlbnQuZGF0YS5rZXku
bW9kaWZpZXJGbGFncyA9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogICAgIGV2ZW50LmRh
dGEua2V5LmtleUNvZGUgPSBrZXlDb2RlOwogICAgIGV2ZW50LmRhdGEua2V5LmlzQVJlcGVhdCA9
IGZhbHNlOwogICAgIGV2ZW50LmRhdGEua2V5LmNoYXJhY3RlcnMgPSAoTlBOU1N0cmluZyAqKWNo
YXJhY3RlcnMuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9Qb3B1cE1lbnVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Q
b3B1cE1lbnVNYWMubW0KaW5kZXggYzQ2NjcwYjRkNzlkOGNlODRmYmQ0MTE1OGZiNzMwODBhZTgw
NDc5Yi4uNzlmMjhmYjgyY2I3ZmQ5MzljZDMzMjM0ZWM0N2VjMDM5NjZlZTUzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQpAQCAtMzQs
NiArMzQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Qb3B1cE1lbnVDbGllbnQuaD4KICNpbXBvcnQg
PFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlv
bnMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtOTAsMTcgKzkxLDExIEBAIHZvaWQg
UG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgpCiAgICAgICAgIH0KIAogICAgICAgICBSZXRhaW5QdHI8
TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+IHBhcmFncmFwaFN0eWxlID0gYWRvcHROUyhbW05TUGFy
YWdyYXBoU3R5bGUgZGVmYXVsdFBhcmFncmFwaFN0eWxlXSBtdXRhYmxlQ29weV0pOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0
QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQg
OiBOU1JpZ2h0VGV4dEFsaWdubWVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0g
TFRSID8gTlNUZXh0QWxpZ25tZW50TGVmdCA6IE5TVGV4dEFsaWdubWVudFJpZ2h0XTsKICAgICAg
ICAgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24gPSBzdHlsZS50ZXh0RGlyZWN0
aW9uKCkgPT0gTFRSID8gTlNXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VXcml0
aW5nRGlyZWN0aW9uOndyaXRpbmdEaXJlY3Rpb25dOwogICAgICAgICBpZiAoc3R5bGUuaGFzVGV4
dERpcmVjdGlvbk92ZXJyaWRlKCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgICAgIFJldGFpblB0cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVl
ID0gYWRvcHROUyhbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVj
dGlvbiArIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGly
ZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3
cml0aW5nRGlyZWN0aW9uICsgTlNXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKICAgICAgICAg
ICAgIFJldGFpblB0cjxOU0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9wdE5TKFtb
TlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1ZS5nZXQo
KSwgbmlsXSk7CiAgICAgICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmplY3Q6d3JpdGluZ0RpcmVj
dGlvbkFycmF5LmdldCgpIGZvcktleTpOU1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1lXTsK
ICAgICAgICAgfQpAQCAtMjA2LDE4ICsyMDEsMTUgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnNob3co
Y29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiAKICAgICBOU0NvbnRy
b2xTaXplIGNvbnRyb2xTaXplOwogICAgIHN3aXRjaCAobV9jbGllbnQtPm1lbnVTdHlsZSgpLm1l
bnVTaXplKCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjYXNl
IFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOgotICAgICAgICBjb250cm9sU2l6
ZSA9IE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJv
bFNpemVSZWd1bGFyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQ
b3B1cE1lbnVTaXplU21hbGw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNTbWFsbENvbnRyb2xT
aXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVTbWFsbDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk6Ci0gICAg
ICAgIGNvbnRyb2xTaXplID0gTlNNaW5pQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXpl
ID0gTlNDb250cm9sU2l6ZU1pbmk7CiAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgIH0KIAogICAgIFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3Vu
ZGYoTlNXaWR0aChyKSksIGR1bW15Vmlldy5nZXQoKSwgaW5kZXgsIHRvTlNGb250KGZvbnQpLCBj
b250cm9sU2l6ZSwgIW1fY2xpZW50LT5tZW51U3R5bGUoKS5oYXNEZWZhdWx0QXBwZWFyYW5jZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRl
eHRNZW51Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQubW0KaW5kZXggOTE0ZDhlMDYzZThlYjBmY2E5ZWFlOWQ3YmJiYzgxZjYx
YjdiODhkNi4uYTM5YjkzZTc3ZTI2YTY0MzNiOTI4ODhmMTkzM2EwOTk1NTE1YzYzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1l
bnVDbGllbnQubW0KQEAgLTYwLDYgKzYwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VSTC5oPgogI2ltcG9ydCA8V2Vi
S2l0TGVnYWN5L0RPTVByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMjY5
LDEwICsyNzAsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50OjpzaG93Q29udGV4dE1lbnUo
KQogCiAgICAgTlNWaWV3KiB2aWV3ID0gZnJhbWVWaWV3LT5kb2N1bWVudFZpZXcoKTsKICAgICBJ
bnRQb2ludCBwb2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1dpbmRvdyhwYWdlLT5jb250ZXh0
TWVudUNvbnRyb2xsZXIoKS5oaXRUZXN0UmVzdWx0KCkucm91bmRlZFBvaW50SW5Jbm5lck5vZGVG
cmFtZSgpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50
KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VEb3duIGxv
Y2F0aW9uOnBvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W1t2
aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0Nv
dW50OjEgcHJlc3N1cmU6MV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNF
dmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdo
dE1vdXNlRG93biBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2lu
ZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0gY29udGV4dDowIGV2ZW50TnVt
YmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwogCiAgICAgLy8gU2hvdyB0aGUgY29udGV4
dHVhbCBtZW51IGZvciB0aGlzIGV2ZW50LgogICAgIGJvb2wgaXNTZXJ2aWNlc01lbnU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCmluZGV4IDExNDc2YTAzMjc2ZWRkOTRlNzU1NTEzOTMwYWI0NjE5YmNlZGY5NTMu
LjE2MGIyZGY1NzQ3ZjUzYWVkYjM1OTY4ODNiNDJjMGZjOWY0M2MyMjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCkBAIC0xMzAsNiArMTMwLDcgQEAKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1w
b3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQg
PHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBVU0UoUExVR0lOX0hPU1RfUFJPQ0VTUykgJiYgRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkBAIC0xNTYxLDE3ICsxNTYyLDE0IEBAIE5TRGljdGlv
bmFyeSAqV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmFjdGlvbkRpY3Rpb25hcnkoY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYgYWN0CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBjb25zdCBVSUV2ZW50V2l0
aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0X2Nh
c3Q8RXZlbnQqPihldmVudCkpOwogICAgIGlmIChrZXlTdGF0ZUV2ZW50ICYmIGtleVN0YXRlRXZl
bnQtPmlzVHJ1c3RlZCgpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5jdHJsS2V5KCkpCi0gICAgICAgICAgICBtb2RpZmll
ckZsYWdzIHw9IE5TQ29udHJvbEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9
IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwogICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+
YWx0S2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQWx0ZXJuYXRlS2V5TWFz
azsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
bjsKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPnNoaWZ0S2V5KCkpCi0gICAgICAgICAgICBt
b2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICAgICAgbW9kaWZpZXJGbGFn
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50
LT5tZXRhS2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29tbWFuZEtleU1h
c2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBtb2RpZmllckZs
YWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogICAgIH0KICNlbHNlCiAgICAgLy8g
Tm8gbW9kaWZpZXIgZmxhZ3Mgb24gaU9TIHJpZ2h0IG5vdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDkwNzg3
ZDYyMGIzODFlNTM4YzdiMWFkZGM3NmYyZDI5YzU5MzIyMDkuLjc2YjJjZDJjYmYxMGIyMGEzOTkz
YzJmM2Y3YjcxOWNiZTdhNTgxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTUzLDYgKzUzLDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01F
eHRlbnNpb25zLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQg
PHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvQmFzZTY0Lmg+CiAKIFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3BlY3Rv
clVJLCBQcml2YXRlRnJhbWV3b3JrcywgQSkKQEAgLTE5MSwxMCArMTkyLDcgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JGcm9udGVuZENsaWVudDo6YXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2
YWlsYWJsZSkKIAogYm9vbCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKCkK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1ttX2Zyb250
ZW5kV2luZG93Q29udHJvbGxlciB3aW5kb3ddIHN0eWxlTWFza10gJiBOU0Z1bGxTY3JlZW5XaW5k
b3dNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW21fZnJvbnRl
bmRXaW5kb3dDb250cm9sbGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TV2luZG93U3R5bGVNYXNr
RnVsbFNjcmVlbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIGNhbkF0dGFj
aFdpbmRvdygpOwpAQCAtNDY1LDEwICs0NjMsNyBAQCAtIChOU1dpbmRvdyAqKXdpbmRvdwogICAg
IGlmICh3aW5kb3cpCiAgICAgICAgIHJldHVybiB3aW5kb3c7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU1VJbnRlZ2VyIHN0eWxlTWFzayA9IE5TVGl0bGVkV2lu
ZG93TWFzayB8IE5TQ2xvc2FibGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6YWJsZVdpbmRvd01h
c2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dN
YXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TVUludGVnZXIgc3R5bGVN
YXNrID0gTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxl
IHwgTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrUmVz
aXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogICAgIHdpbmRv
dyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAw
LCBpbml0aWFsV2luZG93V2lkdGgsIGluaXRpYWxXaW5kb3dIZWlnaHQpIHN0eWxlTWFzazpzdHls
ZU1hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbd2lu
ZG93IHNldERlbGVnYXRlOnNlbGZdOwogICAgIFt3aW5kb3cgc2V0TWluU2l6ZTpOU01ha2VTaXpl
KG1pbmltdW1XaW5kb3dXaWR0aCwgbWluaW11bVdpbmRvd0hlaWdodCldOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQppbmRleCAwMmE3
NTZmNzY3NzMxNWM2MjJkZDgxZDk5YTI5ZmFjM2ZiNWJmOWUyLi5mYzUzZDBjMWIwYWUyMGY4OGFh
MTViNjNjNDA3ZjkwNWFmNDBkODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJ
bnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJ
bnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQpAQCAtMzIsNiArMzIsOCBAQAogCiAjaW1wb3J0
IDxXZWJDb3JlL0luc3BlY3RvckNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
KwogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiV2ViRnJhbWVQcml2YXRlLmgiCkBAIC05
MSwxMCArOTMsNyBAQCAtIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZp
ZXcgaW5zcGVjdG9yQ29udHJvbGxlcjooSW5zcGVjdG9yQ29udAogICAgIF9pbnNwZWN0b3JDb250
cm9sbGVyID0gaW5zcGVjdG9yQ29udHJvbGxlcjsKIAogI2lmICFQTEFURk9STShJT1MpCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaW50IHN0eWxlTWFzayA9IE5TQm9y
ZGVybGVzc1dpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaW50
IHN0eWxlTWFzayA9IE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzczsKICAgICBOU1JlY3QgY29u
dGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JGcmFtZVJlY3Q6W3NlbGYgX2NvbXB1
dGVIaWdobGlnaHRXaW5kb3dGcmFtZV0gc3R5bGVNYXNrOnN0eWxlTWFza107CiAgICAgX2hpZ2hs
aWdodFdpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVu
dFJlY3Qgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6Tk9dOwogICAgIFtfaGlnaGxpZ2h0V2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlND
b2xvciBjbGVhckNvbG9yXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3
Lm1tCmluZGV4IDVlYzE5Nzg1ZGE3Mjk3YjFhMjQ0YzU3NjMyMDcwYzRiZGU5NDZiMDUuLjM1ZTAx
MWJhZjQwYmQ3MDg2ZWZkZjI4ZjA0YzNhYjE3NmI5ODc0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC02Niw2ICs2Niw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNp
bXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGli
aWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgIldlYkZy
YW1lSW50ZXJuYWwuaCIKQEAgLTkxNSw5ICs5MTYsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2
ZW50ICopZXZlbnQKICAgICBCT09MIGNhbGxTdXBlciA9IFlFUzsKICAgICBGcmFtZSogY29yZUZy
YW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CiAgICAgQk9PTCBtYWludGFpbnNCYWNrRm9yd2FyZExp
c3QgPSBjb3JlRnJhbWUgJiYgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Kj4oY29yZUZyYW1l
LT5wYWdlKCktPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLT5lbmFibGVkKCkgPyBZRVMgOiBOTzsK
LSAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwogICAgIGNvdW50ID0g
W2NoYXJhY3RlcnMgbGVuZ3RoXTsKICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsg
KytpbmRleCkgewogICAgICAgICBzd2l0Y2ggKFtjaGFyYWN0ZXJzIGNoYXJhY3RlckF0SW5kZXg6
aW5kZXhdKSB7CkBAIC05MjgsNyArOTI3LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAq
KWV2ZW50CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIFRoaXMgb2RkIGJl
aGF2aW9yIG1hdGNoZXMgc29tZSBleGlzdGluZyBicm93c2VycywKICAgICAgICAgICAgICAgICAv
LyBpbmNsdWRpbmcgV2luZG93cyBJRQotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNTaGlmdEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAm
IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBf
Z29Gb3J3YXJkXTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAg
ICBbc2VsZiBfZ29CYWNrXTsKQEAgLTk0Myw3ICs5NDIsNyBAQCAtICh2b2lkKWtleURvd246KFdl
YkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU1NoaWZ0S2V5TWFzaykgeworICAgICAgICAgICAgICAg
IGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSB7CiAgICAgICAg
ICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VVcDpuaWxdOwogICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VEb3duOm5pbF07CkBA
IC05ODQsNyArOTgzLDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TVXBBcnJvd0Z1bmN0aW9uS2V5
OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRyb2wt
YXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAgICAg
ICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtleU1h
c2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1vZGlm
aWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgfQpAQCAtOTk4LDkgKzk5Nyw5IEBAIC0gKHZvaWQpa2V5RG93bjooV2Vi
RXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICB9CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQ29tbWFu
ZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFRv
QmVnaW5uaW5nT2ZEb2N1bWVudDpuaWxdOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9k
aWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pIHsKICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZVVwOm5pbF07CiAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsTGluZVVwOm5pbF07CkBA
IC0xMDA5LDcgKzEwMDgsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlv
bktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRlZCBvciBjb250
cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2UuCi0gICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBOU0NvbnRyb2xL
ZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TRXZlbnRN
b2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewogICAgICAg
ICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIH0KQEAgLTEwMjMsOSArMTAyMiw5IEBAIC0gKHZvaWQpa2V5RG93
bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
Q29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNj
cm9sbFRvRW5kT2ZEb2N1bWVudDpuaWxdOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9k
aWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pIHsKICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZURvd246bmlsXTsKICAgICAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxMaW5lRG93bjpuaWxd
OwpAQCAtMTAzNCwxMiArMTAzMywxMiBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZl
bnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNMZWZ0QXJyb3dG
dW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRlZCBv
ciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2UuCi0g
ICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBOU0Nv
bnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewog
ICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAvLyBDaGVjayBiYWNr
L2ZvcndhcmQgcmVsYXRlZCBrZXlzLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYg
KCFtYWludGFpbnNCYWNrRm9yd2FyZExpc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNh
bGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA1Miw3
ICsxMDUxLDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09w
dGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX3BhZ2VIb3Jpem9udGFsbHk6
WUVTXTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIF9zY3JvbGxMaW5lSG9yaXpvbnRhbGx5OllFU107CkBAIC0xMDYyLDEyICsxMDYx
LDEyIEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU1JpZ2h0QXJyb3dGdW5jdGlvbktleToKICAgICAg
ICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRlZCBvciBjb250cm9sLWFycm93IGtl
eXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2UuCi0gICAgICAgICAgICAgICAgaWYg
KG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBOU0NvbnRyb2xLZXlNYXNrKSkgewor
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TRXZlbnRNb2RpZmllckZsYWdT
aGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewogICAgICAgICAgICAgICAgICAg
ICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAvLyBDaGVjayBiYWNrL2ZvcndhcmQgcmVsYXRlZCBr
ZXlzLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFz
aykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYWludGFpbnNCYWNrRm9y
d2FyZExpc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA4MCw3ICsxMDc5LDcgQEAgLSAodm9p
ZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikgewogICAgICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgX3BhZ2VIb3Jpem9udGFsbHk6Tk9dOwogICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX3Njcm9sbExp
bmVIb3Jpem9udGFsbHk6Tk9dOwpAQCAtMTA5MCw3ICsxMDg5LDYgQEAgLSAodm9pZClrZXlEb3du
OihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgaWYgKGNhbGxTdXBlcikgewog
ICAgICAgICBbc3VwZXIga2V5RG93bjpldmVudF07CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCmluZGV4
IDlmZDk1NjYxN2YwN2M2Y2Y2ZjQ4NTdjYzllMjIxNDBiMjE4OGIyZTQuLmY1NDM0MWZkYmI0ZTRk
M2NlZDlkZWQxNjNmMTg0MzJiMDQ2ZDliMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQpAQCAtNDcsNiArNDcsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9XZWJXaW5kb3dBbmltYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdFN5
c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC04NiwxMSArODcsOCBAQCBAaW1wbGVtZW50YXRpb24gV2ViRnVsbFNj
cmVlbkNvbnRyb2xsZXIKICNwcmFnbWEgbWFyayBJbml0aWFsaXphdGlvbgogLSAoaWQpaW5pdAog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8vIERvIG5vdCBkZWZl
ciB3aW5kb3cgY3JlYXRpb24sIHRvIG1ha2Ugc3VyZSAtd2luZG93TnVtYmVyIGlzIGNyZWF0ZWQg
KG5lZWRlZCBieSBXZWJXaW5kb3dTY2FsZUFuaW1hdGlvbikuCi0gICAgTlNXaW5kb3cgKndpbmRv
dyA9IFtbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
TlNaZXJvUmVjdCBzdHlsZU1hc2s6TlNDbG9zYWJsZVdpbmRvd01hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDpOU1plcm9SZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFz
a0Nsb3NhYmxlIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAg
c2VsZiA9IFtzdXBlciBpbml0V2l0aFdpbmRvdzp3aW5kb3ddOwogICAgIFt3aW5kb3cgcmVsZWFz
ZV07CiAgICAgaWYgKCFzZWxmKQpAQCAtNDYyLDEwICs0NjAsNyBAQCAtICh2b2lkKV9zd2FwVmll
dzooTlNWaWV3Kil2aWV3IHdpdGg6KE5TVmlldyopb3RoZXJWaWV3CiAKIHN0YXRpYyBSZXRhaW5Q
dHI8TlNXaW5kb3c+IGNyZWF0ZUJhY2tncm91bmRGdWxsc2NyZWVuV2luZG93KE5TUmVjdCBmcmFt
ZSkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU1dpbmRvdyAq
d2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBzdHls
ZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93
ICp3aW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0
eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbd2luZG93IHNldE9wYXF1ZTpZRVNdOwogICAgIFt3
aW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGJsYWNrQ29sb3JdXTsKICAgICBbd2lu
ZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpOT107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQppbmRleCA1NWYxYWUyZDQ1OGY1NjEzOTVmYzMyNmFhY2JjNjBmNGRiMzIx
M2M0Li4wODRmZTQ1NTdlN2FiODUzNDM3YWNjNTFlOWUyNzg3YWZmYTUwYzE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTE0MCwxMiArMTQwLDEzIEBACiAj
aW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgIVBMQVRGT1JNKElPUykKKyNpbXBvcnQgIldl
Yk5TRXZlbnRFeHRyYXMuaCIKKyNpbXBvcnQgIldlYk5TUGFzdGVib2FyZEV4dHJhcy5oIgogI2lt
cG9ydCA8QXBwS2l0L05TQWNjZXNzaWJpbGl0eS5oPgogI2ltcG9ydCA8QXBwbGljYXRpb25TZXJ2
aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05TTWVudVNQSS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgotI2ltcG9ydCAi
V2ViTlNFdmVudEV4dHJhcy5oIgotI2ltcG9ydCAiV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmgiCisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbmRp
ZgogCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KQEAgLTEzNTEsMTIgKzEzNTIs
OSBAQCAtICh2b2lkKV9wYXN0ZUFzUGxhaW5UZXh0V2l0aFBhc3RlYm9hcmQ6KE5TUGFzdGVib2Fy
ZCAqKXBhc3RlYm9hcmQKIAogLSAodm9pZClfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFn
c0NoYW5nZWRFdmVudDooTlNFdmVudCAqKWZsYWdzQ2hhbmdlZEV2ZW50CiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRF
dmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCisgICAgTlNFdmVu
dCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91
c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91
dHNpZGVPZkV2ZW50U3RyZWFtCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZl
bnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0YW1wIHdp
bmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKICAgICAgICAgY29udGV4
dDpudWxscHRyIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtzZWxmIG1vdXNlTW92ZWQ6ZmFrZUV2ZW50XTsK
IH0KIApAQCAtMTUwNiwxMCArMTUwNCw3IEBAIC0gKHZvaWQpX3NldE1vdXNlRG93bkV2ZW50OihX
ZWJFdmVudCAqKWV2ZW50CiAjZW5kaWYKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5
cGVdID09IE5TTGVmdE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1vdXNlRG93
biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNPdGhlck1vdXNlRG93bik7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgQVNTRVJUKCFldmVudCB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVMZWZ0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duKTsKICNl
bHNlCiAgICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09IFdlYkV2ZW50TW91c2VEb3du
KTsKICNlbmRpZgpAQCAtMTY2MSwxNiArMTY1NiwxNyBAQCAtIChpZClfYnJpZGdlCiAKIC0gKHZv
aWQpX3VwZGF0ZU1vdXNlb3ZlcldpdGhGYWtlRXZlbnQKIHsKKyAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCisg
ICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TTW91c2VNb3ZlZAotICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XSBjb252
ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICBjb252ZXJ0
U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBt
b2RpZmllckZsYWdzXQogICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5j
ZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93XSB3aW5k
b3dOdW1iZXJdCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICBldmVudE51bWJlcjow
IGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IAogICAgIFtzZWxmIF91cGRhdGVNb3VzZW92ZXJXaXRoRXZlbnQ6ZmFrZUV2ZW50XTsKIH0KQEAg
LTE4NjgsMTEgKzE4NjQsOCBAQCAtIChCT09MKV9pbnNpZGVBbm90aGVySFRNTFZpZXcKICNpZiAh
UExBVEZPUk0oSU9TKQogc3RhdGljIEJPT0wgaXNRdWlja0xvb2tFdmVudChOU0V2ZW50ICpldmVu
dCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjb25zdCBpbnQg
a0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9uUmVsZWFzZWQgPSA5OwotICAg
IHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNTeXN0ZW1EZWZpbmVkICYmIFtldmVudCBzdWJ0eXBl
XSA9PSBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxlYXNlZCAmJiBb
ZXZlbnQgZGF0YTFdID09ICdsa3VwJzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlU3lzdGVtRGVmaW5lZCAmJiBbZXZl
bnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9uUmVs
ZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7CiB9CiAjZW5kaWYKIApAQCAtMTkyOCwx
NCArMTkyMSwxMSBAQCAtIChOU1ZpZXcgKiloaXRUZXN0OihOU1BvaW50KXBvaW50CiAgICAgZWxz
ZSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaHkgZG9lc24ndCB0aGlzIGluY2x1ZGUgbW91c2UgZW50
ZXJlZC9leGl0ZWQgZXZlbnRzLCBvciBvdGhlciBtb3VzZSBidXR0b24gZXZlbnRzPwogICAgICAg
ICBOU0V2ZW50ICpldmVudCA9IFtbc2VsZiB3aW5kb3ddIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhcHR1cmVIaXRzT25TdWJ2aWV3
cyA9ICEoW2V2ZW50IHR5cGVdID09IE5TTW91c2VNb3ZlZAotICAgICAgICAgICAgfHwgW2V2ZW50
IHR5cGVdID09IE5TUmlnaHRNb3VzZURvd24KLSAgICAgICAgICAgIHx8IChbZXZlbnQgdHlwZV0g
PT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xL
ZXlNYXNrKSAhPSAwKQotICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFu
Z2VkCisgICAgICAgIGNhcHR1cmVIaXRzT25TdWJ2aWV3cyA9ICEoW2V2ZW50IHR5cGVdID09IE5T
RXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRXZl
bnRUeXBlUmlnaHRNb3VzZURvd24KKyAgICAgICAgICAgIHx8IChbZXZlbnQgdHlwZV0gPT0gTlNF
dmVudFR5cGVMZWZ0TW91c2VEb3duICYmIFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRN
b2RpZmllckZsYWdDb250cm9sKQorICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRXZl
bnRUeXBlRmxhZ3NDaGFuZ2VkCiAgICAgICAgICAgICB8fCBpc1F1aWNrTG9va0V2ZW50KGV2ZW50
KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAgICAgaWYgKCFjYXB0
dXJlSGl0c09uU3Vidmlld3MpIHsKQEAgLTIwMjMsOSArMjAxMyw3IEBAIC0gKHZvaWQpX3JlbW92
ZVRyYWNraW5nUmVjdHM6KE5TVHJhY2tpbmdSZWN0VGFnICopdGFncyBjb3VudDooaW50KWNvdW50
CiAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRXhpdGVkCiB7CiAgICAgLy8gTm90aGluZyBtYXR0
ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05T
RXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRXhpdGVkCisgICAgTlNFdmVudCAq
ZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1v
dXNlRXhpdGVkCiAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1v
ZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjAzNCwxNiArMjAyMiwxMyBA
QCAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRXhpdGVkCiAgICAgICAgIGV2ZW50TnVtYmVyOjAK
ICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAgdXNlckRh
dGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICAgICBbX3ByaXZhdGUtPnRyYWNraW5nUmVjdE93bmVyIG1vdXNlRXhpdGVkOmZh
a2VFdmVudF07CiB9CiAKIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4
Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0gICAgTlNFdmVudCAq
ZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRW50ZXJl
ZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5
cGU6TlNFdmVudFR5cGVNb3VzZUVudGVyZWQKICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQo
MCwgMCkKICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0y
MDUzLDcgKzIwMzgsNiBAQCAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRW50ZXJlZAogICAgICAg
ICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICB1c2VyRGF0YTpfcHJp
dmF0ZS0+dHJhY2tpbmdSZWN0VXNlckRhdGFdOwogICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0
T3duZXIgbW91c2VFbnRlcmVkOmZha2VFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIApAQCAtMjA4OSwyMSArMjA3MywxOCBA
QCAtIChOU1N0cmluZyAqKXZpZXc6KE5TVmlldyAqKXZpZXcgc3RyaW5nRm9yVG9vbFRpcDooTlNU
b29sVGlwVGFnKXRhZyBwb2ludDooTlNQbwogc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9m
Q2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0p
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xl
ZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBO
U0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAg
ICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2Vk
OgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1v
dXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91
c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURv
d246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3du
OgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogfQogCkBAIC0yMTM0LDE2ICsyMTE1LDE0IEBA
IC0gKHZvaWQpX3VwZGF0ZU1vdXNlb3ZlcldpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50CiAgICAg
ICAgIGZsb2F0IHlTY3JvbGwgPSB2aXNpYmxlUmVjdC5vcmlnaW4ueTsKICAgICAgICAgZmxvYXQg
eFNjcm9sbCA9IHZpc2libGVSZWN0Lm9yaWdpbi54OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TTW91c2VNb3ZlZAorICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKICAgICAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KC0xIC0geFNjcm9sbCwgLTEgLSB5U2Nyb2xsKQogICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0
ZV0KICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbW3ZpZXcgd2luZG93XSB3aW5kb3dOdW1iZXJd
CiAgICAgICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAg
Y2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
CiAgICAgICAgIGlmIChGcmFtZSogbGFzdEhpdENvcmVGcmFtZSA9IGNvcmUoW2xhc3RIaXRWaWV3
IF9mcmFtZV0pKQogICAgICAgICAgICAgbGFzdEhpdENvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCku
bW91c2VNb3ZlZChldmVudCwgW1tzZWxmIF93ZWJWaWV3XSBfcHJlc3N1cmVFdmVudF0pOwogICAg
IH0KQEAgLTIzMzAsMTYgKzIzMDksMTggQEAgLSAodm9pZClfYXV0b3Njcm9sbAogICAgIH0KIAog
I2lmICFQTEFURk9STShJT1MpCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZAorICAgICAgICBsb2Nh
dGlvbjpbW3NlbGYgd2luZG93XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xl
ZnRNb3VzZURyYWdnZWQKLSAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10gY29udmVydFNj
cmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAgICAgICAgY29udmVydFNjcmVl
blRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZp
ZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZl
cmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dOdW1iZXI6W1tzZWxmIHdpbmRvd10gd2luZG93TnVt
YmVyXQogICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAg
ICBbc2VsZiBtb3VzZURyYWdnZWQ6ZmFrZUV2ZW50XTsKICNlbmRpZgogfQpAQCAtMzM1NCwxMiAr
MzMzNSw5IEBAIC0gKEJPT0wpYWNjZXB0c0ZpcnN0UmVzcG9uZGVyCiAgICAgLy8gb3IgZnJvbSBj
YWxscyBiYWNrIGZyb20gV2ViQ29yZSBvbmNlIHdlIGJlZ2luIG1vdXNlLWRvd24gZXZlbnQgaGFu
ZGxpbmcuCiAjaWYgIVBMQVRGT1JNKElPUykgICAgICAgICAgICAKICAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duCisgICAgaWYgKFtl
dmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24KICAgICAgICAgICAgICYmICFf
cHJpdmF0ZS0+aGFuZGxpbmdNb3VzZURvd25FdmVudAogICAgICAgICAgICAgJiYgTlNQb2ludElu
UmVjdChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10sIFtzZWxmIGNvbnZlcnRSZWN0OltzZWxmIHZp
c2libGVSZWN0XSB0b1ZpZXc6bmlsXSkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
ICAgICAgICAgcmV0dXJuIE5POwogICAgIH0KICNlbHNlCkBAIC0zNTI4LDEzICszNTA2LDEwIEBA
IC0gKHZvaWQpdmlld0RpZE1vdmVUb1dpbmRvdwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAg
ICAgaWYgKCFfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBfcHJpdmF0ZS0+ZmxhZ3NDaGFu
Z2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hp
bmdNYXNrOk5TRmxhZ3NDaGFuZ2VkTWFzayBoYW5kbGVyOl4oTlNFdmVudCAqZmxhZ3NDaGFuZ2Vk
RXZlbnQpIHsKKyAgICAgICAgICAgIF9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3Ig
PSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNFdmVudE1h
c2tGbGFnc0NoYW5nZWQgaGFuZGxlcjpeKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CiAg
ICAgICAgICAgICAgICAgW3NlbGYgX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFu
Z2VkRXZlbnQ6ZmxhZ3NDaGFuZ2VkRXZlbnRdOwogICAgICAgICAgICAgICAgIHJldHVybiBmbGFn
c0NoYW5nZWRFdmVudDsKICAgICAgICAgICAgIH1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgW05TRXZlbnQgcmVtb3ZlTW9u
aXRvcjpfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yXTsKQEAgLTQ1NDAsMTEgKzQ1
MTUsMTIgQEAgLSAodm9pZCltb3VzZURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICBOU0lucHV0
TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5w
dXRNYW5hZ2VyXTsKIAogICAgIGlmICghW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRs
ZU1vdXNlRXZlbnRzXSB8fCAhW2N1cnJlbnRJbnB1dE1hbmFnZXIgaGFuZGxlTW91c2VFdmVudDpl
dmVudF0pIHsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW19wcml2YXRl
LT5jb21wbGV0aW9uQ29udHJvbGxlciBlbmRSZXZlcnRpbmdDaGFuZ2U6Tk8gbW92ZUxlZnQ6Tk9d
OwogCiAgICAgICAgIC8vIElmIHRoZSB3ZWIgcGFnZSBoYW5kbGVzIHRoZSBjb250ZXh0IG1lbnUg
ZXZlbnQgYW5kIG1lbnVGb3JFdmVudDogcmV0dXJucyBuaWwsIHdlJ2xsIGdldCBjb250cm9sIGNs
aWNrIGV2ZW50cyBoZXJlLgogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHBhc3MgdGhlbSBh
bG9uZyB0byBLSFRNTCBhIHNlY29uZCB0aW1lLgotICAgICAgICBpZiAoIShbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICBpZiAoIShbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAgICAgICAg
IF9wcml2YXRlLT5pZ25vcmluZ01vdXNlRHJhZ2dlZEV2ZW50cyA9IE5POwogCiAgICAgICAgICAg
ICAvLyBMZXQgV2ViQ29yZSBnZXQgYSBjaGFuY2UgdG8gZGVhbCB3aXRoIHRoZSBldmVudC4gVGhp
cyB3aWxsIGNhbGwgYmFjayB0byB1cwpAQCAtNDU1Myw3ICs0NTI5LDYgQEAgLSAodm9pZCltb3Vz
ZURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBjb3JlZnJhbWUtPmV2ZW50
SGFuZGxlcigpLm1vdXNlRG93bihldmVudCwgW1tzZWxmIF93ZWJWaWV3XSBfcHJlc3N1cmVFdmVu
dF0pOwogICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogI2Vu
ZGlmCiAKICAgICBfcHJpdmF0ZS0+aGFuZGxpbmdNb3VzZURvd25FdmVudCA9IE5POwpAQCAtNDgx
OCwxOSArNDc5MywxMiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50
S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gMDsKIAogICAg
IHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgY2FzZSBOU0tleURvd246IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
LQorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7CiAgICAgICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudCBwbGF0Zm9ybUV2ZW50ID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRm
b3JtS2V5Ym9hcmRFdmVudChldmVudCk7CiAgICAgICAgIHBsYXRmb3JtRXZlbnQuZGlzYW1iaWd1
YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwogICAgICAgICByZXR1
cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBsYXRmb3JtRXZlbnQsIGNvcmVGcmFtZS0+ZG9jdW1l
bnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIGNhc2UgTlNLZXlVcDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6CiAgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50
OjpjcmVhdGUoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVu
dChldmVudCksIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgcmV0dXJuIDA7CkBAIC01NTI0LDExICs1NDkyLDggQEAgLSAoQk9PTClf
aGFuZGxlU3R5bGVLZXlFcXVpdmFsZW50OihOU0V2ZW50ICopZXZlbnQKICAgICBpZiAoIVtzZWxm
IF9jYW5FZGl0XSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICgoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZp
Y2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrKSAhPSBOU0NvbW1hbmRLZXlNYXNrKQorICAg
IGlmICgoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUlu
ZGVwZW5kZW50RmxhZ3NNYXNrKSAhPSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkKICAgICAg
ICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgTlNTdHJp
bmcgKnN0cmluZyA9IFtldmVudCBjaGFyYWN0ZXJzXTsKICAgICBpZiAoW3N0cmluZyBjYXNlSW5z
ZW5zaXRpdmVDb21wYXJlOkAiYiJdID09IE5TT3JkZXJlZFNhbWUpIHsKQEAgLTY0NDgsMTQgKzY0
MTMsMTEgQEAgLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KEtleWJvYXJkRXZlbnQqKWV2ZW50
IHNhdmluZ0NvbW1hbmRzOihCT09MKXNhdmluZ0NvbW0KICAgICAgICAgcmV0dXJuIE5POwogCiAg
ICAgTlNFdmVudCAqbWFjRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5tYWNFdmVudCgpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0g
TlNLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZmlsdGVyS2V5RG93
bjptYWNFdmVudF0pCisgICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURv
d24gJiYgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBmaWx0ZXJLZXlEb3duOm1hY0V2
ZW50XSkKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICAKLSAgICBpZiAoW21hY0V2ZW50IHR5cGVd
ID09IE5TRmxhZ3NDaGFuZ2VkKQorICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5
cGVGbGFnc0NoYW5nZWQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICAgICAKICAgICBwYXJhbWV0ZXJzLmV2ZW50ID0gZXZlbnQ7CiAgICAgX3ByaXZh
dGUtPmludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgPSAmcGFyYW1ldGVyczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCA3OGY1NmU0OTFlMDg2YWFlOTgzYjM4
MDY5OWE1NTE1N2NkOThmZGJhLi45NjBjNjM3OWQxYWNlNjAwN2JlMTIwNTJhZTI4NDc0NzM1NDdk
ODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCkBAIC02NSw2ICs2
NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oPgog
I2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgor
I2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8QXBwbGljYXRpb25TZXJ2aWNlcy9B
cHBsaWNhdGlvblNlcnZpY2VzUHJpdi5oPgpAQCAtMzIxLDEwICszMjIsNyBAQCAtIChOU1ZpZXcg
KiloaXRUZXN0OihOU1BvaW50KXBvaW50CiAgICAgLy8gT3ZlcnJpZGUgaGl0VGVzdCBzbyB3ZSBj
YW4gb3ZlcnJpZGUgbWVudUZvckV2ZW50LgogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1
cnJlbnRFdmVudF07CiAgICAgTlNFdmVudFR5cGUgdHlwZSA9IFtldmVudCB0eXBlXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAodHlwZSA9PSBOU1JpZ2h0TW91
c2VEb3duIHx8ICh0eXBlID09IE5TTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNDb250cm9sS2V5TWFzaykpKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIGlmICh0eXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gfHwgKHR5cGUgPT0gTlNF
dmVudFR5cGVMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29udHJvbCkpKQogICAgICAgICByZXR1cm4gc2VsZjsKIAogICAgIHJldHVy
biBbc3VwZXIgaGl0VGVzdDpwb2ludF07CkBAIC0xMDA5LDM5ICsxMDA3LDMzIEBAIC0gKHZvaWQp
UERGVmlld1dpbGxDbGlja09uTGluazooUERGVmlldyAqKXNlbmRlciB3aXRoVVJMOihOU1VSTCAq
KVVSTAogICAgIGludCBidXR0b24gPSBub0J1dHRvbjsKICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50
OwogICAgIHN3aXRjaCAoW25zRXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICAgICAgYnV0
dG9uID0gMDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVw
OgotICAgICAgICAgICAgYnV0dG9uID0gMTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgYnV0dG9uID0gW25zRXZlbnQgYnV0dG9u
TnVtYmVyXTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5TS2V5RG93bjogewot
ICAgICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rv
cnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKLSAgICAgICAgICAgIHBl
LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKLSAg
ICAgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCAwKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVm
dE1vdXNlVXA6CisgICAgICAgIGJ1dHRvbiA9IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgICAgIGJ1dHRvbiA9IDE7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgICAgIGJ1dHRvbiA9
IFtuc0V2ZW50IGJ1dHRvbk51bWJlcl07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVu
dFR5cGVLZXlEb3duOiB7CisgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRm
b3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7Cisg
ICAgICAgIHBlLmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlE
b3duKTsKKyAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQog
ICAgIGlmIChidXR0b24gIT0gbm9CdXR0b24pIHsKICAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1l
KCksIDAsIFtuc0V2ZW50IGNsaWNrQ291bnRdLCAwLCAwLCAwLCAwLAogI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCiAgICAgICAgICAgICAwLCAwLAogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5T
Q29udHJvbEtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5T
QWx0ZXJuYXRlS2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYg
TlNTaGlmdEtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5T
Q29tbWFuZEtleU1hc2ssCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAg
ICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sLAor
ICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFn
T3B0aW9uLAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnU2hpZnQsCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kLAogICAgICAgICAgICAgYnV0dG9uLCAwLCBXZWJDb3Jl
OjpGb3JjZUF0Q2xpY2ssIDAsIDAsIHRydWUpOwogICAgIH0KIApAQCAtMTE0OSw5ICsxMTQxLDcg
QEAgLSAoTlNFdmVudCAqKV9mYWtlS2V5RXZlbnRXaXRoRnVuY3Rpb25LZXk6KHVuaWNoYXIpZnVu
Y3Rpb25LZXkKICAgICAvLyBGSVhNRSA0NDAwNDgwOiB3aGVuIFBERlZpZXcgaW1wbGVtZW50cyB0
aGUgc3RhbmRhcmQgc2Nyb2xsaW5nIHNlbGVjdG9ycyB0aGF0IHRoaXMKICAgICAvLyBtZXRob2Qg
aXMgdXNlZCB0byBtaW1pYywgd2UgY2FuIGVsaW1pbmF0ZSB0aGlzIG1ldGhvZCBhbmQgY2FsbCB0
aGVtIGRpcmVjdGx5LgogICAgIE5TU3RyaW5nICprZXlBc1N0cmluZyA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoQ2hhcmFjdGVyczomZnVuY3Rpb25LZXkgbGVuZ3RoOjFdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHJldHVybiBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBl
Ok5TS2V5RG93bgorICAgIHJldHVybiBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlS2V5RG93bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TWmVyb1Bv
aW50CiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTExNjEsNyArMTE1MSw2IEBAIC0gKE5TRXZl
bnQgKilfZmFrZUtleUV2ZW50V2l0aEZ1bmN0aW9uS2V5Oih1bmljaGFyKWZ1bmN0aW9uS2V5CiAg
ICAgICAgICBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6a2V5QXNTdHJpbmcKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlzQVJlcGVhdDpOTwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBrZXlDb2RlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiAtICh2
b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlGcm9tTWVudTooaWQpc2VuZGVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1t
CmluZGV4IDQzODJiMDQ0NzRlNjBjOGMyMzczMzA0N2I4MTM5NjRhNGY3ODQyNjMuLjdiOWU1ZGJj
ZjQ4YzIxNmI2YzU2NjMxMGMxNzRlNDMxMmM1NjI4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tCkBAIC0z
NSw2ICszNSw3IEBACiAjaW1wb3J0ICJXZWJUeXBlc0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJW
aWV3LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtp
dENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBOU1dpbmRvdyAoV2Vi
TlNXaW5kb3dEZXRhaWxzKQogLSAodm9pZClfc2V0Rm9yY2VBY3RpdmVDb250cm9sczooQk9PTClm
bGFnOwpAQCAtMTEyLDEwICsxMTMsNyBAQCAtICh2b2lkKV9idWlsZFVJCiAgICAgW3Njcm9sbFZp
ZXcgc2V0RG9jdW1lbnRWaWV3Ol90YWJsZVZpZXddOwogICAgIFtfdGFibGVWaWV3IHJlbGVhc2Vd
OwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIF9wb3B1cFdp
bmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6c2Nyb2xsRnJhbWUg
c3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1
ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBfcG9w
dXBXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnNjcm9sbEZy
YW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbX3BvcHVwV2luZG93IHNldEFscGhhVmFs
dWU6MC44OGZdOwogICAgIFtfcG9wdXBXaW5kb3cgc2V0Q29udGVudFZpZXc6c2Nyb2xsVmlld107
CiAgICAgW3Njcm9sbFZpZXcgcmVsZWFzZV07CkBAIC0xNTUsOCArMTUzLDggQEAgLSAodm9pZClf
cGxhY2VQb3B1cFdpbmRvdzooTlNQb2ludCl0b3BMZWZ0CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCiAgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TU2Nyb2xsVmlldyBmcmFt
ZVNpemVGb3JDb250ZW50U2l6ZTpOU01ha2VTaXplKG1heFdpZHRoLCAxMDAuMGYpIGhhc0hvcml6
b250YWxTY3JvbGxlcjpOTyBoYXNWZXJ0aWNhbFNjcm9sbGVyOllFUyBib3JkZXJUeXBlOk5TTm9C
b3JkZXJdLndpZHRoKTsKLSAgICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNXaW5kb3cgZnJhbWVS
ZWN0Rm9yQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLjBmLCAwLjBmLCBtYXhXaWR0aCwgMTAwLjBm
KSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFza10uc2l6ZS53aWR0aCk7CiAjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TV2luZG93
IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4V2lkdGgs
IDEwMC4wZikgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzc10uc2l6ZS53aWR0
aCk7CiAgICAgICAgIG1heFdpZHRoICs9IDUuMGY7CiAgICAgICAgIHdpbmRvd0ZyYW1lLnNpemUu
d2lkdGggPSBzdGQ6Om1heChtYXhXaWR0aCwgd2luZG93RnJhbWUuc2l6ZS53aWR0aCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDdjZmFhODdiNTU2ZWI0NzZi
ZjNjNWZlZDVlMDNlNjhmYmEyZGU0YmYuLmJlMzI2ZTdmOGU3MzI3Njk5NmRkY2U1YzkzMzJhZjQ2
YjlhZjcxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIxMyw2ICsy
MTMsNyBAQAogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29t
cGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vZHlsZFNQ
SS5oPgogCiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTYwOTUsMTAgKzYwOTYsNyBAQCAtIChEcmFn
QXBwbGljYXRpb25GbGFncylhcHBsaWNhdGlvbkZsYWdzOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRy
YWdnaW5nSW5mbwogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25IYXNBdHRhY2hlZFNo
ZWV0OwogICAgIGlmIChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlXSA9PSBzZWxmKQogICAg
ICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVy
RmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIGlmIChbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50
TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25Jc0Nv
cHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEcmFnQXBwbGljYXRpb25GbGFncz4o
ZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFBy
b2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5t
bQppbmRleCAyZTY1ODA2ZGI1ZDY4ZjBhNGEyODJkMzgzYjk2ZTdiNDUxNmI5MDQwLi5iMGM1NTRk
NGRhNjIzZDk5YjAxNDM1ODY3YjIwNzcyNWI4Njc0NTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCA8
cHdkLmg+CiAjaW1wb3J0IDxzdGRsaWIuaD4KICNpbXBvcnQgPHN5c2V4aXRzLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0
Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CkBAIC0xOTcsMTAgKzE5OCw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29w
KCkKICAgICBBU1NFUlQoW05TQXBwIGlzUnVubmluZ10pOwogICAgIFtOU0FwcCBzdG9wOm5pbF07
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0aW9uRGVmaW5lZCBsb2Nh
dGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAuMCB3aW5k
b3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBkYXRhMjowXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90
aGVyRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCBsb2NhdGlvbjpO
U01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAuMCB3aW5kb3dOdW1i
ZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBkYXRhMjowXTsKICAgICBbTlNBcHAg
cG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggYTg1ZWZjYWVlOWE1MmQ4YzA0
NTY2NmQ5NGM0OTE4NzBjYTY4YTdkMy4uMmYxNThjMDNlM2JlMzgzOGMwNjNiMjFiMjBmYzlmNjdj
NzJiOWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZh
Y3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3Rvcnku
bW0KQEAgLTYzLDc4ICs2Myw2OSBAQCBzdGF0aWMgV2ViTW91c2VFdmVudDo6QnV0dG9uIGN1cnJl
bnRNb3VzZUJ1dHRvbigpCiAKIHN0YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0
b25Gb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVm
dE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5T
TGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpMZWZ0
QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNS
aWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAg
ICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090
aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6
TWlkZGxlQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViTW91
c2VFdmVudDo6TWlkZGxlQnV0dG9uOwogI2lmIGRlZmluZWQoX19MUDY0X18pCi0gICAgICAgIGNh
c2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAj
ZW5kaWYKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNl
RXhpdGVkOgotICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRNb3VzZUJ1dHRvbigpOwotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOwor
ICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlRXhpdGVkOgorICAgICAgICByZXR1cm4gY3VycmVudE1vdXNlQnV0dG9uKCk7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOwogICAgIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KIAogc3RhdGljIFdlYkV2ZW50OjpUeXBlIG1v
dXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAg
Y2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0g
ICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91
c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7Ci0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJldHVybiBXZWJF
dmVudDo6TW91c2VEb3duOwotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNh
c2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAg
ICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlVXA7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVm
dE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3Zl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNl
TW92ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3du
OgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlRG93bjsKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1v
dXNlVXA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7
CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgaW50IGNs
aWNrQ291bnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNl
IE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBj
YXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURy
YWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090
aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICAg
ICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIHJldHVybiAwOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURy
YWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgICAgICByZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiAwOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0K
IAogc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKQEAg
LTE0MywyMiArMTM0LDE5IEBAIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNF
dmVudCAqZXZlbnQpCiAjaWYgZGVmaW5lZChfX0xQNjRfXykKICAgICBjYXNlIE5TRXZlbnRUeXBl
UHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAg
ICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICBjYXNl
IE5TTW91c2VFeGl0ZWQ6Ci0gICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU090aGVy
TW91c2VEb3duOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TT3Ro
ZXJNb3VzZVVwOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICBjYXNlIE5TUmlnaHRN
b3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICBjYXNlIE5TU2Nyb2xs
V2hlZWw6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3Vz
ZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmln
aHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsOgogICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6Z2xvYmFsUG9pbnQoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBb
ZXZlbnQgd2luZG93XSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIE5TWmVyb1BvaW50
OwpAQCAtMTcxLDIyICsxNTksMTkgQEAgc3RhdGljIE5TUG9pbnQgcG9pbnRGb3JFdmVudChOU0V2
ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KQogI2lmIGRlZmluZWQoX19MUDY0X18pCiAg
ICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgY2FzZSBOU0xl
ZnRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgIGNhc2UgTlNNb3Vz
ZUVudGVyZWQ6Ci0gICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgIGNhc2UgTlNNb3VzZU1vdmVk
OgotICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdn
ZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246
Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6
Ci0gICAgY2FzZSBOU1Njcm9sbFdoZWVsOiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAg
IGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNl
RXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVNjcm9sbFdoZWVsOiB7CiAgICAgICAgIC8vIE5vdGU6IFRoaXMgd2lsbCBoYXZlIGl0cyBvcmln
aW4gYXQgdGhlIGJvdHRvbSBsZWZ0IG9mIHRoZSB3aW5kb3cgdW5sZXNzIHdpbmRvd1ZpZXcgaXMg
ZmxpcHBlZC4KICAgICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0
cyBmbGlwcGVkIGJ5IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93LgogICAgICAg
ICBOU1BvaW50IGxvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOwpAQCAtMjQwLDEw
ICsyMjUsNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyB0ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2
ZW50LCBib29sIHJlcGxhY2VzU29mdFNwYWNlKQogewogICAgIGlmIChyZXBsYWNlc1NvZnRTcGFj
ZSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZl
bnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAgICBy
ZXR1cm4gU3RyaW5nKFtldmVudCBjaGFyYWN0ZXJzXSk7CiB9CkBAIC0yNTIsMTAgKzIzNCw3IEBA
IHN0YXRpYyBpbmxpbmUgU3RyaW5nIHVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2
ZW50LCBib29sIHJlcGxhY2VzU29mdFNwCiB7CiAgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQog
ICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5
cGVGbGFnc0NoYW5nZWQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVy
biBTdHJpbmcoW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10pOwogfQpAQCAtMjY0
LDc0ICsyNDMsNjggQEAgc3RhdGljIGJvb2wgaXNLZXlwYWRFdmVudChOU0V2ZW50KiBldmVudCkK
IHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgaXMgdGhlIHR5cGUgb2YgZXZlbnQgdGhhdCBoYXMg
YSBrZXlDb2RlLgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNLZXlEb3duOgotICAgICAgICBjYXNl
IE5TS2V5VXA6Ci0gICAgICAgIGNhc2UgTlNGbGFnc0NoYW5nZWQ6Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlS2V5VXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZDoK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8v
IENsZWFyCi0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAg
ICAgICBjYXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2
OTogLy8gKwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAu
Ci0gICAgICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBj
YXNlIDg0OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8g
NAotICAgICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAg
Y2FzZSA4OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8v
IDkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xl
YXIKKyAgICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8v
ICoKKyAgICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8v
IEVudGVyCisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgz
OiAvLyAxCisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2
OiAvLyA0CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5
OiAvLyA3CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMg
aW5saW5lIGJvb2wgaXNLZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0No
YW5nZWQpCi0gICAgICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcDsKKyAgICBpZiAo
W2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm4g
W2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgLy8gRklYTUU6IFRoaXMgbG9n
aWMgZmFpbHMgaWYgdGhlIHVzZXIgcHJlc3NlcyBib3RoIFNoaWZ0IGtleXMgYXQgb25jZSwgZm9y
IGV4YW1wbGU6CiAgICAgLy8gd2UgdHJlYXQgcmVsZWFzaW5nIG9uZSBvZiB0aGVtIGFzIGtleURv
d24uCiAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA1NDogLy8g
UmlnaHQgQ29tbWFuZAotICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAgICAgICAg
ICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykgPT0g
MDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU3OiAvLyBDYXBzbG9jawotICAgICAgICAg
ICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FscGhhU2hpZnRLZXlNYXNrKSA9
PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAg
ICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1v
ZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKLSAgICAgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0g
ICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5
TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwK
LSAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAgICAgcmV0dXJuIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAg
Ci0gICAgICAgIGNhc2UgNjM6IC8vIEZ1bmN0aW9uCi0gICAgICAgICAgICByZXR1cm4gKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRnVuY3Rpb25LZXlNYXNrKSA9PSAwOworICAgIGNhc2UgNTQ6
IC8vIFJpZ2h0IENvbW1hbmQKKyAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKKyAgICAgICAg
cmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1h
bmQpOworCisgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrKTsKKworICAgIGNh
c2UgNTY6IC8vIExlZnQgU2hpZnQKKyAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAgICAg
ICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hp
ZnQpOworCisgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKKyAgICBjYXNlIDYxOiAvLyBSaWdodCBB
bHQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ09wdGlvbik7CisKKyAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKKyAgICBjYXNlIDYy
OiAvLyBSaWdodCBDdHJsCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKTsKKworICAgIGNhc2UgNjM6IC8vIEZ1bmN0aW9u
CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdGdW5jdGlvbik7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAg
IHJldHVybiBmYWxzZTsKIH0KIApAQCAtNDg0LDEwICs0NTcsNyBAQCBXZWJLZXlib2FyZEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwg
Ym9vbCBoYQogICAgIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUgICAgICAgPSB3aW5kb3dzS2V5
Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKICAgICBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUgICAg
ICAgID0gW2V2ZW50IGtleUNvZGVdOwogICAgIGludCBtYWNDaGFyQ29kZSAgICAgICAgICAgICAg
ICAgPSBXS0dldE5TRXZlbnRLZXlDaGFyKGV2ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBib29sIGF1dG9SZXBlYXQgICAgICAgICAgICAgICAgID0gKFtldmVu
dCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkgJiYgW2V2ZW50IGlzQVJlcGVhdF07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgYm9vbCBhdXRvUmVwZWF0ICAgICAgICAgICAgICAg
ICA9IFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNB
UmVwZWF0XTsKICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNLZXlwYWRF
dmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9IGZhbHNl
OyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2ViRXZlbnQ6
Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAzMmU2Mzlj
NGQ5MTlhZDE2ZTlhOTQ4MmI5MzVjZWYwNDYzNzcxZmJhLi43NjNkOTA2MDU3NTk5M2Q4Y2IwNzNj
NmFhNGUwOTVjMGRiYjRhODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC05Myw2ICs5Myw3IEBACiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KICNpbXBvcnQgPHN5cy9zdGF0Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0
aW9ucy9XZWJWaWV3SW1wbEluY2x1ZGVzLmg+CkBAIC02MjAsMTEgKzYyMSw4IEBAIGJvb2wgV2Vi
Vmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKCkKICAgICBpZiAoZGlyZWN0aW9uICE9IE5T
RGlyZWN0U2VsZWN0aW9uKSB7CiAgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJl
bnRFdmVudF07CiAgICAgICAgIE5TRXZlbnQgKmtleWJvYXJkRXZlbnQgPSBuaWw7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0g
TlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKQorICAgICAgICBpZiAoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5
cGVLZXlVcCkKICAgICAgICAgICAgIGtleWJvYXJkRXZlbnQgPSBldmVudDsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0
aW9uID09IE5TU2VsZWN0aW5nTmV4dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCwgZmFsc2UsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6
OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsgfSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAt
ODQ4LDEwICs4NDYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVDb250ZW50SW5zZXRzSWZB
dXRvbWF0aWMoKQogICAgICAgICByZXR1cm47CiAKICAgICBOU1dpbmRvdyAqd2luZG93ID0gbV92
aWV3LndpbmRvdzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAo
KHdpbmRvdy5zdHlsZU1hc2sgJiBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrKSAmJiAh
d2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50ICYmICFbbV92aWV3IGVuY2xvc2luZ1Nj
cm9sbFZpZXddKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKCh3aW5k
b3cuc3R5bGVNYXNrICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3KSAmJiAh
d2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50ICYmICFbbV92aWV3IGVuY2xvc2luZ1Nj
cm9sbFZpZXddKSB7CiAgICAgICAgIE5TUmVjdCBjb250ZW50TGF5b3V0UmVjdCA9IFttX3ZpZXcg
Y29udmVydFJlY3Q6d2luZG93LmNvbnRlbnRMYXlvdXRSZWN0IGZyb21WaWV3Om5pbF07CiAgICAg
ICAgIENHRmxvYXQgbmV3VG9wQ29udGVudEluc2V0ID0gTlNNYXhZKGNvbnRlbnRMYXlvdXRSZWN0
KSAtIE5TSGVpZ2h0KGNvbnRlbnRMYXlvdXRSZWN0KTsKICAgICAgICAgaWYgKG1fdG9wQ29udGVu
dEluc2V0ICE9IG5ld1RvcENvbnRlbnRJbnNldCkKQEAgLTEyMjgsMTAgKzEyMjMsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93KCkKIAogICAgICAgICBpZiAoIW1fZmxh
Z3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7CiAgICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gY3Jl
YXRlV2Vha1B0cigpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0
b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6W3dlYWtU
aGlzXSAoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZl
bnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrRmxhZ3ND
aGFuZ2VkIGhhbmRsZXI6W3dlYWtUaGlzXSAoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsK
ICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIHdlYWtU
aGlzLT5wb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50KGZsYWdzQ2hh
bmdlZEV2ZW50KTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CkBA
IC0xMzAyLDEyICsxMjk0LDkgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6aGl0VGVzdChDR1BvaW50
IHBvaW50KQogCiB2b2lkIFdlYlZpZXdJbXBsOjpwb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZs
YWdzQ2hhbmdlZEV2ZW50KE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2Vk
RXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQorICAgIE5TRXZl
bnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1v
dXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25P
dXRzaWRlT2ZFdmVudFN0cmVhbQogICAgICAgICBtb2RpZmllckZsYWdzOmZsYWdzQ2hhbmdlZEV2
ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1wOmZsYWdzQ2hhbmdlZEV2ZW50LnRpbWVzdGFtcCB3
aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93TnVtYmVyCiAgICAgICAgIGNvbnRl
eHQ6bnVsbHB0ciBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50
KGZha2VFdmVudCwgbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgbV92aWV3KTsKICAgICBtX3Bh
Z2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOwogfQpAQCAtMTY1NiwxMCArMTY0NSw3IEBA
IE5TVmlldyAqV2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcoKQogTlNXaW5k
b3cgKldlYlZpZXdJbXBsOjpjcmVhdGVGdWxsU2NyZWVuV2luZG93KCkKIHsKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
cmV0dXJuIFtbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRS
ZWN0OltbTlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazooTlNCb3JkZXJsZXNz
V2luZG93TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzaykgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOk5PXSBhdXRvcmVsZWFzZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgcmV0dXJuIFtbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazoo
TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUp
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVhc2VdOwog
I2Vsc2UKICAgICByZXR1cm4gbmlsOwogI2VuZGlmCkBAIC0yNjMxLDkgKzI2MTcsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpyZW1vdmVUcmFja2luZ1JlY3RzKE5TVHJhY2tpbmdSZWN0VGFnICp0YWdz
LCBpbnQgY291bnQpCiB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCkK
IHsKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIs
IGFuZCB1c2VyRGF0YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBO
U0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91
c2VFeGl0ZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVu
dFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFeGl0ZWQKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDow
CkBAIC0yNjQyLDE2ICsyNjI2LDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91
c2VFeGl0ZWQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhOm1fdHJhY2tpbmdSZWN0VXNlckRhdGFd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFttX3RyYWNraW5nUmVjdE93bmVy
IG1vdXNlRXhpdGVkOmZha2VFdmVudF07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29s
VGlwTW91c2VFbnRlcmVkKCkKIHsKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRv
dywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRF
dmVudFdpdGhUeXBlOk5TTW91c2VFbnRlcmVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05T
RXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNN
YWtlUG9pbnQoMCwgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTI2NjAsNyArMjY0MSw2IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnNlbmRUb29sVGlwTW91c2VFbnRlcmVkKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YTptX3Ry
YWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBb
bV90cmFja2luZ1JlY3RPd25lciBtb3VzZUVudGVyZWQ6ZmFrZUV2ZW50XTsKIH0KIApAQCAtMjgx
NiwxMCArMjc5Niw3IEBAIHN0YXRpYyBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncyBhcHBs
aWNhdGlvbkZsYWdzRm9yRHJhZyhOU1ZpZXcgKnZpZXcsIGlkIDxOCiAgICAgICAgIGZsYWdzIHw9
IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkhhc0F0dGFjaGVkU2hlZXQ7CiAgICAgaWYgKGRyYWdn
aW5nSW5mby5kcmFnZ2luZ1NvdXJjZSA9PSB2aWV3KQogICAgICAgICBmbGFncyB8PSBXZWJDb3Jl
OjpEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICBpZiAoW05TQXBwIGN1cnJlbnRFdmVudF0ubW9kaWZpZXJGbGFncyAmIE5TQWx0
ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW05T
QXBwIGN1cnJlbnRFdmVudF0ubW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24pCiAgICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbklzQ29weUtleURv
d247CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdz
PihmbGFncyk7CiAKQEAgLTMzNTksMTAgKzMzMzYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzbWFy
dE1hZ25pZnlXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNl
dExhc3RNb3VzZURvd25FdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gTlNM
ZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNSaWdodE1vdXNlRG93biB8fCBldmVudC50
eXBlID09IE5TT3RoZXJNb3VzZURvd24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURv
d24gfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8IGV2ZW50LnR5
cGUgPT0gTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bik7CiAKICAgICBpZiAoZXZlbnQgPT0gbV9s
YXN0TW91c2VEb3duRXZlbnQuZ2V0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMzOTksMTEgKzMz
NzMsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiB2
b2lkIFdlYlZpZXdJbXBsOjpkb25lV2l0aEtleUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGV2
ZW50V2FzSGFuZGxlZCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9
IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogCiAgICAgaWYgKHRyeVBvc3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1
dEtleURvd24oZXZlbnQpKQogICAgICAgICByZXR1cm47CkBAIC0zNDc5LDExICszNDUwLDggQEAg
VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gV2ViVmlld0ltcGw6OmNvbGxlY3RLZXli
b2FyZExheW91dENvbW1hbmRzRm9yRXYKIHsKICAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBjb21tYW5kczsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlwZV0g
IT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1cm4gY29tbWFuZHM7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBBU1NFUlQoIW1fY29sbGVjdGVkS2V5cHJlc3ND
b21tYW5kcyk7CiAgICAgbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzID0gJmNvbW1hbmRzOwpA
QCAtMzg1OCwxMSArMzgyNiw4IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFs
ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIC8vIFdlIGdldCBFc2Mga2V5IGhlcmUgYWZ0ZXIgcHJv
Y2Vzc2luZyBlaXRoZXIgRXNjIG9yIENtZCtwZXJpb2QuIFRoZSBmb3JtZXIgc3RhcnRzIGFzIGEg
a2V5RG93biwgYW5kIHRoZSBsYXR0ZXIgc3RhcnRzIGFzIGEga2V5IGVxdWl2YWxlbnQsCiAgICAg
Ly8gYnV0IGJvdGggZ2V0IHRyYW5zZm9ybWVkIHRvIGEgY2FuY2VsT3BlcmF0aW9uOiBjb21tYW5k
LCBleGVjdXRpbmcgd2hpY2ggcGFzc2VzIGFuIEVzYyBrZXkgZXZlbnQgdG8gLXBlcmZvcm1LZXlF
cXVpdmFsZW50Oi4KICAgICAvLyBEb24ndCBpbnRlcnByZXQgdGhpcyBldmVudCBhZ2FpbiwgYXZv
aWRpbmcgcmUtZW50cmFuY3kgYW5kIGluZmluaXRlIGxvb3BzLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlm
aWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykpCisgICAgaWYgKFtbZXZlbnQg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5k
ZW50RmxhZ3NNYXNrKSkKICAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3dlYl9zdXBlclBlcmZvcm1L
ZXlFcXVpdmFsZW50OmV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAg
IGlmIChtX2tleURvd25FdmVudEJlaW5nUmVzZW50KSB7CiAgICAgICAgIC8vIFdlYkNvcmUgaGFz
IGFscmVhZHkgc2VlbiB0aGUgZXZlbnQsIG5vIG5lZWQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblBy
b2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9Q
bHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KaW5kZXggZjA3ZDI3OWQ2MzdkMzBmOGY1MDUzMTdkOGYw
OTYwNTU3YTExZDJkMi4uOGYzN2Q0MjYxNTJiNjE3ZDU1YzkxNDg4MTUxMTRmOGMzMzllN2M1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblBy
b2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9t
YWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0IDxj
cnRfZXh0ZXJucy5oPgogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPHNwYXduLmg+
CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNp
bXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogQGludGVyZmFjZSBXS1BsYWNlaG9sZGVyTW9k
YWxXaW5kb3cgOiBOU1dpbmRvdyAKQEAgLTIzMSwxMCArMjMyLDcgQEAgdm9pZCBQbHVnaW5Qcm9j
ZXNzUHJveHk6OmJlZ2luTW9kYWwoKQogICAgIEFTU0VSVCghbV9wbGFjZWhvbGRlcldpbmRvdyk7
CiAgICAgQVNTRVJUKCFtX2FjdGl2YXRpb25PYnNlcnZlcik7CiAgICAgCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgbV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0TlMo
W1tXS1BsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNN
YWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNr
aW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgbV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0TlMoW1tXS1BsYWNl
aG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgw
LCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6
TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKICAgICBbbV9wbGFjZWhvbGRlcldp
bmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOwogICAgIAogICAgIG1fYWN0aXZhdGlvbk9i
c2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZl
ckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVBY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0
Ok5TQXBwIHF1ZXVlOm5pbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IGE0ODM5NjRkOGYxZjIyNmQ0YWVjYzI3
Y2NiMGYwNzYwNzFiN2JiZDEuLmJiNWFkN2MyMWU4MTBjYTM2NTY1ZWNjNzc3ZDA2YWYzMWJiMDI4
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1l
bnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRl
eHRNZW51UHJveHlNYWMubW0KQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTlNT
aGFyaW5nU2VydmljZVNQSS5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGli
aWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQ2
MywxMCArNDY0LDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpzaG93Q29udGV4dE1l
bnVXaXRoSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW4KICAgICBbW1dLTWVudVRhcmdl
dCBzaGFyZWRNZW51VGFyZ2V0XSBzZXRNZW51UHJveHk6dGhpc107CiAKICAgICBOU1BvaW50IG1l
bnVMb2NhdGlvbiA9IFttX3dlYlZpZXcgY29udmVydFBvaW50Om1fY29udGV4dC5tZW51TG9jYXRp
b24oKSB0b1ZpZXc6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91
c2VVcCBsb2NhdGlvbjptZW51TG9jYXRpb24gbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdp
bmRvd051bWJlcjptX3dlYlZpZXcud2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVu
dE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcCBsb2NhdGlvbjptZW51TG9jYXRpb24gbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjptX3dlYlZpZXcud2luZG93LndpbmRvd051
bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsK
ICAgICBbTlNNZW51IHBvcFVwQ29udGV4dE1lbnU6bV9tZW51LmdldCgpIHdpdGhFdmVudDpldmVu
dCBmb3JWaWV3Om1fd2ViVmlld107CiAKICAgICBpZiAobV9jb250ZXh0TWVudUxpc3RlbmVyKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclBy
b3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94
eU1hYy5tbQppbmRleCAwYTc5OTEzNDZkMTVjY2ZhYzc3NDM1ZWYzMGVmOGRmODIyYWZhZTIzLi5m
MDZiNTg0MmFjZDUzNGRmZTI0MTBmZWNhOWExYWRmYjZlYTk3Nzk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KQEAgLTQx
LDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogCiBTT0ZUX0xJTktf
U1RBR0VEX0ZSQU1FV09SSyhXZWJJbnNwZWN0b3JVSSwgUHJpdmF0ZUZyYW1ld29ya3MsIEEpCkBA
IC00OCwxMCArNDksNyBAQCBTT0ZUX0xJTktfU1RBR0VEX0ZSQU1FV09SSyhXZWJJbnNwZWN0b3JV
SSwgUHJpdmF0ZUZyYW1ld29ya3MsIEEpCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LXN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHdpbmRvd1N0eWxlTWFzayA9IE5TVGl0bGVkV2luZG93
TWFzayB8IE5TQ2xvc2FibGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sg
fCBOU1Jlc2l6YWJsZVdpbmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNr
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorc3RhdGljIGNvbnN0IE5TVUludGVnZXIg
d2luZG93U3R5bGVNYXNrID0gTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxl
TWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93
U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3
OwogCiAvLyBUaGUgdGltZSB3ZSBrZWVwIG91ciBXZWJWaWV3IGFsaXZlIGJlZm9yZSBjbG9zaW5n
IGl0IGFuZCBpdHMgcHJvY2Vzcy4KIC8vIFJldXNpbmcgdGhlIFdlYlZpZXcgaW1wcm92ZXMgc3Rh
cnQgdXAgdGltZSBmb3IgcGVvcGxlIHRoYXQganVtcCBpbiBhbmQgb3V0IG9mIHRoZSBJbnNwZWN0
b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVu
dVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQ
cm94eU1hYy5tbQppbmRleCBkMjlkMDg5MDUyYzg4N2FmYjg2NDIzODQ1NWFhMTg4NGI0ZGQ0NjVj
Li5jMjI5ZmJkMGI4YmViYmFmMTE1YzM1M2U4M2M3ZTA4NDY1MDYwMzQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAg
LTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV2Vi
UG9wdXBJdGVtLmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQg
PHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtNzQsMTkgKzc1LDEzIEBAIHZvaWQgV2ViUG9wdXBNZW51UHJv
eHlNYWM6OnBvcHVsYXRlKGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgTlNGb250
ICpmCiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+IHBhcmFn
cmFwaFN0eWxlID0gYWRvcHROUyhbW05TUGFyYWdyYXBoU3R5bGUgZGVmYXVsdFBhcmFncmFwaFN0
eWxlXSBtdXRhYmxlQ29weV0pOwogICAgICAgICAgICAgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRp
bmdEaXJlY3Rpb24gPSBpdGVtc1tpXS5tX3RleHREaXJlY3Rpb24gPT0gTFRSID8gTlNXcml0aW5n
RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAg
ICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbjp3cml0aW5n
RGlyZWN0aW9uXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAg
ICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRS
ID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmlnaHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGln
bm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNUZXh0QWxpZ25tZW50TGVmdCA6IE5T
VGV4dEFsaWdubWVudFJpZ2h0XTsKICAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0
aW9uYXJ5PiBhdHRyaWJ1dGVzID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2Nd
IGluaXRXaXRoT2JqZWN0c0FuZEtleXM6CiAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGUu
Z2V0KCksIE5TUGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lLAogICAgICAgICAgICAgICAgIGZv
bnQsIE5TRm9udEF0dHJpYnV0ZU5hbWUsCiAgICAgICAgICAgICBuaWxdKTsKICAgICAgICAgICAg
IGlmIChpdGVtc1tpXS5tX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZSkgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU051bWJl
cj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVyIGFsbG9jXSBpbml0
V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVy
cmlkZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgICAgIFJl
dGFpblB0cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVt
YmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TV3JpdGluZ0Rp
cmVjdGlvbk92ZXJyaWRlXSk7CiAgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IHdy
aXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0TlMoW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9i
amVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxdKTsKICAgICAgICAgICAgICAg
ICBbYXR0cmlidXRlcyBzZXRPYmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktl
eTpOU1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1lXTsKICAgICAgICAgICAgIH0KQEAgLTE1
NCwxOCArMTQ5LDE1IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUo
Y29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAKICAgICBOU0NvbnRyb2xT
aXplIGNvbnRyb2xTaXplOwogICAgIHN3aXRjaCAoZGF0YS5tZW51U2l6ZSkgewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51U3R5
bGU6OlBvcHVwTWVudVNpemVOb3JtYWw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNSZWd1bGFy
Q29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVJlZ3VsYXI7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVw
TWVudVNpemVTbWFsbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1NtYWxsQ29udHJvbFNpemU7
CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVNtYWxsOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaToK
LSAgICAgICAgY29udHJvbFNpemUgPSBOU01pbmlDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJv
bFNpemUgPSBOU0NvbnRyb2xTaXplTWluaTsKICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAgICAgUmVmPFdlYlBvcHVwTWVudVByb3h5TWFjPiBw
cm90ZWN0KCp0aGlzKTsKQEAgLTE4MywxMyArMTc1LDExIEBAIHZvaWQgV2ViUG9wdXBNZW51UHJv
eHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0
ZXh0CiAgICAgaWYgKCFtX2NsaWVudC0+Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQo
KSkKICAgICAgICAgcmV0dXJuOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgogICAgIE5TRXZlbnQqIGluaXRpYXRpbmdOU0V2ZW50ID0gbV9jbGllbnQtPmN1cnJlbnRs
eVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCktPm5hdGl2ZUV2ZW50KCk7Ci0gICAgaWYgKFtpbml0
aWF0aW5nTlNFdmVudCB0eXBlXSAhPSBOU0xlZnRNb3VzZURvd24pCisgICAgaWYgKFtpbml0aWF0
aW5nTlNFdmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0xlZnRNb3VzZVVwCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W2luaXRpYXRpbmdOU0V2ZW50IGxv
Y2F0aW9uSW5XaW5kb3ddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
b2RpZmllckZsYWdzOltpbml0aWF0aW5nTlNFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ05T
RXZlbnQgdGltZXN0YW1wXQpAQCAtMTk4LDEzICsxODgsMTQgQEAgdm9pZCBXZWJQb3B1cE1lbnVQ
cm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9u
IHRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1i
ZXI6W2luaXRpYXRpbmdOU0V2ZW50IGV2ZW50TnVtYmVyXQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDpbaW5pdGlhdGluZ05TRXZlbnQgY2xpY2tD
b3VudF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1
cmU6W2luaXRpYXRpbmdOU0V2ZW50IHByZXNzdXJlXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107Cisg
ICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91
c2VNb3ZlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW21f
d2ViVmlldyB3aW5kb3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW21fd2ViVmlldyB3aW5k
b3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAgICAg
ICAgICAgICAgICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRp
b25dXQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ05TRXZlbnQgbW9kaWZpZXJGbGFnc10K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdO
U0V2ZW50IHRpbWVzdGFtcF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dO
dW1iZXI6W2luaXRpYXRpbmdOU0V2ZW50IHdpbmRvd051bWJlcl0KQEAgLTIxMiw3ICsyMDMsNiBA
QCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3Qm
IHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlja0Nv
dW50OjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6MF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZl
bnQgYXRTdGFydDpZRVNdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KaW5kZXggNWVkZTU2
ZWVlNDBhY2ZkYjk5MDExOWRlN2FjZTkxOGU2NzhiYzY2Ni4uMTI1MThkZjMzNGNmM2ZkZDY1OGRm
ODkxOWMzMzYxYjA4NDJlMmRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQpAQCAtODAsNiAr
ODAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuaD4KICNpbXBv
cnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+
CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEyNzgsMzMgKzEyNzksMjggQEAgdm9pZCBQ
REZQbHVnaW46OmRpZEV2YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJp
bmcmKQogICAgIAogc3RhdGljIE5TVUludGVnZXIgbW9kaWZpZXJGbGFnc0Zyb21XZWJFdmVudChj
b25zdCBXZWJFdmVudCYgZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNTaGlmdEtleU1hc2sgOiAwKQot
ICAgICAgICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0NvbnRyb2xLZXlNYXNrIDogMCkKLSAg
ICAgICAgfCAoZXZlbnQuYWx0S2V5KCkgPyBOU0FsdGVybmF0ZUtleU1hc2sgOiAwKQotICAgICAg
ICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0NvbW1hbmRLZXlNYXNrIDogMCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNFdmVu
dE1vZGlmaWVyRmxhZ1NoaWZ0IDogMCkKKyAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8g
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgOiAwKQorICAgICAgICB8IChldmVudC5hbHRLZXko
KSA/IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gOiAwKQorICAgICAgICB8IChldmVudC5tZXRh
S2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCA6IDApOwogfQogICAgIAogc3RhdGlj
IGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNF
dmVudFR5cGUmIGV2ZW50VHlwZSkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUoKSkgewogICAgIGNhc2UgV2ViRXZlbnQ6OktleURv
d246Ci0gICAgICAgIGV2ZW50VHlwZSA9IE5TS2V5RG93bjsKKyAgICAgICAgZXZlbnRUeXBlID0g
TlNFdmVudFR5cGVLZXlEb3duOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIFdlYkV2
ZW50OjpLZXlVcDoKLSAgICAgICAgZXZlbnRUeXBlID0gTlNLZXlVcDsKKyAgICAgICAgZXZlbnRU
eXBlID0gTlNFdmVudFR5cGVLZXlVcDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBX
ZWJFdmVudDo6TW91c2VEb3duOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdl
Yk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2
ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEb3du
OworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRC
dXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEb3duOworICAgICAg
ICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTMxMiwxMCArMTMwOCwxMCBAQCBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2Vi
RXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGNh
c2UgV2ViRXZlbnQ6Ok1vdXNlVXA6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3Qg
V2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNl
RXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZVVw
OworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VVcDsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0
dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlVXA7CisgICAgICAgICAg
ICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTMyMywxMyArMTMxOSwxMyBAQCBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQo
Y29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGNhc2UgV2Vi
RXZlbnQ6Ok1vdXNlTW92ZToKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBXZWJN
b3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVu
dDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRHJhZ2dl
ZDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJp
Z2h0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlRHJhZ2dlZDsK
KyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ7CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpOb0J1
dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTW91c2VNb3ZlZDsKKyAgICAgICAgICAg
IGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTW91c2VNb3ZlZDsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMz
Nyw3ICsxMzMzLDYgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0
IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
fQogICAgIAogTlNFdmVudCAqUERGUGx1Z2luOjpuc0V2ZW50Rm9yV2ViTW91c2VFdmVudChjb25z
dCBXZWJNb3VzZUV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCmlu
ZGV4IDZjNjBiZGRlOTVmZGQzMTdmNmI3MTRlMWY0NGY2ZWViMmYzM2QzMGIuLjYwMzFjNTkwZGMy
MzFlY2NmZWVhMjBhMDQ3Zjg1Njk2Y2E1ZDhhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3Rh
dGlvbi5tbQpAQCAtNDQsNiArNDQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEFyZWFF
bGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGFnZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01MywyMSArNTQsMTgg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogc3RhdGljIGNvbnN0IFN0cmluZyBjc3NB
bGlnbm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudChOU1RleHRBbGlnbm1lbnQgYWxpZ25tZW50
KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoYWxp
Z25tZW50KSB7Ci0gICAgY2FzZSBOU0xlZnRUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0
QWxpZ25tZW50TGVmdDoKICAgICAgICAgcmV0dXJuICJsZWZ0IjsKLSAgICBjYXNlIE5TUmlnaHRU
ZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50UmlnaHQ6CiAgICAgICAgIHJl
dHVybiAicmlnaHQiOwotICAgIGNhc2UgTlNDZW50ZXJUZXh0QWxpZ25tZW50OgorICAgIGNhc2Ug
TlNUZXh0QWxpZ25tZW50Q2VudGVyOgogICAgICAgICByZXR1cm4gImNlbnRlciI7Ci0gICAgY2Fz
ZSBOU0p1c3RpZmllZFRleHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnRKdXN0
aWZpZWQ6CiAgICAgICAgIHJldHVybiAianVzdGlmeSI7Ci0gICAgY2FzZSBOU05hdHVyYWxUZXh0
QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50TmF0dXJhbDoKICAgICAgICAgcmV0
dXJuICItd2Via2l0LXN0YXJ0IjsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RHJhZ0NsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXggYTM2ZjNiMzIzYWI5MTY1MTQ3N2JkM2M3
YmUyOGM2YTIzZGU5YjE3ZC4uNjI2ZTQzNmM2YWM0ZmU2YjlhN2ViNTNjMmQzNTZiZjc5NmZmNDQ3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRHJhZ0NsaWVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC00Niw2ICs0Niw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL1N0cmluZ1RydW5jYXRvci5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVt
SW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNjMsMTAgKzY0LDcgQEAgc3Rh
dGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBjb252ZXJ0SW1hZ2VUb0JpdG1hcChOU0lt
YWdlICppbWFnZSwgY29uc3QgSW4KICAgICBSZXRhaW5QdHI8TlNHcmFwaGljc0NvbnRleHQ+IHNh
dmVkQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07CiAKICAgICBb
TlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdy
YXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Z3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKSBmbGlwcGVkOllFU11dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCku
d2lkdGgoKSwgYml0bWFwLT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3Bl
cmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlwcGVkOllF
UyBoaW50czpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtpbWFnZSBk
cmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFw
LT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9z
aXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEgcmVzcGVjdEZsaXBwZWQ6WUVTIGhp
bnRzOm5pbF07CiAKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6c2F2
ZWRDb250ZXh0LmdldCgpXTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294112</attachid>
            <date>2016-11-07 18:38:38 -0800</date>
            <delta_ts>2016-11-07 19:01:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107183430.patch</filename>
            <type>text/plain</type>
            <size>159043</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KaW5kZXggYTZkNzgz
MjhlOWZlNjI3ZWYxNGFmYzljMGJkMGY2NjllYjI1NGQwYy4uNzI4ZDM0NGE5NDUwMzRiOWM3YTIw
ODVmNDU2M2RjMWJiNjk2NGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29y
TWFjLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgiCiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL1N0
ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgV2ViQ29yZUN1cnNvckJ1bmRsZSA6IE5TT2JqZWN0IHsg
fQogQGVuZApAQCAtNjQsMTAgKzY1LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0N1cnNvcj4gY3Jl
YXRlQ3VzdG9tQ3Vyc29yKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGhvdFMKICAgICAg
ICAgTlNSZWN0IGZyb21SZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBpbWFnZS0+d2lkdGgoKSwgaW1h
Z2UtPmhlaWdodCgpKTsKIAogICAgICAgICBbZXhwYW5kZWRJbWFnZSBsb2NrRm9jdXNdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbnNJbWFnZSBkcmF3SW5S
ZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VP
dmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
bnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07CiAgICAgICAgIFtleHBh
bmRlZEltYWdlIHVubG9ja0ZvY3VzXTsKIAogICAgICAgICByZXR1cm4gYWRvcHROUyhbW05TQ3Vy
c29yIGFsbG9jXSBpbml0V2l0aEltYWdlOmV4cGFuZGVkSW1hZ2UuZ2V0KCkgaG90U3BvdDpob3RT
cG90XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRl
eCA2ODI0NmJlZmE1MjNlZGZmM2I2MDVjNjAxMTg3MTlkNDcyOThkMDliLi4wZmY0MjAyMDBjYzhi
ZDM0ODdlNDU2Zjc3OTBlZGVlOTVlOGY1NDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgIlN0cmluZ1Ry
dW5jYXRvci5oIgogI2ltcG9ydCAiVGV4dFJ1bi5oIgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03NSwxMCArNzYsNyBAQCBSZXRhaW5QdHI8
TlNJbWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0cjxOU0ltYWdlPiBp
bWFnZSwgZmxvYXQgZAogICAgIFJldGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2ZWRJbWFnZSA9IGFk
b3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W2ltYWdlLmdldCgpIHNpemVdXSk7
CiAgICAgCiAgICAgW2Rpc3NvbHZlZEltYWdlLmdldCgpIGxvY2tGb2N1c107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5T
WmVyb1BvaW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBb
aW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGVDb3B5IGZyYWN0aW9uOmRl
bHRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbaW1hZ2UuZ2V0KCkgZHJh
d0F0UG9pbnQ6TlNaZXJvUG9pbnQgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbaW1hZ2Ugc2l6
ZV0ud2lkdGgsIFtpbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3Bl
cmF0aW9uQ29weSBmcmFjdGlvbjpkZWx0YV07CiAgICAgW2Rpc3NvbHZlZEltYWdlLmdldCgpIHVu
bG9ja0ZvY3VzXTsKIAogICAgIHJldHVybiBkaXNzb2x2ZWRJbWFnZTsKQEAgLTExOSwxMCArMTE3
LDggQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSog
aW1hZ2UsIEltYWdlT3JpZW50YXRpb25EZXNjcmkKICAgICAgICAgICAgIFtjb2NvYVRyYW5zZm9y
bS5nZXQoKSBzZXRUcmFuc2Zvcm1TdHJ1Y3Q6KihOU0FmZmluZVRyYW5zZm9ybVN0cnVjdCopJnRy
YW5zZm9ybV07CiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgY29uY2F0XTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW2ltYWdlLT5z
bmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3Qo
MCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3NpdGVT
b3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6ZGVzdFJlY3Qg
ZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIG9w
ZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBdOwor
CiAgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICAgICAgICAgIHJldHVybiByb3RhdGVkRHJhZ0ltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9FdmVudExvb3BNYWMubW0KaW5kZXggYWYwYTM5OTJiNjZlOWQ2ZmZjMDE3NzEyNDg1
NzYyNmEwMDVhNWU5MC4uYjljYzU0NWE5ODQ5MzRkNTQ2MGRkYmRmNWJkNGVjM2VhNzE1OTIyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tCkBAIC0yNSwx
NiArMjUsMTQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5o
IgorI2luY2x1ZGUgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRXZlbnRMb29wOjpjeWNsZSgpCiB7CiAgICAg
W05TQXBwIHNldFdpbmRvd3NOZWVkVXBkYXRlOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgW05TQXBwIHNlbmRFdmVudDpbTlNBcHAgbmV4dEV2ZW50TWF0Y2hp
bmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVy
dmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVT
XV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW05TQXBwIHNlbmRFdmVudDpb
TlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrQW55IHVudGlsRGF0ZTpbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1
bkxvb3BNb2RlIGRlcXVldWU6WUVTXV07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggYTVkZjM0
NzRjMzExYzZhNzU2MWQ3ZjRkNDQ1NTMxNGFhMDRkMDA3MC4uMWM0ZTNjMTk4MDMxY2ZmYTZmYTli
NjY1MjcxYWJmYTQ3MzJkNzYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW0KQEAgLTU1LDYgKzU1LDcgQEAKICNpbXBvcnQgIm1hcmt1cC5oIgogI2lt
cG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW1wb3J0IDx3dGYvdW5pY29kZS9DaGFyYWN0
ZXJOYW1lcy5oPgogCkBAIC02NTMsMTEgKzY1NCw4IEBAIHZvaWQgUGFzdGVib2FyZDo6c2V0RHJh
Z0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGxvY2F0aW9uKQogICAg
IC8vIEhhY2s6IFdlIG11c3QgcG9zdCBhbiBldmVudCB0byB3YWtlIHVwIHRoZSBOU0RyYWdNYW5h
Z2VyLCB3aGljaCBpcyBzaXR0aW5nIGluIGEgbmV4dEV2ZW50IGNhbGwKICAgICAvLyB1cCB0aGUg
c3RhY2sgZnJvbSB1cyBiZWNhdXNlIHRoZSBDb3JlRm91bmRhdGlvbiBkcmFnIG1hbmFnZXIgZG9l
cyBub3QgdXNlIHRoZSBydW4gbG9vcCBieSBpdHNlbGYuCiAgICAgLy8gVGhpcyBpcyB0aGUgbW9z
dCBpbm5vY3VvdXMgZXZlbnQgdG8gdXNlLCBwZXIgS3Jpc3RlbiBGb3JzdGVyLgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpOU1plcm9Qb2ludAorICAg
IE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TW91c2VNb3ZlZCBsb2NhdGlvbjpOU1plcm9Qb2ludAogICAgICAgICBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
W05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OllFU107CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bQppbmRleCBkMzRkNmVhZTk0OGY3YWZjYmFiMzMwMzE0ZmRjYmE3OGU5ZTQwMGI4Li4wZDJlMzE4
ZWNkZmIxMzA0MjM4NzdhNzMyZDgyZjg2OTE5NzY5N2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCkBAIC01Miwy
NyArNTIsMjQgQEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpl
dmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewogI2lmIGRlZmluZWQoX19MUDY0
X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEwMDMKLSAgICAgICAg
Y2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToK
ICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNl
IE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAg
ICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAg
ICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURy
YWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TU2Nyb2xsV2hlZWw6Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gZ2xvYmFsUG9pbnQoW2V2
ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICByZXR1cm4geyAwLCAwIH07CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVy
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsOgorICAgICAgICByZXR1
cm4gZ2xvYmFsUG9pbnQoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHsgMCwgMCB9OwogICAgIH0KIH0KIApAQCAt
ODAsMzMgKzc3LDMwIEBAIHN0YXRpYyBJbnRQb2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2
ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsK
ICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQg
Pj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAgICBjYXNlIE5T
RXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2Fz
ZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAg
Y2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Nj
cm9sbFdoZWVsOiB7Ci0gICAgICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBpdHMgb3Jp
Z2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dWaWV3IGlz
IGZsaXBwZWQuCi0gICAgICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0
ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCi0g
ICAgICAgICAgICBOU1BvaW50IGxvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOwot
ICAgICAgICAgICAgaWYgKHdpbmRvd1ZpZXcpCi0gICAgICAgICAgICAgICAgbG9jYXRpb24gPSBb
d2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9jYXRpb24gZnJvbVZpZXc6bmlsXTsKLSAgICAgICAg
ICAgIHJldHVybiBJbnRQb2ludChsb2NhdGlvbik7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBJbnRQ
b2ludCgpOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVTY3JvbGxXaGVlbDogeworICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBp
dHMgb3JpZ2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dW
aWV3IGlzIGZsaXBwZWQuCisgICAgICAgIC8vIEluIHRob3NlIGNhc2VzLCB0aGUgWSBjb29yZGlu
YXRlIGdldHMgZmxpcHBlZCBieSBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdy4K
KyAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKKyAg
ICAgICAgaWYgKHdpbmRvd1ZpZXcpCisgICAgICAgICAgICBsb2NhdGlvbiA9IFt3aW5kb3dWaWV3
IGNvbnZlcnRQb2ludDpsb2NhdGlvbiBmcm9tVmlldzpuaWxdOworICAgICAgICByZXR1cm4gSW50
UG9pbnQobG9jYXRpb24pOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gSW50
UG9pbnQoKTsKICAgICB9CiB9CiAKQEAgLTExNCw3MiArMTA4LDYzIEBAIHN0YXRpYyBNb3VzZUJ1
dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1
cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgcmV0dXJuIExlZnRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFJpZ2h0QnV0dG9uOwotICAgICAg
ICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBNaWRk
bGVCdXR0b247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICByZXR1cm4gTm9CdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gTGVmdEJ1dHRvbjsKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJp
Z2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAg
ICAgIHJldHVybiBSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURv
d246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBNaWRkbGVCdXR0b247CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIE5vQnV0dG9uOwogICAgIH0KIH0KIAogc3RhdGljIFBs
YXRmb3JtRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVGb3JFdmVudChOU0V2ZW50KiBldmVudCkK
IHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2Fz
ZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBj
YXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAg
ICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZDsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3du
OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUmVsZWFzZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgICAgICByZXR1cm4gUGxhdGZvcm1F
dmVudDo6TW91c2VQcmVzc2VkOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlVXA6CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOwog
ICAgIH0KIH0KIAogc3RhdGljIGludCBjbGlja0NvdW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQp
CiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRHJhZ2dlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAg
IHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURy
YWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dl
ZDoKKyAgICAgICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiB9CiAKQEAgLTQ5NywyOCArNDgyLDI4IEBAIFN0cmluZyBr
ZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkgewogICAgICAgICBzd2l0Y2ggKFtl
dmVudCBrZXlDb2RlXSkgewotICAgICAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAot
ICAgICAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFN0cmluZygiTWV0YSIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1
NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDYXBzTG9jayIp
OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAot
ICAgICAgICAgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgICAgICByZXR1
cm4gU3RyaW5nKCJTaGlmdCIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1
ODogLy8gTGVmdCBBbHQKLSAgICAgICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAg
ICAgICAgICAgIHJldHVybiBTdHJpbmcoIkFsdCIpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgICAgICBjYXNlIDYyOiAvLyBSaWdo
dCBDdHJsCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ29udHJvbCIpOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAg
ICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAorICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0
IENvbW1hbmQKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEiKTsKKworICAgICAgICBj
YXNlIDU3OiAvLyBDYXBzbG9jaworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2si
KTsKKworICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgICAgIGNhc2UgNjA6IC8v
IFJpZ2h0IFNoaWZ0CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJTaGlmdCIpOworCisgICAg
ICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAor
ICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisKKyAgICAgICAgY2FzZSA1OTogLy8g
TGVmdCBDdHJsCisgICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKKyAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
ICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTUzNCw0NCArNTE5LDM4IEBAIHN0YXRpYyBib29s
IGlzS2V5cGFkRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlz
IGlzIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIGEga2V5Q29kZS4KICAgICBzd2l0Y2ggKFtl
dmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBjYXNlIE5TS2V5RG93bjoKLSAgICAgICAgY2FzZSBOU0tleVVwOgotICAgICAgICBjYXNlIE5T
RmxhZ3NDaGFuZ2VkOgotICAgICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUtleURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQ6CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNOdW1lcmlj
UGFkS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAg
Y2FzZSA3MTogLy8gQ2xlYXIKLSAgICAgICAgY2FzZSA4MTogLy8gPQotICAgICAgICBjYXNlIDc1
OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6IC8vICoKLSAgICAgICAgY2FzZSA3ODogLy8gLQotICAg
ICAgICBjYXNlIDY5OiAvLyArCi0gICAgICAgIGNhc2UgNzY6IC8vIEVudGVyCi0gICAgICAgIGNh
c2UgNjU6IC8vIC4KLSAgICAgICAgY2FzZSA4MjogLy8gMAotICAgICAgICBjYXNlIDgzOiAvLyAx
Ci0gICAgICAgIGNhc2UgODQ6IC8vIDIKLSAgICAgICAgY2FzZSA4NTogLy8gMwotICAgICAgICBj
YXNlIDg2OiAvLyA0Ci0gICAgICAgIGNhc2UgODc6IC8vIDUKLSAgICAgICAgY2FzZSA4ODogLy8g
NgotICAgICAgICBjYXNlIDg5OiAvLyA3Ci0gICAgICAgIGNhc2UgOTE6IC8vIDgKLSAgICAgICAg
Y2FzZSA5MjogLy8gOQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIH0KKyAgICBjYXNl
IDcxOiAvLyBDbGVhcgorICAgIGNhc2UgODE6IC8vID0KKyAgICBjYXNlIDc1OiAvLyAvCisgICAg
Y2FzZSA2NzogLy8gKgorICAgIGNhc2UgNzg6IC8vIC0KKyAgICBjYXNlIDY5OiAvLyArCisgICAg
Y2FzZSA3NjogLy8gRW50ZXIKKyAgICBjYXNlIDY1OiAvLyAuCisgICAgY2FzZSA4MjogLy8gMAor
ICAgIGNhc2UgODM6IC8vIDEKKyAgICBjYXNlIDg0OiAvLyAyCisgICAgY2FzZSA4NTogLy8gMwor
ICAgIGNhc2UgODY6IC8vIDQKKyAgICBjYXNlIDg3OiAvLyA1CisgICAgY2FzZSA4ODogLy8gNgor
ICAgIGNhc2UgODk6IC8vIDcKKyAgICBjYXNlIDkxOiAvLyA4CisgICAgY2FzZSA5MjogLy8gOQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiB9
CkBAIC01ODUsMTAgKzU2NCw3IEBAIGludCB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KE5TRXZl
bnQqIGV2ZW50KQogICAgIC8vIDIuIEtleXMgZm9yIHdoaWNoIHRoZXJlIGlzIG5vIGtub3duIE1h
YyB2aXJ0dWFsIGtleSBjb2RlcywgbGlrZSBQcmludFNjcmVlbi4KICAgICAvLyAzLiBDZXJ0YWlu
IHB1bmN0dWF0aW9uIGtleXMuIE9uIFdpbmRvd3MsIHRoZXNlIGFyZSBhbHNvIHJlbWFwcGVkIGRl
cGVuZGluZyBvbiBjdXJyZW50IGtleWJvYXJkIGxheW91dCwKICAgICAvLyAgICBidXQgc2VlIGNv
bW1lbnQgaW4gd2luZG93c0tleUNvZGVGb3JDaGFyQ29kZSgpLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVu
dCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKCFpc0tleXBhZEV2ZW50KGV2ZW50KSAm
JiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNFdmVudFR5cGVLZXlVcCkpIHsKICAgICAgICAgLy8gQ21kIHN3aXRjaGVzIFJvbWFuIGxldHRl
cnMgZm9yIER2b3Jhay1RV0VSVFkgbGF5b3V0LCBzbyB0cnkgbW9kaWZpZWQgY2hhcmFjdGVycyBm
aXJzdC4KICAgICAgICAgTlNTdHJpbmcqIHMgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAgICAgICAg
IGNvZGUgPSBbcyBsZW5ndGhdID4gMCA/IHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoW3MgY2hh
cmFjdGVyQXRJbmRleDowXSkgOiAwOwpAQCAtNjQ2LDM1ICs2MjIsMzIgQEAgZG91YmxlIGV2ZW50
VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2ZW50KQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
aXNLZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpCi0gICAg
ICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcDsKKyAgICBpZiAoW2V2ZW50IHR5cGVd
ICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgLy8gRklYTUU6IFRoaXMgbG9naWMgZmFpbHMgaWYg
dGhlIHVzZXIgcHJlc3NlcyBib3RoIFNoaWZ0IGtleXMgYXQgb25jZSwgZm9yIGV4YW1wbGU6CiAg
ICAgLy8gd2UgdHJlYXQgcmVsZWFzaW5nIG9uZSBvZiB0aGVtIGFzIGtleURvd24uCiAgICAgc3dp
dGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFu
ZAotICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAgICAgICAgICAgIHJldHVybiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykgPT0gMDsKLSAgICAgICAg
ICAgIAotICAgICAgICBjYXNlIDU3OiAvLyBDYXBzbG9jawotICAgICAgICAgICAgcmV0dXJuIChb
ZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FscGhhU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgY2FzZSA2MDog
Ly8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1ODog
Ly8gTGVmdCBBbHQKLSAgICAgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0gICAgICAgICAgICBy
ZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgPT0gMDsK
LSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKLSAgICAgICAgY2Fz
ZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgNjM6IC8vIEZ1bmN0aW9uCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRnVuY3Rpb25LZXlNYXNrKSA9PSAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAgICBjYXNlIDU1OiAvLyBMZWZ0
IENvbW1hbmQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQpOworCisgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Nh
cHNMb2NrKTsKKworICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKKyAgICBjYXNlIDYwOiAvLyBS
aWdodCBTaGlmdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnU2hpZnQpOworCisgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKKyAgICBj
YXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbik7CisKKyAgICBjYXNlIDU5OiAvLyBMZWZ0
IEN0cmwKKyAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKTsKKworICAgIGNh
c2UgNjM6IC8vIEZ1bmN0aW9uCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbik7CiAgICAgfQogICAgIHJldHVybiBmYWxz
ZTsKIH0KQEAgLTgxOCwxMCArNzkxLDcgQEAgcHVibGljOgogICAgICAgICBtX2tleSA9IGtleUZv
cktleUV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9jb2RlID0gY29kZUZvcktleUV2ZW50KGV2ZW50
KTsKICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktl
eUV2ZW50KGV2ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkICYmIFtldmVu
dCBpc0FSZXBlYXRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBtX2F1
dG9SZXBlYXQgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgJiYgW2V2
ZW50IGlzQVJlcGVhdF07CiAgICAgICAgIG1faXNLZXlwYWQgPSBpc0tleXBhZEV2ZW50KGV2ZW50
KTsKICAgICAgICAgbV9pc1N5c3RlbUtleSA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlz
IGZhbHNlIG9uIHRoZSBNYWMuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCA5MWNiZWRkMGNkYTA3MDY1YjNiZjNmMTcwMTU4ZjFk
NjI3NzMxODNmLi42NGQ4NTRhOGU4NGM4NjJhOTBhYmQ0NTc1Y2U2M2ViZWU0ZDJlZTMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBA
IC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4K
KyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAog
Ly8gRklYTUU6IFRoZXJlIGFyZSByZXBhaW50aW5nIHByb2JsZW1zIGR1ZSB0byBBcXVhIHNjcm9s
bCBiYXIgYnV0dG9ucycgdmlzdWFsIG92ZXJmbG93LgogCkBAIC0xMzksMTggKzE0MCwxNSBAQCBz
dGF0aWMgU2Nyb2xsYmFyQnV0dG9uc1BsYWNlbWVudCBnQnV0dG9uUGxhY2VtZW50ID0gU2Nyb2xs
YmFyQnV0dG9uc0RvdWJsZUVuZDsKIAogc3RhdGljIE5TQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29u
dHJvbFNpemVUb05TQ29udHJvbFNpemUoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUp
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChjb250
cm9sU2l6ZSkgewogICAgIGNhc2UgUmVndWxhclNjcm9sbGJhcjoKLSAgICAgICAgcmV0dXJuIE5T
UmVndWxhckNvbnRyb2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7
CiAgICAgY2FzZSBTbWFsbFNjcm9sbGJhcjoKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1
bGFyOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpkaWRDcmVhdGVTY3JvbGxlckltcChT
Y3JvbGxiYXImIHNjcm9sbGJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9UaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQppbmRleCAwMjQ3MmM5YTY5MDhjNmZkYjAzODI4MWZhYWE4MzhkZmI1MTVlNGQ1Li5iMTAwNDFi
NWViMTcyZjQzNzJjNDAwNTViMTY5OTdjMTM5NGMyM2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tP
YmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0
IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogc3RhdGljIE5TUmVjdCBmb2N1c1JpbmdDbGlwUmVjdDsKIHN0
YXRpYyBCT09MIHRoZW1lV2luZG93SGFzS2V5QXBwZWFyYW5jZTsKQEAgLTY3LDExICs2OCw4IEBA
IC0gKE5TV2luZG93ICopd2luZG93CiB7CiAgICAgLy8gVXNpbmcgZGVmZXI6WUVTIHByZXZlbnRz
IHVzIGZyb20gd2FzdGluZyBhbnkgd2luZG93IHNlcnZlciByZXNvdXJjZXMgZm9yIHRoaXMgd2lu
ZG93LCBzaW5jZSB3ZSdyZSBub3QgYWN0dWFsbHkKICAgICAvLyBnb2luZyB0byBkcmF3IGludG8g
aXQuIFRoZSBvdGhlciBhcmd1bWVudHMgbWF0Y2ggd2hhdCB5b3UgZ2V0IHdoZW4gY2FsbGluZyAt
W05TV2luZG93IGluaXRdLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IHN0YXRpYyBXZWJDb3JlVGhlbWVXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZVRoZW1lV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMTAwLCAxMDAsIDEwMCwgMTAw
KQotICAgICAgICBzdHlsZU1hc2s6TlNUaXRsZWRXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CiAgICAgcmV0dXJuIHdpbmRvdzsKIH0KIApAQCAt
MTQ0LDE1ICsxNDIsMTIgQEAgVGhlbWUqIHBsYXRmb3JtVGhlbWUoKQogCiBzdGF0aWMgTlNDb250
cm9sU2l6ZSBjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgRm9udENhc2NhZGUmIGZvbnQpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50IGZvbnRTaXplID0gZm9u
dC5waXhlbFNpemUoKTsKICAgICBpZiAoZm9udFNpemUgPj0gMTYpCi0gICAgICAgIHJldHVybiBO
U1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFy
OwogICAgIGlmIChmb250U2l6ZSA+PSAxMSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJu
IE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbU5TQ29u
dHJvbFNpemUoTlNDb250cm9sU2l6ZSBuc0NvbnRyb2xTaXplLCBjb25zdCBMZW5ndGhTaXplJiB6
b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yLCBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+
JiBzaXplcykKQEAgLTE3NSwxNiArMTcwLDEzIEBAIHN0YXRpYyBMZW5ndGhTaXplIHNpemVGcm9t
Rm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkCiAK
IHN0YXRpYyBDb250cm9sU2l6ZSBjb250cm9sU2l6ZUZyb21QaXhlbFNpemUoY29uc3Qgc3RkOjph
cnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNpemUmIG1pblpvb21lZFNpemUsIGZs
b2F0IHpvb21GYWN0b3IpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05T
UmVndWxhckNvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUZhY3RvcikgJiYKLSAgICAgICAgbWlu
Wm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNv
bnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNSZWd1
bGFyQ29udHJvbFNpemU7Ci0gICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3Ip
ICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50Pihz
aXplc1tOU1NtYWxsQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUZhY3RvcikpCi0gICAgICAg
IHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXpl
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChtaW5ab29tZWRTaXplLndp
ZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0ud2lk
dGgoKSAqIHpvb21GYWN0b3IpCisgICAgICAgICYmIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0g
c3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6
b29tRmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOworICAgIGlm
IChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRy
b2xTaXplU21hbGxdLndpZHRoKCkgKiB6b29tRmFjdG9yKQorICAgICAgICAmJiBtaW5ab29tZWRT
aXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxs
XS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNt
YWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgc2V0
Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBz
aXplcywgY29uc3QgSW50U2l6ZSYgbWluWm9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikKQEAg
LTQ4MCwxMCArNDcyLDcgQEAgc3RhdGljIHZvaWQgc2V0VXBCdXR0b25DZWxsKE5TQnV0dG9uQ2Vs
bCAqY2VsbCwgQ29udHJvbFBhcnQgcGFydCwgY29uc3QgQ29udHJvbFMKIHsKICAgICAvLyBTZXQg
dGhlIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYgdGhlIHJlY3RhbmdsZSB3ZSdyZSBwYWludGluZyBp
bnRvLgogICAgIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzID0gYnV0dG9uU2l6
ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAocGFydCA9
PSBTcXVhcmVCdXR0b25QYXJ0IHx8IHpvb21lZFNpemUuaGVpZ2h0KCkgPiBidXR0b25TaXplcygp
W05TUmVndWxhckNvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAocGFydCA9PSBTcXVhcmVCdXR0b25QYXJ0IHx8
IHpvb21lZFNpemUuaGVpZ2h0KCkgPiBidXR0b25TaXplcygpW05TQ29udHJvbFNpemVSZWd1bGFy
XS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpIHsKICAgICAgICAgLy8gVXNlIHRoZSBzcXVhcmUgYnV0
dG9uCiAgICAgICAgIGlmIChbY2VsbCBiZXplbFN0eWxlXSAhPSBOU1NoYWRvd2xlc3NTcXVhcmVC
ZXplbFN0eWxlKQogICAgICAgICAgICAgW2NlbGwgc2V0QmV6ZWxTdHlsZTpOU1NoYWRvd2xlc3NT
cXVhcmVCZXplbFN0eWxlXTsKQEAgLTU3OSwxNSArNTY4LDEyIEBAIHN0YXRpYyBjb25zdCBzdGQ6
OmFycmF5PEludFNpemUsIDM+JiBzdGVwcGVyU2l6ZXMoKQogLy8gc2hvdWxkIGJlIGVxdWFsIHRv
IG9yIGxlc3MgdGhhbiB0aGUgY29ycmVzcG9uZGluZyB0ZXh0IGZpZWxkIGhlaWdodCwKIHN0YXRp
YyBOU0NvbnRyb2xTaXplIHN0ZXBwZXJDb250cm9sU2l6ZUZvckZvbnQoY29uc3QgRm9udENhc2Nh
ZGUmIGZvbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50
IGZvbnRTaXplID0gZm9udC5waXhlbFNpemUoKTsKICAgICBpZiAoZm9udFNpemUgPj0gMTgpCi0g
ICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29u
dHJvbFNpemVSZWd1bGFyOwogICAgIGlmIChmb250U2l6ZSA+PSAxMykKLSAgICAgICAgcmV0dXJu
IE5TU21hbGxDb250cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21h
bGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0aWMgdm9pZCBwYWlu
dFN0ZXBwZXIoQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmll
dyopCkBAIC02MDAsMTUgKzU4NiwxMiBAQCBzdGF0aWMgdm9pZCBwYWludFN0ZXBwZXIoQ29udHJv
bFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiAgICAgZHJh
d0luZm8uc3RhdGUgPSBjb252ZXJ0Q29udHJvbFN0YXRlc1RvVGhlbWVEcmF3U3RhdGUoa1RoZW1l
SW5jRGVjQnV0dG9uLCBzdGF0ZXMpOwogICAgIGRyYXdJbmZvLmFkb3JubWVudCA9IGtUaGVtZUFk
b3JubWVudERlZmF1bHQ7CiAgICAgQ29udHJvbFNpemUgY29udHJvbFNpemUgPSBjb250cm9sU2l6
ZUZyb21QaXhlbFNpemUoc3RlcHBlclNpemVzKCksIEludFNpemUoem9vbWVkUmVjdC5zaXplKCkp
LCB6b29tRmFjdG9yKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoY29udHJvbFNpemUgPT0gTlNTbWFsbENvbnRyb2xTaXplKQorICAgIGlmIChjb250cm9sU2l6
ZSA9PSBOU0NvbnRyb2xTaXplU21hbGwpCiAgICAgICAgIGRyYXdJbmZvLmtpbmQgPSBrVGhlbWVJ
bmNEZWNCdXR0b25TbWFsbDsKLSAgICBlbHNlIGlmIChjb250cm9sU2l6ZSA9PSBOU01pbmlDb250
cm9sU2l6ZSkKKyAgICBlbHNlIGlmIChjb250cm9sU2l6ZSA9PSBOU0NvbnRyb2xTaXplTWluaSkK
ICAgICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbk1pbmk7CiAgICAgZWxz
ZQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgSW50UmVjdCByZWN0KHpvb21lZFJlY3QpOwogICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKQEAgLTc0OSwx
MiArNzMyLDkgQEAgTGVuZ3RoU2l6ZSBUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKENvbnRy
b2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb24KICAgICAgICAgY2FzZSBCdXR0b25Q
YXJ0OgogICAgICAgICAgICAgcmV0dXJuIExlbmd0aFNpemUoTGVuZ3RoKDAsIEZpeGVkKSwgTGVu
Z3RoKHN0YXRpY19jYXN0PGludD4oMTUgKiB6b29tRmFjdG9yKSwgRml4ZWQpKTsKICAgICAgICAg
Y2FzZSBJbm5lclNwaW5CdXR0b25QYXJ0OnsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgICAgIEludFNpemUgYmFzZSA9IHN0ZXBwZXJTaXplcygpW05TTWluaUNv
bnRyb2xTaXplXTsKKyAgICAgICAgICAgIEludFNpemUgYmFzZSA9IHN0ZXBwZXJTaXplcygpW05T
Q29udHJvbFNpemVNaW5pXTsKICAgICAgICAgICAgIHJldHVybiBMZW5ndGhTaXplKExlbmd0aChz
dGF0aWNfY2FzdDxpbnQ+KGJhc2Uud2lkdGgoKSAqIHpvb21GYWN0b3IpLCBGaXhlZCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihiYXNlLmhl
aWdodCgpICogem9vbUZhY3RvciksIEZpeGVkKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBUaGVt
ZTo6bWluaW11bUNvbnRyb2xTaXplKHBhcnQsIGZvbnQsIHpvb21GYWN0b3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRv
d0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQppbmRleCBkM2I5ZWU5OGRmOTQyMGNjZDcxMTZi
MDQwMzU2MzgzY2ZjNzQ2ZjkwLi5iNDg2MDZjYjVhNzQ0ZDg3MGI4NjE5MzQzNjYyODk4YmE5ZmY0
ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQpAQCAtMzMsNiAr
MzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSFRNTFZpZGVvRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03MywxMCArNzQsNyBAQCBAaW1wbGVt
ZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93CiAtIChpZClpbml0V2l0aENvbnRl
bnRSZWN0OihOU1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihOU1VJbnRlZ2VyKWFTdHlsZSBi
YWNraW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlwZSBkZWZlcjooQk9PTClmbGFn
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGFTdHlsZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRS
ZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6YnVmZmVyaW5nVHlw
ZSBkZWZlcjpmbGFnXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBzZWxmID0g
W3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107CiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC0xMjIsMTUgKzEyMCwxMiBA
QCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2
YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgogICAgIC8vIEJsb2NrIGFsbCBjb21tYW5kIGtleSBldmVudHMgd2hpbGUgdGhlIGZ1bGxz
Y3JlZW4gd2luZG93IGlzIHVwLgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQor
ICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1
cm4gTk87CiAgICAgCi0gICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5k
S2V5TWFzaykpCisgICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQpKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCiAgICAgcmV0dXJuIFlFUzsKIH0KIApAQCAtMTQ1LDExICsxNDAsNyBAQCBAaW1w
bGVtZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlcgogCiAtIChp
ZClpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNXaW5k
b3cgKndpbmRvdyA9IFtbV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93
TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAs
IDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFz
a0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dpbmRvdyBzZXRE
ZWxlZ2F0ZTpzZWxmXTsKICAgICBbd2luZG93IHJlbGVhc2VdOwpAQCAtMTg4LDIwICsxNzksMTcg
QEAgLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopZXZlbnQKICAgICAgICAgICAgIGNhc2UgJyAn
OgogICAgICAgICAgICAgICAgIFtzZWxmIHRvZ2dsZVBsYXlpbmc6bmlsXTsKICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAg
ICAgICBjYXNlIE5TVXBBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAg
aWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAg
ICAgICAgICAgICAgICAgICAgIFtzZWxmIHNldFZvbHVtZTpbc2VsZiBtYXhWb2x1bWVdXTsKICAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIGluY3JlbWVudFZv
bHVtZV07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25B
cnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAgaWYgKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIHNldFZvbHVtZTowXTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIFtzZWxmIGRlY3JlbWVudFZvbHVtZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgICAgICBicmVhazsKQEAgLTM3OCwxNyArMzY2LDExIEBAIC0gKHZvaWQpd2luZG93
RGlkTG9hZAogICAgIFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Ol90aW1lbGluZV07CiAKICAgICBf
ZWxhcHNlZFRpbWVUZXh0ID0gY3JlYXRlVGltZVRleHRGaWVsZChOU01ha2VSZWN0KHRpbWVUZXh0
RmllbGRIb3Jpem9udGFsTWFyZ2luLCB0aW1lbGluZUJvdHRvbU1hcmdpbiwgdGltZVRleHRGaWVs
ZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgW19lbGFwc2VkVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TTGVmdFRleHRB
bGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtfZWxhcHNlZFRp
bWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0XTsKICAgICBbY29udGVudFZp
ZXcgYWRkU3VidmlldzpfZWxhcHNlZFRpbWVUZXh0XTsKIAogICAgIF9yZW1haW5pbmdUaW1lVGV4
dCA9IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh3aW5kb3dXaWR0aCAtIHRpbWVUZXh0
RmllbGRIb3Jpem9udGFsTWFyZ2luIC0gdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lbGluZUJvdHRv
bU1hcmdpbiwgdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW19yZW1haW5pbmdUaW1lVGV4dCBz
ZXRBbGlnbm1lbnQ6TlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdu
bWVudFJpZ2h0XTsKICAgICBbY29udGVudFZpZXcgYWRkU3VidmlldzpfcmVtYWluaW5nVGltZVRl
eHRdOwogCiAgICAgW3dpbmRvdyByZWNhbGN1bGF0ZUtleVZpZXdMb29wXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tCmluZGV4IDQ1OThh
MDNlZDJmYTMyMTUwZTY0YWY5Y2JiNjQ1OTk0NjlmZGRmNzcuLjdkZTVlYjUzN2M3ZmEwMjM1MjJi
Y2VmNjgzMzIzYjI1ODRlY2M1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBv
cnQgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTM4LDEw
ICszOSw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHNsb3dNb3Rpb25GYWN0b3IgPSAxMDsKIAog
c3RhdGljIE5TVGltZUludGVydmFsIFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0
aW9uKE5TVGltZUludGVydmFsIGR1cmF0aW9uKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxh
Z3NdICYgTlNTaGlmdEtleU1hc2spID8gZHVyYXRpb24gKiBzbG93TW90aW9uRmFjdG9yIDogZHVy
YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIChbW05TQXBw
IGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQp
ID8gZHVyYXRpb24gKiBzbG93TW90aW9uRmFjdG9yIDogZHVyYXRpb247CiB9CiAKIHN0YXRpYyBO
U1JlY3Qgc2NhbGVkUmVjdChOU1JlY3QgX2luaXRpYWxGcmFtZSwgTlNSZWN0IF9maW5hbEZyYW1l
LCBDR0Zsb2F0IGZhY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQppbmRleCAzZWRkYzAzZTRkOGU5ZjYzNTE3YzUyNzFmMjAxYjU2NzgyMmI5MDI4Li44NTc2
NDIzNTIzYTkwYzhhNTI1MTgwNTRhZDkyYjUxNDRmNDE5Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC04MSw2ICs4MSw3IEBACiAjaW1wb3J0IDxD
YXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgogI2ltcG9ydCA8bWF0aC5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
ICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKICNpbXBvcnQgIlJlbmRlck1ldGVyLmgiCkBAIC0z
NzksMjIgKzM4MCwxMyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjp1cGRhdGVDYWNoZWRTeXN0ZW1G
b250RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBGbwogICAgICAgICAgICAgZm9u
dE5hbWUgPSBBdG9taWNTdHJpbmcoIi1hcHBsZS1zdGF0dXMtYmFyIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
U1NWYWx1ZVdlYmtpdE1pbmlDb250cm9sOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250
IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNNaW5pQ29udHJvbFNpemVdXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3Rl
bUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJv
bFNpemVNaW5pXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1ZVdl
YmtpdFNtYWxsQ29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1G
b250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9m
U2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENv
bnRyb2w6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBm
b250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JD
b250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNG
b250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVJlZ3VsYXJdXTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZm9udCA9
IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplXV07CkBAIC03
NzcsMzAgKzc2OSwyNCBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU3VwcG9ydHNUaW50
cyhjb25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1l
TWFjOjpjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAog
ewogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1
cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVn
dWxhcjsKICAgICBpZiAoZm9udFNpemUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29u
dHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1h
Yzo6Y29udHJvbFNpemVGb3JDZWxsKE5TQ2VsbCosIGNvbnN0IEludFNpemUqIHNpemVzLCBjb25z
dCBJbnRTaXplJiBtaW5TaXplLCBmbG9hdCB6b29tTGV2ZWwpIGNvbnN0CiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxl
dmVsKQotICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6
ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUxldmVsKSkKLSAgICAgICAg
cmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOworICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0g
c3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0ud2lkdGgoKSAqIHpv
b21MZXZlbCkKKyAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+
KHNpemVzW05TQ29udHJvbFNpemVSZWd1bGFyXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIAotICAgIGlmIChtaW5TaXplLndpZHRo
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkg
KiB6b29tTGV2ZWwpCi0gICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8
aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUxldmVsKSkKLSAg
ICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgp
ID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0aCgpICog
em9vbUxldmVsKQorICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGlu
dD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAKLSAgICByZXR1cm4gTlNNaW5pQ29udHJv
bFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIE5TQ29udHJv
bFNpemVNaW5pOwogfQogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjpzZXRDb250cm9sU2l6ZShOU0Nl
bGwqIGNlbGwsIGNvbnN0IEludFNpemUqIHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5TaXplLCBm
bG9hdCB6b29tTGV2ZWwpCkBAIC04NTcsMTUgKzg0MywxMiBAQCB2b2lkIFJlbmRlclRoZW1lTWFj
OjpzZXRGb250RnJvbUNvbnRyb2xTaXplKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYgc3R5
bGUsCiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yU3lzdGVt
Rm9udChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50IGZvbnRTaXplID0gc3R5bGUuZm9udFNpemUoKTsK
LSAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXpl
Ok5TUmVndWxhckNvbnRyb2xTaXplXSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xT
aXplOwotICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJv
bFNpemU6TlNTbWFsbENvbnRyb2xTaXplXSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JD
b250cm9sU2l6ZTpOU0NvbnRyb2xTaXplUmVndWxhcl0pCisgICAgICAgIHJldHVybiBOU0NvbnRy
b2xTaXplUmVndWxhcjsKKyAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF0pCisgICAgICAgIHJldHVybiBOU0Nv
bnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBib29s
IFJlbmRlclRoZW1lTWFjOjpwYWludFRleHRGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmIG8sIGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QmIHIpCkBAIC0xMTQ3LDEw
ICsxMTMwLDcgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRQcm9ncmVzc0Jhcihjb25zdCBS
ZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGEKICAgICBjb25zdCBhdXRvJiByZW5k
ZXJQcm9ncmVzcyA9IGRvd25jYXN0PFJlbmRlclByb2dyZXNzPihyZW5kZXJPYmplY3QpOwogICAg
IEhJVGhlbWVUcmFja0RyYXdJbmZvIHRyYWNrSW5mbzsKICAgICB0cmFja0luZm8udmVyc2lvbiA9
IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xT
aXplID09IE5TUmVndWxhckNvbnRyb2xTaXplKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU0NvbnRyb2xTaXplUmVndWxhcikKICAgICAgICAg
dHJhY2tJbmZvLmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZUxh
cmdlSW5kZXRlcm1pbmF0ZUJhciA6IGtUaGVtZUxhcmdlUHJvZ3Jlc3NCYXI7CiAgICAgZWxzZQog
ICAgICAgICB0cmFja0luZm8ua2luZCA9IHJlbmRlclByb2dyZXNzLnBvc2l0aW9uKCkgPCAwID8g
a1RoZW1lTWVkaXVtSW5kZXRlcm1pbmF0ZUJhciA6IGtUaGVtZU1lZGl1bVByb2dyZXNzQmFyOwpA
QCAtMTQzOCwxNSArMTQxOCwxMiBAQCBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZSBSZW5k
ZXJUaGVtZU1hYzo6cG9wdXBNZW51U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYgcwogICAgIE5TUG9w
VXBCdXR0b25DZWxsKiBwb3B1cEJ1dHRvbiA9IHRoaXMtPnBvcHVwQnV0dG9uKCk7CiAgICAgTlND
b250cm9sU2l6ZSBzaXplID0gY29udHJvbFNpemVGb3JDZWxsKHBvcHVwQnV0dG9uLCBwb3B1cEJ1
dHRvblNpemVzKCksIHJlY3Quc2l6ZSgpLCBzdHlsZS5lZmZlY3RpdmVab29tKCkpOwogICAgIHN3
aXRjaCAoc2l6ZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNh
c2UgTlNSZWd1bGFyQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplUmVndWxhcjoK
ICAgICAgICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOwotICAg
IGNhc2UgTlNTbWFsbENvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVNtYWxsOgog
ICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDsKLSAgICBj
YXNlIE5TTWluaUNvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZU1pbmk6CiAgICAg
ICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIFBvcHVwTWVu
dVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOwogICAgIH0KQEAgLTIwNTUsMTIgKzIwMzIsOSBA
QCBOU1NsaWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwoKSBj
b25zdAogewogICAgIGlmICghbV9zbGlkZXJUaHVtYkhvcml6b250YWwpIHsKICAgICAgICAgbV9z
bGlkZXJUaHVtYkhvcml6b250YWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRl
clRodW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TTGluZWFyU2xpZGVyXTsKLSAg
ICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldENvbnRyb2xTaXplOk5TU21h
bGxDb250cm9sU2l6ZV07CisgICAgICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKSBz
ZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFttX3NsaWRlclRodW1i
SG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplU21hbGxdOwogICAg
ICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Rm9jdXNSaW5nVHlwZTpOU0Zv
Y3VzUmluZ1R5cGVFeHRlcmlvcl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
fQogCiAgICAgcmV0dXJuIG1fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpOwpAQCAtMjA3MCwx
MSArMjA0NCw4IEBAIE5TU2xpZGVyQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVy
dGljYWwoKSBjb25zdAogewogICAgIGlmICghbV9zbGlkZXJUaHVtYlZlcnRpY2FsKSB7CiAgICAg
ICAgIG1fc2xpZGVyVGh1bWJWZXJ0aWNhbCA9IGFkb3B0TlMoW1tOU1NsaWRlckNlbGwgYWxsb2Nd
IGluaXRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW21f
c2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TTGluZWFyU2xpZGVyXTsK
LSAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1Nt
YWxsQ29udHJvbFNpemVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
bV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldFNsaWRlclR5cGU6TlNTbGlkZXJUeXBlTGlu
ZWFyXTsKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRDb250cm9sU2l6
ZTpOU0NvbnRyb2xTaXplU21hbGxdOwogICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdl
dCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJpb3JdOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRl
eCBmMmEzNTk3M2E3MWUwNjgyNjBhOTFjOTY3ZDI5MDUwZDJlZGU3NjBkLi5hNjlmNmYxZmE1MGE5
YTRhZGQ4NjNmNDc5NWJjMWQ3MTJmMGJhMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
YXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzYsNiArNzYsNyBAQAogI2ltcG9ydCA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5o
PgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1w
b3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgpAQCAtMTczLDEzICsxNzQsMTQgQEAgLSAoaWQpaW5p
dFdpdGhDYXJib25XaW5kb3dSZWY6KFdpbmRvd1JlZilpbldpbmRvd1JlZiB0YWtpbmdPd25lcnNo
aXA6KEJPT0wpaW5XaW4KIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1h
c2suCiAgICAgc3R5bGVNYXNrID0gV0tDYXJib25XaW5kb3dNYXNrKCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93
Q2xvc2VCb3hBdHRyaWJ1dGUpIHN0eWxlTWFzayB8PSBOU0Nsb3NhYmxlV2luZG93TWFzazsKLSAg
ICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpIHN0eWxl
TWFzayB8PSBOU1Jlc2l6YWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYg
a1dpbmRvd0NhbkNvbGxhcHNlKSBzdHlsZU1hc2sgfD0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01h
c2s7Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0hhc1RpdGxlQmFyKSBzdHlsZU1h
c2sgfD0gTlNUaXRsZWRXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRlKQorICAg
ICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZTsKKyAgICBpZiAod2lu
ZG93QXR0cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpCisgICAgICAgIHN0eWxl
TWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVy
ZXMgJiBrV2luZG93Q2FuQ29sbGFwc2UpCisgICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0
eWxlTWFza01pbmlhdHVyaXphYmxlOworICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dI
YXNUaXRsZUJhcikKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVk
OwogCiAgICAgb3NTdGF0dXMgPSBHZXRXaW5kb3dNb2RhbGl0eShfd2luZG93UmVmLCAmd2luZG93
TW9kYWxpdHksIE5VTEwpOwogICAgIGlmIChvc1N0YXR1cyAhPSBub0VycikgewpAQCAtMzkzLDE4
ICszOTUsMTIgQEAgLSAodm9pZClzZW5kU3VwZXJFdmVudDooTlNFdmVudCAqKWluRXZlbnQgewog
ICAgIC8vIElnbm9yZSBzb21lIHVua25vd24gZXZlbnQgdGhhdCBnZXRzIHNlbnQgd2hlbiBOU1Rl
eHRWaWV3cyBpbiBwcmludGluZyBhY2Nlc3Nvcnkgdmlld3MgYXJlIGZvY3VzZWQuICBNLlAuIE5v
dGljZSAtIDEyLzcvMDAKICAgICBCT09MIGlnbm9yZUV2ZW50ID0gTk87CiAgICAgTlNFdmVudFR5
cGUgZXZlbnRUeXBlID0gW2luRXZlbnQgdHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgaWYgKGV2ZW50VHlwZT09TlNTeXN0ZW1EZWZpbmVkKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZVN5
c3RlbURlZmluZWQpIHsKICAgICAgICAgc2hvcnQgZXZlbnRTdWJ0eXBlID0gW2luRXZlbnQgc3Vi
dHlwZV07Ci0gICAgICAgIGlmIChldmVudFN1YnR5cGU9PTcpIHsKKyAgICAgICAgaWYgKGV2ZW50
U3VidHlwZSA9PSA3KSB7CiAgICAgICAgICAgICBpZ25vcmVFdmVudCA9IFlFUzsKICAgICAgICAg
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIH0gZWxzZSBpZiAoZXZl
bnRUeXBlID09IE5TS2V5RG93bikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlS2V5RG93bikgewogICAgICAgICAv
LyBIYW5kbGUgY29tbWFuZC1zcGFjZSBhcyBbTlNBcHAgc2VuZEV2ZW50Ol0gZG9lcy4KICAgICAg
ICAgaWYgKFtOU0lucHV0Q29udGV4dCBwcm9jZXNzSW5wdXRLZXlCaW5kaW5nczppbkV2ZW50XSkg
ewogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYWQ1OTM2
OTZkNGI5YTk3NjZhM2NiY2UwM2VhZDZlYWZkMDc5NTc5Li42ZDA2YzcwMTBjNTJiODFkNTMxNTFl
MTg1MmQ0MTQ0MWI5MTI5ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtNDEsNiArNDEs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIGV4dGVy
biAiQyIgewogI2ltcG9ydCAiV2ViS2l0UGx1Z2luSG9zdC5oIgpAQCAtMjMwLDEwICsyMzEsNyBA
QCB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQo
IW1fcGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIp
OwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vo
b2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZ
RVNdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2lu
ZG93ID0gYWRvcHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHls
ZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNd
KTsKIAogICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVB
Y3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3Rp
dmUoKTsgfV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlh
ZTdhMTc3ZTQ1MTJmNDU2NDFkYWEyNDM3ZDRjOS4uYWEwZGY1NDI0YTQyNmZkM2FkNzgzNDM0NmNk
N2IyYWQ0YzI5NTUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtNjYsNiAr
NjYsNyBAQAogI2ltcG9ydCA8dXRpbGl0eT4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2ltcG9ydCA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKIGV4dGVybiAiQyIgewpAQCAtNDY1LDE1ICs0NjYsMTIgQEAgdm9pZCBOZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlm
aWVyKGludCBrZXlDb2QKIHsKICAgICBOU0RhdGEgKmNoYXJhY3RlcnNEYXRhID0gW05TRGF0YSBk
YXRhV2l0aEJ5dGVzOiZjaGFyYWN0ZXIgbGVuZ3RoOjFdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCiAgICAgX1dLUEhQbHVnaW5JbnN0YW5jZUtleWJvYXJkRXZlbnQobV9w
bHVnaW5Ib3N0UHJveHktPnBvcnQoKSwgbV9wbHVnaW5JRCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0s
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtleURv
d24sIE5TQ29tbWFuZEtleU1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlBDb2NvYUV2ZW50S2V5RG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFj
dGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3Rl
cnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIGtleUNvZGUsIGNoYXJhY3Rlcik7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5OjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdp
blZpZXcubW0KaW5kZXggMzc2NjcyYjY4NjczN2M3NzNlZGM2ZGY2ODRiMjg3OTgyOTY0ZjU0MS4u
ZGZjOGNjYTcyODI0OGE4OTZhODEzZTZmNzkyNDJjMDk0MmIyNWM5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldy5tbQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1
bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CkBAIC00NDMsMTAgKzQ0NCw3IEBAIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0CiB7CiAg
ICAgaWYgKF9jYWNoZWRTbmFwc2hvdCkgewogICAgICAgICBOU1JlY3Qgc291cmNlUmVjdCA9IHsg
TlNaZXJvUG9pbnQsIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgc2l6ZV0gfTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBk
cmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBbX2NhY2hlZFNuYXBzaG90LmdldCgpIGRyYXdJblJlY3Q6W3NlbGYgYm91
bmRzXSBmcm9tUmVjdDpzb3VyY2VSZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9u
U291cmNlT3ZlciBmcmFjdGlvbjoxXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
bkV2ZW50SGFuZGxlckNvY29hLm1tCmluZGV4IGExZDE1OWFmOTRlMTQ4OWE0OGIwOTkyMTA4ZDAz
ZjM5ODA1ZjI5OTYuLjljNTIwMWZlNjJkMjYzYmQzNWViNWU3MWQ0YTM3MDFhYWE5MTdlNzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQg
IldlYktpdFN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3
LmgiCiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJD
b2NvYTo6V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYShXZWJOZXRzY2FwZVBsdWdp
blZpZXcqIHBsdWdpblZpZXcpCiAgICAgOiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlcihw
bHVnaW5WaWV3KQpAQCAtMTYxLDEwICsxNjIsNyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZl
bnRIYW5kbGVyQ29jb2E6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludAog
ICAgIAogICAgIE5QQ29jb2FFdmVudCBldmVudDsKICAgICBpbml0aWFsaXplRXZlbnQoJmV2ZW50
LCBOUENvY29hRXZlbnRLZXlEb3duKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBldmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdzID0gTlNDb21tYW5kS2V5TWFzazsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBldmVudC5kYXRhLmtleS5tb2RpZmll
ckZsYWdzID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgZXZlbnQuZGF0YS5rZXku
a2V5Q29kZSA9IGtleUNvZGU7CiAgICAgZXZlbnQuZGF0YS5rZXkuaXNBUmVwZWF0ID0gZmFsc2U7
CiAgICAgZXZlbnQuZGF0YS5rZXkuY2hhcmFjdGVycyA9IChOUE5TU3RyaW5nICopY2hhcmFjdGVy
cy5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1Bv
cHVwTWVudU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dU1hYy5tbQppbmRleCBjNDY2NzBiNGQ3OWQ4Y2U4NGZiZDQxMTU4ZmI3MzA4MGFlODA0NzliLi43
OWYyOGZiODJjYjdmZDkzOWNkMzMyMzRlYzQ3ZWMwMzk2NmVlNTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCkBAIC0zNCw2ICszNCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgogI2ltcG9ydCA8V2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgor
I2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05MCwxNyArOTEsMTEgQEAgdm9pZCBQb3B1cE1l
bnVNYWM6OnBvcHVsYXRlKCkKICAgICAgICAgfQogCiAgICAgICAgIFJldGFpblB0cjxOU011dGFi
bGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhT
dHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11dGFibGVDb3B5XSk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1l
bnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
W3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBO
U1RleHRBbGlnbm1lbnRMZWZ0IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICBOU1dy
aXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiA9IHN0eWxlLnRleHREaXJlY3Rpb24oKSA9
PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlv
blJpZ2h0VG9MZWZ0OwogICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJl
Y3Rpb246d3JpdGluZ0RpcmVjdGlvbl07CiAgICAgICAgIGlmIChzdHlsZS5oYXNUZXh0RGlyZWN0
aW9uT3ZlcnJpZGUoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9w
dE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsg
TlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25W
YWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdE
aXJlY3Rpb24gKyBOU1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgUmV0
YWluUHRyPE5TQXJyYXk+IHdyaXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0TlMoW1tOU0FycmF5
IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxd
KTsKICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJy
YXkuZ2V0KCkgZm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAg
ICB9CkBAIC0yMDYsMTggKzIwMSwxNSBAQCB2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhjb25zdCBJ
bnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIAogICAgIE5TQ29udHJvbFNpemUg
Y29udHJvbFNpemU7CiAgICAgc3dpdGNoIChtX2NsaWVudC0+bWVudVN0eWxlKCkubWVudVNpemUo
KSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGNhc2UgUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVJl
Z3VsYXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVu
dVNpemVTbWFsbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1NtYWxsQ29udHJvbFNpemU7Cisg
ICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVNtYWxsOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaToKLSAgICAgICAgY29u
dHJvbFNpemUgPSBOU01pbmlDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0Nv
bnRyb2xTaXplTWluaTsKICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgfQogCiAgICAgV0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dp
ZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgpLCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xT
aXplLCAhbV9jbGllbnQtPm1lbnVTdHlsZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5tbQppbmRleCA5MTRkOGUwNjNlOGViMGZjYTllYWU5ZDdiYmJjODFmNjFiN2I4OGQ2
Li5hMzliOTNlNzdlMjZhNjQzM2I5Mjg4OGYxOTMzYTA5OTU1MTVjNjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVu
dC5tbQpAQCAtNjAsNiArNjAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdh
Y3kvRE9NUHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yNjksMTAgKzI3
MCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNob3dDb250ZXh0TWVudSgpCiAKICAg
ICBOU1ZpZXcqIHZpZXcgPSBmcmFtZVZpZXctPmRvY3VtZW50VmlldygpOwogICAgIEludFBvaW50
IHBvaW50ID0gZnJhbWVWaWV3LT5jb250ZW50c1RvV2luZG93KHBhZ2UtPmNvbnRleHRNZW51Q29u
dHJvbGxlcigpLmhpdFRlc3RSZXN1bHQoKS5yb3VuZGVkUG9pbnRJbklubmVyTm9kZUZyYW1lKCkp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQqIGV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24gbG9jYXRpb246
cG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbW3ZpZXcgd2lu
ZG93XSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBw
cmVzc3VyZToxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50KiBl
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBj
bGlja0NvdW50OjEgcHJlc3N1cmU6MV07CiAKICAgICAvLyBTaG93IHRoZSBjb250ZXh0dWFsIG1l
bnUgZm9yIHRoaXMgZXZlbnQuCiAgICAgYm9vbCBpc1NlcnZpY2VzTWVudTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KaW5kZXggMTE0NzZhMDMyNzZlZGQ5NGU3NTU1MTM5MzBhYjQ2MTliY2VkZjk1My4uMTYwYjJk
ZjU3NDdmNTNhZWRiMzU5Njg4M2I0MmMwZmM5ZjQzYzIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAg
LTEzMCw2ICsxMzAsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogI2lmIFVTRShQTFVHSU5fSE9TVF9QUk9DRVNTKSAmJiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKQEAgLTE1NjEsMTcgKzE1NjIsMTQgQEAgTlNEaWN0aW9uYXJ5ICpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6YWN0aW9uRGljdGlvbmFyeShjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBhY3QKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IFVJRXZlbnRXaXRoS2V5U3Rh
dGUqIGtleVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUoY29uc3RfY2FzdDxFdmVu
dCo+KGV2ZW50KSk7CiAgICAgaWYgKGtleVN0YXRlRXZlbnQgJiYga2V5U3RhdGVFdmVudC0+aXNU
cnVzdGVkKCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAg
aWYgKGtleVN0YXRlRXZlbnQtPmN0cmxLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNDb250cm9sS2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2w7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXko
KSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAg
ICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAg
ICAgICBpZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFL
ZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgfQogI2Vsc2UKICAgICAvLyBObyBtb2Rp
ZmllciBmbGFncyBvbiBpT1MgcmlnaHQgbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggOTA3ODdkNjIwYjM4
MWU1MzhjN2IxYWRkYzc2ZjJkMjljNTkzMjIwOS4uNzZiMmNkMmNiZjEwYjIwYTM5OTNjMmYzZjdi
NzE5Y2JlN2E1ODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNTMsNiArNTMsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTUV4dGVuc2lv
bnMuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9C
YXNlNjQuaD4KIAogU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFBy
aXZhdGVGcmFtZXdvcmtzLCBBKQpAQCAtMTkxLDEwICsxOTIsNyBAQCB2b2lkIFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50OjphdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wgYXZhaWxhYmxl
KQogCiBib29sIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpjYW5BdHRhY2goKQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW21fZnJvbnRlbmRXaW5k
b3dDb250cm9sbGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TRnVsbFNjcmVlbldpbmRvd01hc2sp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtbbV9mcm9udGVuZFdpbmRv
d0NvbnRyb2xsZXIgd2luZG93XSBzdHlsZU1hc2tdICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2Ny
ZWVuKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gY2FuQXR0YWNoV2luZG93
KCk7CkBAIC00NjUsMTAgKzQ2Myw3IEBAIC0gKE5TV2luZG93ICopd2luZG93CiAgICAgaWYgKHdp
bmRvdykKICAgICAgICAgcmV0dXJuIHdpbmRvdzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNr
IHwgTlNDbG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5T
UmVzaXphYmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNVSW50ZWdlciBzdHlsZU1hc2sgPSBO
U1dpbmRvd1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dp
bmRvd1N0eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUg
fCBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXc7CiAgICAgd2luZG93ID0gW1tO
U1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIGluaXRp
YWxXaW5kb3dXaWR0aCwgaW5pdGlhbFdpbmRvd0hlaWdodCkgc3R5bGVNYXNrOnN0eWxlTWFzayBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0
RGVsZWdhdGU6c2VsZl07CiAgICAgW3dpbmRvdyBzZXRNaW5TaXplOk5TTWFrZVNpemUobWluaW11
bVdpbmRvd1dpZHRoLCBtaW5pbXVtV2luZG93SGVpZ2h0KV07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4IDAyYTc1NmY3Njc3
MzE1YzYyMmRkODFkOTlhMjlmYWMzZmI1YmY5ZTIuLmZjNTNkMGMxYjBhZTIwZjg4YWExNWI2M2M0
MDdmOTA1YWY0MGQ4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rv
ci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rv
ci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCkBAIC0zMiw2ICszMiw4IEBACiAKICNpbXBvcnQgPFdlYkNv
cmUvSW5zcGVjdG9yQ29udHJvbGxlci5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgorCiAKICNp
ZiBQTEFURk9STShJT1MpCiAjaW1wb3J0ICJXZWJGcmFtZVByaXZhdGUuaCIKQEAgLTkxLDEwICs5
Myw3IEBAIC0gKGlkKWluaXRXaXRoVGFyZ2V0VmlldzooTlNWaWV3ICopdGFyZ2V0VmlldyBpbnNw
ZWN0b3JDb250cm9sbGVyOihJbnNwZWN0b3JDb250CiAgICAgX2luc3BlY3RvckNvbnRyb2xsZXIg
PSBpbnNwZWN0b3JDb250cm9sbGVyOwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpbnQgc3R5bGVNYXNrID0gTlNCb3JkZXJsZXNz
V2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpbnQgc3R5bGVN
YXNrID0gTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzOwogICAgIE5TUmVjdCBjb250ZW50UmVj
dCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1lUmVjdDpbc2VsZiBfY29tcHV0ZUhpZ2hs
aWdodFdpbmRvd0ZyYW1lXSBzdHlsZU1hc2s6c3R5bGVNYXNrXTsKICAgICBfaGlnaGxpZ2h0V2lu
ZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBz
dHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpO
T107CiAgICAgW19oaWdobGlnaHRXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNs
ZWFyQ29sb3JdXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWVWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KaW5k
ZXggNWVjMTk3ODVkYTcyOTdiMWEyNDRjNTc2MzIwNzBjNGJkZTk0NmIwNS4uMzVlMDExYmFmNDBi
ZDcwODZlZmRmMjhmMDRjM2FiMTc2Yjk4NzQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZVZpZXcubW0KQEAgLTY2LDYgKzY2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZVZpZXcuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8
d3RmL0Fzc2VydGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURl
Y2xhcmF0aW9ucy5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiV2ViRnJhbWVJbnRl
cm5hbC5oIgpAQCAtOTE1LDkgKzkxNiw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKill
dmVudAogICAgIEJPT0wgY2FsbFN1cGVyID0gWUVTOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBb
c2VsZiBfd2ViX2ZyYW1lXTsKICAgICBCT09MIG1haW50YWluc0JhY2tGb3J3YXJkTGlzdCA9IGNv
cmVGcmFtZSAmJiBzdGF0aWNfY2FzdDxCYWNrRm9yd2FyZExpc3QqPihjb3JlRnJhbWUtPnBhZ2Uo
KS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPmVuYWJsZWQoKSA/IFlFUyA6IE5POwotICAgIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCiAgICAgY291bnQgPSBbY2hhcmFj
dGVycyBsZW5ndGhdOwogICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyArK2luZGV4
KSB7CiAgICAgICAgIHN3aXRjaCAoW2NoYXJhY3RlcnMgY2hhcmFjdGVyQXRJbmRleDppbmRleF0p
IHsKQEAgLTkyOCw3ICs5MjcsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gVGhpcyBvZGQgYmVoYXZpb3Ig
bWF0Y2hlcyBzb21lIGV4aXN0aW5nIGJyb3dzZXJzLAogICAgICAgICAgICAgICAgIC8vIGluY2x1
ZGluZyBXaW5kb3dzIElFCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU1No
aWZ0S2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ1NoaWZ0KSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9nb0Zvcndh
cmRdOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxm
IF9nb0JhY2tdOwpAQCAtOTQzLDcgKzk0Miw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpIHsKICAgICAgICAgICAgICAg
ICAgICAgW3NlbGYgc2Nyb2xsUGFnZVVwOm5pbF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZURvd246bmlsXTsKQEAgLTk4NCw3
ICs5ODMsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNVcEFycm93RnVuY3Rpb25LZXk6CiAgICAg
ICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBr
ZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlm
IChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsK
KyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFn
U2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICB9CkBAIC05OTgsOSArOTk3LDkgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAq
KWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICNl
bmRpZgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFz
aykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsVG9CZWdpbm5p
bmdPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZs
YWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICht
b2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikgewogICAgICAgICAgICAg
ICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxMaW5lVXA6bmlsXTsKQEAgLTEwMDks
NyArMTAwOCw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25BcnJvd0Z1bmN0aW9uS2V5Ogog
ICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRyb2wtYXJy
b3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAgICAgICAg
ICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtleU1hc2sp
KSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1vZGlmaWVy
RmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgfQpAQCAtMTAyMyw5ICsxMDIyLDkgQEAgLSAodm9pZClrZXlEb3duOihXZWJF
dmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNDb21tYW5k
S2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsVG9F
bmRPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZs
YWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICht
b2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikgewogICAgICAgICAgICAg
ICAgICAgICBbc2VsZiBzY3JvbGxQYWdlRG93bjpuaWxdOwogICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbExpbmVEb3duOm5pbF07CkBAIC0x
MDM0LDEyICsxMDMzLDEyIEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU0xlZnRBcnJvd0Z1bmN0aW9u
S2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRy
b2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAg
ICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtl
eU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1v
ZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIENoZWNrIGJhY2svZm9yd2Fy
ZCByZWxhdGVkIGtleXMuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0Nv
bW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1haW50
YWluc0JhY2tGb3J3YXJkTGlzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVy
ID0gWUVTOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDUyLDcgKzEwNTEs
NyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfcGFnZUhvcml6b250YWxseTpZRVNdOwog
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgW3Nl
bGYgX3Njcm9sbExpbmVIb3Jpem9udGFsbHk6WUVTXTsKQEAgLTEwNjIsMTIgKzEwNjEsMTIgQEAg
LSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAg
ICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJl
LCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwg
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxT
dXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIC8vIENoZWNrIGJhY2svZm9yd2FyZCByZWxhdGVkIGtleXMuCi0g
ICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29t
bWFuZCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1haW50YWluc0JhY2tGb3J3YXJkTGlz
dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDgwLDcgKzEwNzksNyBAQCAtICh2b2lkKWtleURv
d246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBbc2VsZiBfcGFnZUhvcml6b250YWxseTpOT107CiAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfc2Nyb2xsTGluZUhvcml6
b250YWxseTpOT107CkBAIC0xMDkwLDcgKzEwODksNiBAQCAtICh2b2lkKWtleURvd246KFdlYkV2
ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBpZiAoY2FsbFN1cGVyKSB7CiAgICAgICAg
IFtzdXBlciBrZXlEb3duOmV2ZW50XTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KaW5kZXggOWZkOTU2
NjE3ZjA3YzZjZjZmNDg1N2NjOWUyMjE0MGIyMTg4YjJlNC4uZjU0MzQxZmRiYjRlNGQzY2VkOWRl
ZDE2M2YxODQzMmIwNDZkOWIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1dlYldpbmRvd0FuaW1hdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50
ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTg2LDExICs4Nyw4IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJGdWxsU2NyZWVuQ29u
dHJvbGxlcgogI3ByYWdtYSBtYXJrIEluaXRpYWxpemF0aW9uCiAtIChpZClpbml0CiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgLy8gRG8gbm90IGRlZmVyIHdpbmRv
dyBjcmVhdGlvbiwgdG8gbWFrZSBzdXJlIC13aW5kb3dOdW1iZXIgaXMgY3JlYXRlZCAobmVlZGVk
IGJ5IFdlYldpbmRvd1NjYWxlQW5pbWF0aW9uKS4KLSAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tX
ZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU1plcm9S
ZWN0IHN0eWxlTWFzazpOU0Nsb3NhYmxlV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5T
V2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQ2xvc2Fi
bGUgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBzZWxmID0g
W3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dpbmRvdyByZWxlYXNlXTsKICAg
ICBpZiAoIXNlbGYpCkBAIC00NjIsMTAgKzQ2MCw3IEBAIC0gKHZvaWQpX3N3YXBWaWV3OihOU1Zp
ZXcqKXZpZXcgd2l0aDooTlNWaWV3KilvdGhlclZpZXcKIAogc3RhdGljIFJldGFpblB0cjxOU1dp
bmRvdz4gY3JlYXRlQmFja2dyb3VuZEZ1bGxzY3JlZW5XaW5kb3coTlNSZWN0IGZyYW1lKQogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93ICp3aW5kb3cg
PSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpO
U0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZl
cjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNXaW5kb3cgKndpbmRv
dyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6ZnJhbWUgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0T3BhcXVlOllFU107CiAgICAgW3dpbmRvdyBz
ZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgYmxhY2tDb2xvcl1dOwogICAgIFt3aW5kb3cgc2V0
UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCmluZGV4IDU1ZjFhZTJkNDU4ZjU2MTM5NWZjMzI2YWFjYmM2MGY0ZGIzMjEzYzQuLjA4
NGZlNDU1N2U3YWI4NTM0MzdhY2M1MWU5ZTI3ODdhZmZhNTBjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTQwLDEyICsxNDAsMTMgQEAKICNpbXBvcnQg
PHd0Zi9SdW5Mb29wLmg+CiAKICNpZiAhUExBVEZPUk0oSU9TKQorI2ltcG9ydCAiV2ViTlNFdmVu
dEV4dHJhcy5oIgorI2ltcG9ydCAiV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmgiCiAjaW1wb3J0IDxB
cHBLaXQvTlNBY2Nlc3NpYmlsaXR5Lmg+CiAjaW1wb3J0IDxBcHBsaWNhdGlvblNlcnZpY2VzL0Fw
cGxpY2F0aW9uU2VydmljZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNNZW51U1BJLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+Ci0jaW1wb3J0ICJXZWJOU0V2
ZW50RXh0cmFzLmgiCi0jaW1wb3J0ICJXZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaCIKKyNpbXBvcnQg
PHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNp
bXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgpAQCAtMTM1MSwxMiArMTM1Miw5IEBAIC0g
KHZvaWQpX3Bhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFz
dGVib2FyZAogCiAtICh2b2lkKV9wb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdl
ZEV2ZW50OihOU0V2ZW50ICopZmxhZ3NDaGFuZ2VkRXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50Lndp
bmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KKyAgICBOU0V2ZW50ICpmYWtl
RXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVk
IGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9m
RXZlbnRTdHJlYW0KICAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFnc0NoYW5nZWRFdmVudC5tb2Rp
ZmllckZsYWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50aW1lc3RhbXAgd2luZG93TnVt
YmVyOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgogICAgICAgICBjb250ZXh0Om51bGxw
dHIgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAgICAgW3NlbGYgbW91c2VNb3ZlZDpmYWtlRXZlbnRdOwogfQogCkBA
IC0xNTA2LDEwICsxNTA0LDcgQEAgLSAodm9pZClfc2V0TW91c2VEb3duRXZlbnQ6KFdlYkV2ZW50
ICopZXZlbnQKICNlbmRpZgogewogI2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJUKCFldmVudCB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNMZWZ0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU1JpZ2h0TW91c2VEb3duIHx8IFtl
dmVudCB0eXBlXSA9PSBOU090aGVyTW91c2VEb3duKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBU1NFUlQoIWV2ZW50IHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24g
fHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24pOwogI2Vsc2UKICAg
ICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRNb3VzZURvd24pOwogI2Vu
ZGlmCkBAIC0xNjYxLDE2ICsxNjU2LDE3IEBAIC0gKGlkKV9icmlkZ2UKIAogLSAodm9pZClfdXBk
YXRlTW91c2VvdmVyV2l0aEZha2VFdmVudAogeworICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAg
bG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNNb3VzZU1vdmVkCi0gICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3Jl
ZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAgICAgIGNvbnZlcnRTY3JlZW5U
b0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVy
RmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJl
bmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJl
cl0KICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgIGV2ZW50TnVtYmVyOjAgY2xpY2tD
b3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAg
W3NlbGYgX3VwZGF0ZU1vdXNlb3ZlcldpdGhFdmVudDpmYWtlRXZlbnRdOwogfQpAQCAtMTg2OCwx
MSArMTg2NCw4IEBAIC0gKEJPT0wpX2luc2lkZUFub3RoZXJIVE1MVmlldwogI2lmICFQTEFURk9S
TShJT1MpCiBzdGF0aWMgQk9PTCBpc1F1aWNrTG9va0V2ZW50KE5TRXZlbnQgKmV2ZW50KQogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGNvbnN0IGludCBrQ0dTRXZl
bnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxlYXNlZCA9IDk7Ci0gICAgcmV0dXJu
IFtldmVudCB0eXBlXSA9PSBOU1N5c3RlbURlZmluZWQgJiYgW2V2ZW50IHN1YnR5cGVdID09IGtD
R1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJlbGVhc2VkICYmIFtldmVudCBk
YXRhMV0gPT0gJ2xrdXAnOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVy
biBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZpbmVkICYmIFtldmVudCBzdWJ0
eXBlXSA9PSBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxlYXNlZCAm
JiBbZXZlbnQgZGF0YTFdID09ICdsa3VwJzsKIH0KICNlbmRpZgogCkBAIC0xOTI4LDE0ICsxOTIx
LDExIEBAIC0gKE5TVmlldyAqKWhpdFRlc3Q6KE5TUG9pbnQpcG9pbnQKICAgICBlbHNlIHsKICAg
ICAgICAgLy8gRklYTUU6IFdoeSBkb2Vzbid0IHRoaXMgaW5jbHVkZSBtb3VzZSBlbnRlcmVkL2V4
aXRlZCBldmVudHMsIG9yIG90aGVyIG1vdXNlIGJ1dHRvbiBldmVudHM/CiAgICAgICAgIE5TRXZl
bnQgKmV2ZW50ID0gW1tzZWxmIHdpbmRvd10gY3VycmVudEV2ZW50XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FwdHVyZUhpdHNPblN1YnZpZXdzID0gIShb
ZXZlbnQgdHlwZV0gPT0gTlNNb3VzZU1vdmVkCi0gICAgICAgICAgICB8fCBbZXZlbnQgdHlwZV0g
PT0gTlNSaWdodE1vdXNlRG93bgotICAgICAgICAgICAgfHwgKFtldmVudCB0eXBlXSA9PSBOU0xl
ZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2sp
ICE9IDApCi0gICAgICAgICAgICB8fCBbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQKKyAg
ICAgICAgY2FwdHVyZUhpdHNPblN1YnZpZXdzID0gIShbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5
cGVNb3VzZU1vdmVkCisgICAgICAgICAgICB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVS
aWdodE1vdXNlRG93bgorICAgICAgICAgICAgfHwgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd24gJiYgW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbnRyb2wpCisgICAgICAgICAgICB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVG
bGFnc0NoYW5nZWQKICAgICAgICAgICAgIHx8IGlzUXVpY2tMb29rRXZlbnQoZXZlbnQpKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBpZiAoIWNhcHR1cmVIaXRz
T25TdWJ2aWV3cykgewpAQCAtMjAyMyw5ICsyMDEzLDcgQEAgLSAodm9pZClfcmVtb3ZlVHJhY2tp
bmdSZWN0czooTlNUcmFja2luZ1JlY3RUYWcgKil0YWdzIGNvdW50OihpbnQpY291bnQKIC0gKHZv
aWQpX3NlbmRUb29sVGlwTW91c2VFeGl0ZWQKIHsKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMgZXhj
ZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBl
bnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFeGl0ZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFeGl0
ZWQKICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgbW9kaWZpZXJG
bGFnczowCiAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yMDM0LDE2ICsyMDIyLDEzIEBAIC0gKHZv
aWQpX3NlbmRUb29sVGlwTW91c2VFeGl0ZWQKICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAg
ICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICB1c2VyRGF0YTpfcHJp
dmF0ZS0+dHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0T3duZXIgbW91c2VFeGl0ZWQ6ZmFrZUV2ZW50
XTsKIH0KIAogLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUVudGVyZWQKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdp
bmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFbnRlcmVkCisgICAg
TlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZU1vdXNlRW50ZXJlZAogICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKQog
ICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTIwNTMsNyAr
MjAzOCw2IEBAIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkCiAgICAgICAgIHRyYWNr
aW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgIHVzZXJEYXRhOl9wcml2YXRlLT50
cmFja2luZ1JlY3RVc2VyRGF0YV07CiAgICAgW19wcml2YXRlLT50cmFja2luZ1JlY3RPd25lciBt
b3VzZUVudGVyZWQ6ZmFrZUV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0K
ICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCkBAIC0yMDg5LDIxICsyMDczLDE4IEBAIC0gKE5T
U3RyaW5nICopdmlldzooTlNWaWV3ICopdmlldyBzdHJpbmdGb3JUb29sVGlwOihOU1Rvb2xUaXBU
YWcpdGFnIHBvaW50OihOU1BvCiBzdGF0aWMgYm9vbCBtb3VzZUV2ZW50SXNQYXJ0T2ZDbGlja09y
RHJhZyhOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNl
RG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNl
IE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoK
LSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJN
b3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiB9CiAKQEAgLTIxMzQsMTYgKzIxMTUsMTQgQEAgLSAodm9p
ZClfdXBkYXRlTW91c2VvdmVyV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKICAgICAgICAgZmxv
YXQgeVNjcm9sbCA9IHZpc2libGVSZWN0Lm9yaWdpbi55OwogICAgICAgICBmbG9hdCB4U2Nyb2xs
ID0gdmlzaWJsZVJlY3Qub3JpZ2luLng7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNNb3VzZU1vdmVkCisgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAgICAgICAgICAgbG9jYXRpb246
TlNNYWtlUG9pbnQoLTEgLSB4U2Nyb2xsLCAtMSAtIHlTY3JvbGwpCiAgICAgICAgICAgICBtb2Rp
ZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICAg
ICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAg
ICAgICAgICAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0KICAgICAg
ICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICAgICAgZXZlbnROdW1iZXI6MCBjbGlja0Nv
dW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAgICAg
ICAgaWYgKEZyYW1lKiBsYXN0SGl0Q29yZUZyYW1lID0gY29yZShbbGFzdEhpdFZpZXcgX2ZyYW1l
XSkpCiAgICAgICAgICAgICBsYXN0SGl0Q29yZUZyYW1lLT5ldmVudEhhbmRsZXIoKS5tb3VzZU1v
dmVkKGV2ZW50LCBbW3NlbGYgX3dlYlZpZXddIF9wcmVzc3VyZUV2ZW50XSk7CiAgICAgfQpAQCAt
MjMzMCwxNiArMjMwOSwxOCBAQCAtICh2b2lkKV9hdXRvc2Nyb2xsCiAgICAgfQogCiAjaWYgIVBM
QVRGT1JNKElPUykKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkCisgICAgICAgIGxvY2F0aW9uOltb
c2VsZiB3aW5kb3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNl
RHJhZ2dlZAotICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9C
YXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNl
OltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
ICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdz
XQogICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURh
dGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdCiAg
ICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6
MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwogICAgIFtzZWxm
IG1vdXNlRHJhZ2dlZDpmYWtlRXZlbnRdOwogI2VuZGlmCiB9CkBAIC0zMzU0LDEyICszMzM1LDkg
QEAgLSAoQk9PTClhY2NlcHRzRmlyc3RSZXNwb25kZXIKICAgICAvLyBvciBmcm9tIGNhbGxzIGJh
Y2sgZnJvbSBXZWJDb3JlIG9uY2Ugd2UgYmVnaW4gbW91c2UtZG93biBldmVudCBoYW5kbGluZy4K
ICNpZiAhUExBVEZPUk0oSU9TKSAgICAgICAgICAgIAogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05T
QXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24KKyAgICBpZiAoW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bgogICAgICAgICAgICAgJiYgIV9wcml2YXRl
LT5oYW5kbGluZ01vdXNlRG93bkV2ZW50CiAgICAgICAgICAgICAmJiBOU1BvaW50SW5SZWN0KFtl
dmVudCBsb2NhdGlvbkluV2luZG93XSwgW3NlbGYgY29udmVydFJlY3Q6W3NlbGYgdmlzaWJsZVJl
Y3RdIHRvVmlldzpuaWxdKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAg
ICByZXR1cm4gTk87CiAgICAgfQogI2Vsc2UKQEAgLTM1MjgsMTMgKzM1MDYsMTAgQEAgLSAodm9p
ZCl2aWV3RGlkTW92ZVRvV2luZG93CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICBpZiAo
IV9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIF9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVu
dE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6
TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6XihOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkg
eworICAgICAgICAgICAgX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2
ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0V2ZW50TWFza0ZsYWdz
Q2hhbmdlZCBoYW5kbGVyOl4oTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKICAgICAgICAg
ICAgICAgICBbc2VsZiBfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVu
dDpmbGFnc0NoYW5nZWRFdmVudF07CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzQ2hhbmdl
ZEV2ZW50OwogICAgICAgICAgICAgfV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAg
ICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBbTlNFdmVudCByZW1vdmVNb25pdG9yOl9w
cml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3JdOwpAQCAtNDU0MCwxMSArNDUxNSwxMiBA
QCAtICh2b2lkKW1vdXNlRG93bjooV2ViRXZlbnQgKilldmVudAogICAgIE5TSW5wdXRNYW5hZ2Vy
ICpjdXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1hbmFn
ZXJdOwogCiAgICAgaWYgKCFbY3VycmVudElucHV0TWFuYWdlciB3YW50c1RvSGFuZGxlTW91c2VF
dmVudHNdIHx8ICFbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVNb3VzZUV2ZW50OmV2ZW50XSkg
eworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBbX3ByaXZhdGUtPmNvbXBs
ZXRpb25Db250cm9sbGVyIGVuZFJldmVydGluZ0NoYW5nZTpOTyBtb3ZlTGVmdDpOT107CiAKICAg
ICAgICAgLy8gSWYgdGhlIHdlYiBwYWdlIGhhbmRsZXMgdGhlIGNvbnRleHQgbWVudSBldmVudCBh
bmQgbWVudUZvckV2ZW50OiByZXR1cm5zIG5pbCwgd2UnbGwgZ2V0IGNvbnRyb2wgY2xpY2sgZXZl
bnRzIGhlcmUuCiAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcGFzcyB0aGVtIGFsb25nIHRv
IEtIVE1MIGEgc2Vjb25kIHRpbWUuCi0gICAgICAgIGlmICghKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgIGlmICghKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewogICAgICAgICAgICAgX3ByaXZh
dGUtPmlnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzID0gTk87CiAKICAgICAgICAgICAgIC8vIExl
dCBXZWJDb3JlIGdldCBhIGNoYW5jZSB0byBkZWFsIHdpdGggdGhlIGV2ZW50LiBUaGlzIHdpbGwg
Y2FsbCBiYWNrIHRvIHVzCkBAIC00NTUzLDcgKzQ1MjksNiBAQCAtICh2b2lkKW1vdXNlRG93bjoo
V2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGNvcmVmcmFtZS0+ZXZlbnRIYW5kbGVy
KCkubW91c2VEb3duKGV2ZW50LCBbW3NlbGYgX3dlYlZpZXddIF9wcmVzc3VyZUV2ZW50XSk7CiAg
ICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAjZW5kaWYKIAog
ICAgIF9wcml2YXRlLT5oYW5kbGluZ01vdXNlRG93bkV2ZW50ID0gTk87CkBAIC00ODE4LDE5ICs0
NzkzLDEyIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2Fy
ZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgc3dpdGNo
IChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBjYXNlIE5TS2V5RG93bjogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotCisgICAg
Y2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50
IHBsYXRmb3JtRXZlbnQgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXli
b2FyZEV2ZW50KGV2ZW50KTsKICAgICAgICAgcGxhdGZvcm1FdmVudC5kaXNhbWJpZ3VhdGVLZXlE
b3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bik7CiAgICAgICAgIHJldHVybiBLZXli
b2FyZEV2ZW50OjpjcmVhdGUocGxhdGZvcm1FdmVudCwgY29yZUZyYW1lLT5kb2N1bWVudCgpLT5k
ZWZhdWx0VmlldygpKTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgY2FzZSBOU0tleVVwOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGNh
c2UgTlNFdmVudFR5cGVLZXlVcDoKICAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OmNyZWF0
ZShQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KGV2ZW50
KSwgY29yZUZyYW1lLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKTsKICAgICBkZWZhdWx0Ogog
ICAgICAgICByZXR1cm4gMDsKQEAgLTU1MjQsMTEgKzU0OTIsOCBAQCAtIChCT09MKV9oYW5kbGVT
dHlsZUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogICAgIGlmICghW3NlbGYgX2NhbkVk
aXRdKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgaWYgKChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0RldmljZUluZGVw
ZW5kZW50TW9kaWZpZXJGbGFnc01hc2spICE9IE5TQ29tbWFuZEtleU1hc2spCisgICAgaWYgKChb
ZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRGV2aWNlSW5kZXBlbmRl
bnRGbGFnc01hc2spICE9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKQogICAgICAgICByZXR1
cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBOU1N0cmluZyAqc3Ry
aW5nID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgIGlmIChbc3RyaW5nIGNhc2VJbnNlbnNpdGl2
ZUNvbXBhcmU6QCJiIl0gPT0gTlNPcmRlcmVkU2FtZSkgewpAQCAtNjQ0OCwxNCArNjQxMywxMSBA
QCAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooS2V5Ym9hcmRFdmVudCopZXZlbnQgc2F2aW5n
Q29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbQogICAgICAgICByZXR1cm4gTk87CiAKICAgICBOU0V2
ZW50ICptYWNFdmVudCA9IHBsYXRmb3JtRXZlbnQtPm1hY0V2ZW50KCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBOU0tleURv
d24gJiYgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBmaWx0ZXJLZXlEb3duOm1hY0V2
ZW50XSkKKyAgICBpZiAoW21hY0V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biAmJiBb
X3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVyIGZpbHRlcktleURvd246bWFjRXZlbnRdKQog
ICAgICAgICByZXR1cm4gWUVTOwogICAgIAotICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNG
bGFnc0NoYW5nZWQpCisgICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdz
Q2hhbmdlZCkKICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIAogICAgIHBhcmFtZXRlcnMuZXZlbnQgPSBldmVudDsKICAgICBfcHJpdmF0ZS0+aW50
ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyA9ICZwYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDc4ZjU2ZTQ5MWUwODZhYWU5ODNiMzgwNjk5YTU1
MTU3Y2Q5OGZkYmEuLjk2MGM2Mzc5ZDFhY2U2MDA3YmUxMjA1MmFlMjg0NzQ3MzU0N2Q4ODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTY1LDYgKzY1LDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmg+CiAjaW1wb3J0
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0
aW9uU2VydmljZXNQcml2Lmg+CkBAIC0zMjEsMTAgKzMyMiw3IEBAIC0gKE5TVmlldyAqKWhpdFRl
c3Q6KE5TUG9pbnQpcG9pbnQKICAgICAvLyBPdmVycmlkZSBoaXRUZXN0IHNvIHdlIGNhbiBvdmVy
cmlkZSBtZW51Rm9yRXZlbnQuCiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2
ZW50XTsKICAgICBOU0V2ZW50VHlwZSB0eXBlID0gW2V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICh0eXBlID09IE5TUmlnaHRNb3VzZURvd24g
fHwgKHR5cGUgPT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBO
U0NvbnRyb2xLZXlNYXNrKSkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYg
KHR5cGUgPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8fCAodHlwZSA9PSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdDb250cm9sKSkpCiAgICAgICAgIHJldHVybiBzZWxmOwogCiAgICAgcmV0dXJuIFtzdXBl
ciBoaXRUZXN0OnBvaW50XTsKQEAgLTEwMDksMzkgKzEwMDcsMzMgQEAgLSAodm9pZClQREZWaWV3
V2lsbENsaWNrT25MaW5rOihQREZWaWV3ICopc2VuZGVyIHdpdGhVUkw6KE5TVVJMICopVVJMCiAg
ICAgaW50IGJ1dHRvbiA9IG5vQnV0dG9uOwogICAgIFJlZlB0cjxFdmVudD4gZXZlbnQ7CiAgICAg
c3dpdGNoIChbbnNFdmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSAw
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAg
ICAgICAgICBidXR0b24gPSAxOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNP
dGhlck1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSBbbnNFdmVudCBidXR0b25OdW1iZXJd
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNLZXlEb3duOiB7Ci0gICAgICAg
ICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGUgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3Jl
YXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KG5zRXZlbnQpOwotICAgICAgICAgICAgcGUuZGlzYW1i
aWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwotICAgICAgICAg
ICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDoKKyAgICAgICAgYnV0dG9uID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gW25zRXZl
bnQgYnV0dG9uTnVtYmVyXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2ZW50VHlwZUtl
eURvd246IHsKKyAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVu
dEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKKyAgICAgICAg
cGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwor
ICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYg
KGJ1dHRvbiAhPSBub0J1dHRvbikgewogICAgICAgICBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgMCwg
W25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5h
dGVLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU1NoaWZ0
S2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5k
S2V5TWFzaywKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIFtuc0V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wsCisgICAgICAg
ICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24s
CisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZs
YWdTaGlmdCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICBidXR0b24sIDAsIFdlYkNvcmU6OkZvcmNl
QXRDbGljaywgMCwgMCwgdHJ1ZSk7CiAgICAgfQogCkBAIC0xMTQ5LDkgKzExNDEsNyBAQCAtIChO
U0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhGdW5jdGlvbktleToodW5pY2hhcilmdW5jdGlvbktl
eQogICAgIC8vIEZJWE1FIDQ0MDA0ODA6IHdoZW4gUERGVmlldyBpbXBsZW1lbnRzIHRoZSBzdGFu
ZGFyZCBzY3JvbGxpbmcgc2VsZWN0b3JzIHRoYXQgdGhpcwogICAgIC8vIG1ldGhvZCBpcyB1c2Vk
IHRvIG1pbWljLCB3ZSBjYW4gZWxpbWluYXRlIHRoaXMgbWV0aG9kIGFuZCBjYWxsIHRoZW0gZGly
ZWN0bHkuCiAgICAgTlNTdHJpbmcgKmtleUFzU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhD
aGFyYWN0ZXJzOiZmdW5jdGlvbktleSBsZW5ndGg6MV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlE
b3duCisgICAgcmV0dXJuIFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlE
b3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNaZXJvUG9pbnQKICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6MApAQCAtMTE2MSw3ICsxMTUxLDYgQEAgLSAoTlNFdmVudCAqKV9m
YWtlS2V5RXZlbnRXaXRoRnVuY3Rpb25LZXk6KHVuaWNoYXIpZnVuY3Rpb25LZXkKICAgICAgICAg
IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczprZXlBc1N0cmluZwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaXNBUmVwZWF0Ok5PCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtl
eUNvZGU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIC0gKHZvaWQpX2xv
b2tVcEluRGljdGlvbmFyeUZyb21NZW51OihpZClzZW5kZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KaW5kZXgg
NDM4MmIwNDQ3NGU2MGM4YzIzNzMzMDQ3YjgxMzk2NGE0Zjc4NDI2My4uN2I5ZTVkYmNmNDhjMjE2
YjZjNTY2MzEwYzE3NGU0MzEyYzU2MjhlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KQEAgLTM1LDYgKzM1
LDcgQEAKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlZpZXcuaCIK
ICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIE5TV2luZG93IChXZWJOU1dpbmRv
d0RldGFpbHMpCiAtICh2b2lkKV9zZXRGb3JjZUFjdGl2ZUNvbnRyb2xzOihCT09MKWZsYWc7CkBA
IC0xMTIsMTAgKzExMyw3IEBAIC0gKHZvaWQpX2J1aWxkVUkKICAgICBbc2Nyb2xsVmlldyBzZXRE
b2N1bWVudFZpZXc6X3RhYmxlVmlld107CiAgICAgW190YWJsZVZpZXcgcmVsZWFzZV07CiAgICAg
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgX3BvcHVwV2luZG93ID0g
W1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1h
c2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIF9wb3B1cFdpbmRv
dyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6c2Nyb2xsRnJhbWUgc3R5
bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFtfcG9wdXBXaW5kb3cgc2V0QWxwaGFWYWx1ZTowLjg4
Zl07CiAgICAgW19wb3B1cFdpbmRvdyBzZXRDb250ZW50VmlldzpzY3JvbGxWaWV3XTsKICAgICBb
c2Nyb2xsVmlldyByZWxlYXNlXTsKQEAgLTE1NSw4ICsxNTMsOCBAQCAtICh2b2lkKV9wbGFjZVBv
cHVwV2luZG93OihOU1BvaW50KXRvcExlZnQKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKICAgICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNTY3JvbGxWaWV3IGZyYW1lU2l6ZUZv
ckNvbnRlbnRTaXplOk5TTWFrZVNpemUobWF4V2lkdGgsIDEwMC4wZikgaGFzSG9yaXpvbnRhbFNj
cm9sbGVyOk5PIGhhc1ZlcnRpY2FsU2Nyb2xsZXI6WUVTIGJvcmRlclR5cGU6TlNOb0JvcmRlcl0u
d2lkdGgpOwotICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JD
b250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAuMGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxl
TWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXS5zaXplLndpZHRoKTsKICNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNXaW5kb3cgZnJhbWVS
ZWN0Rm9yQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLjBmLCAwLjBmLCBtYXhXaWR0aCwgMTAwLjBm
KSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzXS5zaXplLndpZHRoKTsKICAg
ICAgICAgbWF4V2lkdGggKz0gNS4wZjsKICAgICAgICAgd2luZG93RnJhbWUuc2l6ZS53aWR0aCA9
IHN0ZDo6bWF4KG1heFdpZHRoLCB3aW5kb3dGcmFtZS5zaXplLndpZHRoKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggN2NmYWE4N2I1NTZlYjQ3NmJmM2M1ZmVk
NWUwM2U2OGZiYTJkZTRiZi4uYmUzMjZlN2Y4ZTczMjc2OTk2ZGRjZTVjOTMzMmFmNDZiOWFmNzE2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjEzLDYgKzIxMyw3IEBA
CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9y
dCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmls
aXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9keWxkU1BJLmg+CiAK
ICNpZiAhUExBVEZPUk0oSU9TKQpAQCAtNjA5NSwxMCArNjA5Niw3IEBAIC0gKERyYWdBcHBsaWNh
dGlvbkZsYWdzKWFwcGxpY2F0aW9uRmxhZ3M6KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJ
bmZvCiAgICAgICAgIGZsYWdzIHw9IERyYWdBcHBsaWNhdGlvbkhhc0F0dGFjaGVkU2hlZXQ7CiAg
ICAgaWYgKFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VdID09IHNlbGYpCiAgICAgICAgIGZs
YWdzIHw9IERyYWdBcHBsaWNhdGlvbklzU291cmNlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10g
JiBOU0FsdGVybmF0ZUtleU1hc2spCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
aWYgKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdPcHRpb24pCiAgICAgICAgIGZsYWdzIHw9IERyYWdBcHBsaWNhdGlvbklzQ29weUtleURv
d247CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERyYWdBcHBsaWNhdGlvbkZsYWdzPihmbGFncyk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4
IDJlNjU4MDZkYjVkNjhmMGE0YTI4MmQzODNiOTZlN2I0NTE2YjkwNDAuLmIwYzU1NGQ0ZGE2MjNk
OTliMDE0MzU4NjdiMjA3NzI1Yjg2NzQ1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQ2hpbGRQcm9jZXNzTWFjLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0IDxwd2QuaD4K
ICNpbXBvcnQgPHN0ZGxpYi5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3NwaS9k
YXJ3aW4vU2FuZGJveFNQSS5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKQEAgLTE5
NywxMCArMTk4LDcgQEAgdm9pZCBDaGlsZFByb2Nlc3M6OnN0b3BOU0FwcFJ1bkxvb3AoKQogICAg
IEFTU0VSVChbTlNBcHAgaXNSdW5uaW5nXSk7CiAgICAgW05TQXBwIHN0b3A6bmlsXTsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05T
RXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5TQXBwbGljYXRpb25EZWZpbmVkIGxvY2F0aW9uOk5T
TWFrZVBvaW50KDAsIDApIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MC4wIHdpbmRvd051bWJl
cjowIGNvbnRleHQ6bmlsIHN1YnR5cGU6MCBkYXRhMTowIGRhdGEyOjBdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgb3RoZXJFdmVu
dFdpdGhUeXBlOk5TRXZlbnRUeXBlQXBwbGljYXRpb25EZWZpbmVkIGxvY2F0aW9uOk5TTWFrZVBv
aW50KDAsIDApIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MC4wIHdpbmRvd051bWJlcjowIGNv
bnRleHQ6bmlsIHN1YnR5cGU6MCBkYXRhMTowIGRhdGEyOjBdOwogICAgIFtOU0FwcCBwb3N0RXZl
bnQ6ZXZlbnQgYXRTdGFydDp0cnVlXTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQppbmRleCBhODVlZmNhZWU5YTUyZDhjMDQ1NjY2ZDk0
YzQ5MTg3MGNhNjhhN2QzLi4yZjE1OGMwM2UzYmUzODM4YzA2M2IyMWIyMGZjOWY2N2M3MmI5YzZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAt
NjMsNzggKzYzLDY5IEBAIHN0YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0b24gY3VycmVudE1vdXNl
QnV0dG9uKCkKIAogc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2
ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VE
b3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247
Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0
dXJuIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOwotICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVC
dXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2
ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2Vk
OgorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICBjYXNlIE5T
RXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVy
biBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50
OjpNaWRkbGVCdXR0b247CiAjaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICAgICAgY2FzZSBOU0V2
ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgot
ICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6
Ci0gICAgICAgICAgICByZXR1cm4gY3VycmVudE1vdXNlQnV0dG9uKCk7Ci0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0
ZWQ6CisgICAgICAgIHJldHVybiBjdXJyZW50TW91c2VCdXR0b24oKTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CiAgICAgfQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgV2ViRXZlbnQ6OlR5cGUgbW91c2VFdmVu
dFR5cGVGb3JFdmVudChOU0V2ZW50KiBldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5T
TGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAg
Y2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAg
Y2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdn
ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKLSAgICAgICAgY2Fz
ZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAg
ICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpN
b3VzZURvd247Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJl
dHVybiBXZWJFdmVudDo6TW91c2VVcDsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJl
dHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VE
cmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAg
IGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
UmlnaHRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAg
ICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VEb3duOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VVcDsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKICAgICB9
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tDb3Vu
dEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0
TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNM
ZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1
cm4gW2V2ZW50IGNsaWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2
ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2Vk
OgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0
aWMgTlNQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQpAQCAtMTQzLDIy
ICsxMzQsMTkgQEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpl
dmVudCkKICNpZiBkZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3Vy
ZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2Ug
TlNMZWZ0TW91c2VEb3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgIGNhc2Ug
TlNMZWZ0TW91c2VVcDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgIGNhc2UgTlNNb3Vz
ZUV4aXRlZDoKLSAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURv
d246Ci0gICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNPdGhlck1vdXNl
VXA6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRHJh
Z2dlZDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2UgTlNTY3JvbGxXaGVlbDoK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6CiAgICAgICAgIHJldHVy
biBXZWJDb3JlOjpnbG9iYWxQb2ludChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10sIFtldmVudCB3
aW5kb3ddKTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gTlNaZXJvUG9pbnQ7CkBAIC0x
NzEsMjIgKzE1OSwxOSBAQCBzdGF0aWMgTlNQb2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2
ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiAjaWYgZGVmaW5lZChfX0xQNjRfXykKICAgICBjYXNl
IE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICBjYXNlIE5TTGVmdE1vdXNl
RHJhZ2dlZDoKLSAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgY2FzZSBOU01vdXNlRW50ZXJl
ZDoKLSAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAg
Y2FzZSBOU090aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAg
ICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICBj
YXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICBj
YXNlIE5TU2Nyb2xsV2hlZWw6IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1v
dXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBO
U0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6
CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xs
V2hlZWw6IHsKICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0
aGUgYm90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVk
LgogICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBw
ZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCiAgICAgICAgIE5TUG9p
bnQgbG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CkBAIC0yNDAsMTAgKzIyNSw3
IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJv
b2wgcmVwbGFjZXNTb2Z0U3BhY2UpCiB7CiAgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQogICAg
ICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVG
bGFnc0NoYW5nZWQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBT
dHJpbmcoW2V2ZW50IGNoYXJhY3RlcnNdKTsKIH0KQEAgLTI1MiwxMCArMjM0LDcgQEAgc3RhdGlj
IGlubGluZSBTdHJpbmcgdW5tb2RpZmllZFRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJv
b2wgcmVwbGFjZXNTb2Z0U3AKIHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdz
Q2hhbmdlZCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmlu
ZyhbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSk7CiB9CkBAIC0yNjQsNzQgKzI0
Myw2OCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAg
IC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhhcyBhIGtleUNv
ZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNhc2UgTlNLZXlV
cDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkOgorICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAg
ICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA3MTogLy8gQ2xlYXIK
LSAgICAgICAgY2FzZSA4MTogLy8gPQotICAgICAgICBjYXNlIDc1OiAvLyAvCi0gICAgICAgIGNh
c2UgNjc6IC8vICoKLSAgICAgICAgY2FzZSA3ODogLy8gLQotICAgICAgICBjYXNlIDY5OiAvLyAr
Ci0gICAgICAgIGNhc2UgNzY6IC8vIEVudGVyCi0gICAgICAgIGNhc2UgNjU6IC8vIC4KLSAgICAg
ICAgY2FzZSA4MjogLy8gMAotICAgICAgICBjYXNlIDgzOiAvLyAxCi0gICAgICAgIGNhc2UgODQ6
IC8vIDIKLSAgICAgICAgY2FzZSA4NTogLy8gMwotICAgICAgICBjYXNlIDg2OiAvLyA0Ci0gICAg
ICAgIGNhc2UgODc6IC8vIDUKLSAgICAgICAgY2FzZSA4ODogLy8gNgotICAgICAgICBjYXNlIDg5
OiAvLyA3Ci0gICAgICAgIGNhc2UgOTE6IC8vIDgKLSAgICAgICAgY2FzZSA5MjogLy8gOQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIH0KKyAgICBjYXNlIDcxOiAvLyBDbGVhcgorICAg
IGNhc2UgODE6IC8vID0KKyAgICBjYXNlIDc1OiAvLyAvCisgICAgY2FzZSA2NzogLy8gKgorICAg
IGNhc2UgNzg6IC8vIC0KKyAgICBjYXNlIDY5OiAvLyArCisgICAgY2FzZSA3NjogLy8gRW50ZXIK
KyAgICBjYXNlIDY1OiAvLyAuCisgICAgY2FzZSA4MjogLy8gMAorICAgIGNhc2UgODM6IC8vIDEK
KyAgICBjYXNlIDg0OiAvLyAyCisgICAgY2FzZSA4NTogLy8gMworICAgIGNhc2UgODY6IC8vIDQK
KyAgICBjYXNlIDg3OiAvLyA1CisgICAgY2FzZSA4ODogLy8gNgorICAgIGNhc2UgODk6IC8vIDcK
KyAgICBjYXNlIDkxOiAvLyA4CisgICAgY2FzZSA5MjogLy8gOQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkK
LSAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0tleVVwOworICAgIGlmIChbZXZlbnQg
dHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCisgICAgICAgIHJldHVybiBbZXZlbnQg
dHlwZV0gPT0gTlNFdmVudFR5cGVLZXlVcDsKICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBmYWls
cyBpZiB0aGUgdXNlciBwcmVzc2VzIGJvdGggU2hpZnQga2V5cyBhdCBvbmNlLCBmb3IgZXhhbXBs
ZToKICAgICAvLyB3ZSB0cmVhdCByZWxlYXNpbmcgb25lIG9mIHRoZW0gYXMga2V5RG93bi4KICAg
ICBzd2l0Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBjYXNlIDU0OiAvLyBSaWdodCBD
b21tYW5kCi0gICAgICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgcmV0
dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKSA9PSAwOwotICAg
ICAgICAgICAgCi0gICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICByZXR1
cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1hc2spID09IDA7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAotICAgICAgICBjYXNl
IDYwOiAvLyBSaWdodCBTaGlmdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU1NoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNl
IDU4OiAvLyBMZWZ0IEFsdAotICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAg
ICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSA9
PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAg
ICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgY2FzZSA2MzogLy8gRnVuY3Rpb24KLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlm
aWVyRmxhZ3NdICYgTlNGdW5jdGlvbktleU1hc2spID09IDA7CisgICAgY2FzZSA1NDogLy8gUmln
aHQgQ29tbWFuZAorICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAorICAgICAgICByZXR1cm4g
IShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCk7CisK
KyAgICBjYXNlIDU3OiAvLyBDYXBzbG9jaworICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spOworCisgICAgY2FzZSA1Njog
Ly8gTGVmdCBTaGlmdAorICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0CisgICAgICAgIHJldHVy
biAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCk7CisK
KyAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAorICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAorICAg
ICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFn
T3B0aW9uKTsKKworICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgIGNhc2UgNjI6IC8vIFJp
Z2h0IEN0cmwKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2wpOworCisgICAgY2FzZSA2MzogLy8gRnVuY3Rpb24KKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1
bmN0aW9uKTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCkBAIC00ODQsMTAgKzQ1Nyw3IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhh
CiAgICAgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSAgICAgICA9IHdpbmRvd3NLZXlDb2RlRm9y
S2V5RXZlbnQoZXZlbnQpOwogICAgIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSAgICAgICAgPSBb
ZXZlbnQga2V5Q29kZV07CiAgICAgaW50IG1hY0NoYXJDb2RlICAgICAgICAgICAgICAgICA9IFdL
R2V0TlNFdmVudEtleUNoYXIoZXZlbnQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGJvb2wgYXV0b1JlcGVhdCAgICAgICAgICAgICAgICAgPSAoW2V2ZW50IHR5cGVd
ICE9IE5TRmxhZ3NDaGFuZ2VkKSAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBib29sIGF1dG9SZXBlYXQgICAgICAgICAgICAgICAgID0gW2V2
ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRd
OwogICAgIGJvb2wgaXNLZXlwYWQgICAgICAgICAgICAgICAgICAgPSBpc0tleXBhZEV2ZW50KGV2
ZW50KTsKICAgICBib29sIGlzU3lzdGVtS2V5ICAgICAgICAgICAgICAgID0gZmFsc2U7IC8vIFN5
c3RlbUtleSBpcyBhbHdheXMgZmFsc2Ugb24gdGhlIE1hYy4KICAgICBXZWJFdmVudDo6TW9kaWZp
ZXJzIG1vZGlmaWVycyAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDMyZTYzOWM0ZDkxOWFk
MTZlOWE5NDgyYjkzNWNlZjA0NjM3NzFmYmEuLjc2M2Q5MDYwNTc1OTkzZDhjYjA3M2M2YWE0ZTA5
NWMwZGJiNGE4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0KQEAgLTkzLDYgKzkzLDcgQEAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
ICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dl
YlZpZXdJbXBsSW5jbHVkZXMuaD4KQEAgLTYyMCwxMSArNjIxLDggQEAgYm9vbCBXZWJWaWV3SW1w
bDo6YmVjb21lRmlyc3RSZXNwb25kZXIoKQogICAgIGlmIChkaXJlY3Rpb24gIT0gTlNEaXJlY3RT
ZWxlY3Rpb24pIHsKICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50
XTsKICAgICAgICAgTlNFdmVudCAqa2V5Ym9hcmRFdmVudCA9IG5pbDsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0tleURv
d24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApCisgICAgICAgIGlmIChbZXZlbnQgdHlwZV0g
PT0gTlNFdmVudFR5cGVLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleVVw
KQogICAgICAgICAgICAga2V5Ym9hcmRFdmVudCA9IGV2ZW50OwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgICAgICBtX3BhZ2UtPnNldEluaXRpYWxGb2N1cyhkaXJlY3Rpb24gPT0g
TlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2ZW50ICE9IG5pbCwgTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwgZmFsc2UsIHsgfSksIFtdKFdlYktpdDo6Q2FsbGJh
Y2tCYXNlOjpFcnJvcikgeyB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC04NDgsMTAg
Kzg0Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRp
YygpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5TV2luZG93ICp3aW5kb3cgPSBtX3ZpZXcud2lu
ZG93OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICgod2luZG93
LnN0eWxlTWFzayAmIE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2spICYmICF3aW5kb3cu
dGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9zaW5nU2Nyb2xsVmll
d10pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoKHdpbmRvdy5zdHls
ZU1hc2sgJiBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXcpICYmICF3aW5kb3cu
dGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9zaW5nU2Nyb2xsVmll
d10pIHsKICAgICAgICAgTlNSZWN0IGNvbnRlbnRMYXlvdXRSZWN0ID0gW21fdmlldyBjb252ZXJ0
UmVjdDp3aW5kb3cuY29udGVudExheW91dFJlY3QgZnJvbVZpZXc6bmlsXTsKICAgICAgICAgQ0dG
bG9hdCBuZXdUb3BDb250ZW50SW5zZXQgPSBOU01heFkoY29udGVudExheW91dFJlY3QpIC0gTlNI
ZWlnaHQoY29udGVudExheW91dFJlY3QpOwogICAgICAgICBpZiAobV90b3BDb250ZW50SW5zZXQg
IT0gbmV3VG9wQ29udGVudEluc2V0KQpAQCAtMTIyOCwxMCArMTIyMyw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3coKQogCiAgICAgICAgIGlmICghbV9mbGFnc0NoYW5n
ZWRFdmVudE1vbml0b3IpIHsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFr
UHRyKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBt
X2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2
ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1hc2sgaGFuZGxlcjpbd2Vha1RoaXNdIChO
U0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRM
b2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tGbGFnc0NoYW5nZWQg
aGFuZGxlcjpbd2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewogICAgICAg
ICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnBv
c3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoZmxhZ3NDaGFuZ2VkRXZl
bnQpOwogICAgICAgICAgICAgICAgIHJldHVybiBmbGFnc0NoYW5nZWRFdmVudDsKQEAgLTEzMDIs
MTIgKzEyOTQsOSBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjpoaXRUZXN0KENHUG9pbnQgcG9pbnQp
CiAKIHZvaWQgV2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFu
Z2VkRXZlbnQoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53
aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCisgICAgTlNFdmVudCAqZmFr
ZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3Zl
ZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVP
ZkV2ZW50U3RyZWFtCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZlbnQubW9k
aWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0YW1wIHdpbmRvd051
bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKICAgICAgICAgY29udGV4dDpudWxs
cHRyIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZmFrZUV2
ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOwogICAgIG1fcGFnZS0+aGFu
ZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7CiB9CkBAIC0xNjU2LDEwICsxNjQ1LDcgQEAgTlNWaWV3
ICpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldygpCiBOU1dpbmRvdyAqV2Vi
Vmlld0ltcGw6OmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKQogewogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4g
W1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W1tO
U1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0gc3R5bGVNYXNrOihOU0JvcmRlcmxlc3NXaW5kb3dN
YXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrKSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6Tk9dIGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0gc3R5bGVNYXNrOihOU1dpbmRv
d1N0eWxlTWFza0JvcmRlcmxlc3MgfCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZSkgYmFja2lu
ZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSBhdXRvcmVsZWFzZV07CiAjZWxzZQog
ICAgIHJldHVybiBuaWw7CiAjZW5kaWYKQEAgLTI2MzEsOSArMjYxNyw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OnJlbW92ZVRyYWNraW5nUmVjdHMoTlNUcmFja2luZ1JlY3RUYWcgKnRhZ3MsIGludCBj
b3VudCkKIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFeGl0ZWQoKQogewogICAg
IC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVz
ZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQg
KmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUV4aXRl
ZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5
cGU6TlNFdmVudFR5cGVNb3VzZUV4aXRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTI2
NDIsMTYgKzI2MjYsMTMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUV4aXRl
ZCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51
bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2lu
Z051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXNlckRhdGE6bV90cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW21fdHJhY2tpbmdSZWN0T3duZXIgbW91c2VF
eGl0ZWQ6ZmFrZUV2ZW50XTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3Vz
ZUVudGVyZWQoKQogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFj
a2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0
aFR5cGU6TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBl
bnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVkCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2lu
dCgwLCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlm
aWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aW1lc3RhbXA6MApAQCAtMjY2MCw3ICsyNjQxLDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2Vu
ZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhOm1fdHJhY2tpbmdS
ZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFttX3RyYWNr
aW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwogfQogCkBAIC0yODE2LDEwICsy
Nzk2LDcgQEAgc3RhdGljIFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzIGFwcGxpY2F0aW9u
RmxhZ3NGb3JEcmFnKE5TVmlldyAqdmlldywgaWQgPE4KICAgICAgICAgZmxhZ3MgfD0gV2ViQ29y
ZTo6RHJhZ0FwcGxpY2F0aW9uSGFzQXR0YWNoZWRTaGVldDsKICAgICBpZiAoZHJhZ2dpbmdJbmZv
LmRyYWdnaW5nU291cmNlID09IHZpZXcpCiAgICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdB
cHBsaWNhdGlvbklzU291cmNlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIGlmIChbTlNBcHAgY3VycmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbTlNBcHAgY3Vy
cmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAg
ICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNDb3B5S2V5RG93bjsKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3M+KGZsYWdz
KTsKIApAQCAtMzM1OSwxMCArMzMzNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNtYXJ0TWFnbmlm
eVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0TGFzdE1v
dXNlRG93bkV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9PSBOU0xlZnRNb3Vz
ZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0g
TlNPdGhlck1vdXNlRG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQVNT
RVJUKCFldmVudCB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biB8fCBl
dmVudC50eXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBO
U0V2ZW50VHlwZU90aGVyTW91c2VEb3duKTsKIAogICAgIGlmIChldmVudCA9PSBtX2xhc3RNb3Vz
ZURvd25FdmVudC5nZXQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzM5OSwxMSArMzM3Myw4IEBA
IHZvaWQgV2ViVmlld0ltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgZXZlbnRXYXNI
YW5kbGVkKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChb
ZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVu
dFR5cGVLZXlEb3duKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAKICAgICBpZiAodHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93
bihldmVudCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0NzksMTEgKzM0NTAsOCBAQCBWZWN0b3I8
V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5
b3V0Q29tbWFuZHNGb3JFdgogewogICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+
IGNvbW1hbmRzOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYg
KFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2
ZW50VHlwZUtleURvd24pCiAgICAgICAgIHJldHVybiBjb21tYW5kczsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKIAogICAgIEFTU0VSVCghbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRz
KTsKICAgICBtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMgPSAmY29tbWFuZHM7CkBAIC0zODU4
LDExICszODI2LDggQEAgYm9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNF
dmVudCAqZXZlbnQpCiAgICAgLy8gV2UgZ2V0IEVzYyBrZXkgaGVyZSBhZnRlciBwcm9jZXNzaW5n
IGVpdGhlciBFc2Mgb3IgQ21kK3BlcmlvZC4gVGhlIGZvcm1lciBzdGFydHMgYXMgYSBrZXlEb3du
LCBhbmQgdGhlIGxhdHRlciBzdGFydHMgYXMgYSBrZXkgZXF1aXZhbGVudCwKICAgICAvLyBidXQg
Ym90aCBnZXQgdHJhbnNmb3JtZWQgdG8gYSBjYW5jZWxPcGVyYXRpb246IGNvbW1hbmQsIGV4ZWN1
dGluZyB3aGljaCBwYXNzZXMgYW4gRXNjIGtleSBldmVudCB0byAtcGVyZm9ybUtleUVxdWl2YWxl
bnQ6LgogICAgIC8vIERvbid0IGludGVycHJldCB0aGlzIGV2ZW50IGFnYWluLCBhdm9pZGluZyBy
ZS1lbnRyYW5jeSBhbmQgaW5maW5pdGUgbG9vcHMuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgaWYgKFtbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSBp
c0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZp
Y2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrKSkKKyAgICBpZiAoW1tldmVudCBjaGFyYWN0
ZXJzSWdub3JpbmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0gJiYgIShbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRGV2aWNlSW5kZXBlbmRlbnRGbGFn
c01hc2spKQogICAgICAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyUGVyZm9ybUtleUVxdWl2
YWxlbnQ6ZXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgaWYgKG1f
a2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpIHsKICAgICAgICAgLy8gV2ViQ29yZSBoYXMgYWxyZWFk
eSBzZWVuIHRoZSBldmVudCwgbm8gbmVlZCBmb3IgY3VzdG9tIHByb2Nlc3NpbmcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1By
b3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblBy
b2Nlc3NQcm94eU1hYy5tbQppbmRleCBmMDdkMjc5ZDYzN2QzMGY4ZjUwNTMxN2Q4ZjA5NjA1NTdh
MTFkMmQyLi44ZjM3ZDQyNjE1MmI2MTdkNTVjOTE0ODgxNTExNGY4YzMzOWU3YzUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1By
b3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVn
aW5Qcm9jZXNzUHJveHlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPGNydF9leHRl
cm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8c3Bhd24uaD4KKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCiBAaW50ZXJmYWNlIFdLUGxhY2Vob2xkZXJNb2RhbFdpbmRv
dyA6IE5TV2luZG93IApAQCAtMjMxLDEwICsyMzIsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94
eTo6YmVnaW5Nb2RhbCgpCiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2luZG93KTsKICAgICBB
U1NFUlQoIW1fYWN0aXZhdGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dLUGxh
Y2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0
KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dLUGxhY2Vob2xkZXJN
b2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEs
IDEpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogICAgIFttX3BsYWNlaG9sZGVyV2luZG93IHNl
dFJlbGVhc2VkV2hlbkNsb3NlZDpOT107CiAgICAgCiAgICAgbV9hY3RpdmF0aW9uT2JzZXJ2ZXIg
PSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFt
ZTpOU0FwcGxpY2F0aW9uV2lsbEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiBvYmplY3Q6TlNBcHAg
cXVldWU6bmlsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggYTQ4Mzk2NGQ4ZjFmMjI2ZDRhZWNjMjdjY2IwZjA3
NjA3MWI3YmJkMS4uYmI1YWQ3YzIxZTgxMGNhMzY1NjVlY2M3NzdkMDZhZjMxYmIwMjg2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5tbQpAQCAtNDgsNiArNDgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9OU1NoYXJpbmdT
ZXJ2aWNlU1BJLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURl
Y2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDYzLDEwICs0
NjQsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVudVdpdGhJ
dGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbgogICAgIFtbV0tNZW51VGFyZ2V0IHNoYXJl
ZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0aGlzXTsKIAogICAgIE5TUG9pbnQgbWVudUxvY2F0
aW9uID0gW21fd2ViVmlldyBjb252ZXJ0UG9pbnQ6bV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpIHRv
VmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZl
bnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZVVwIGxv
Y2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVt
YmVyOm1fd2ViVmlldy53aW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVy
OjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlUmlnaHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2luZG93TnVtYmVyIGNv
bnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogICAgIFtO
U01lbnUgcG9wVXBDb250ZXh0TWVudTptX21lbnUuZ2V0KCkgd2l0aEV2ZW50OmV2ZW50IGZvclZp
ZXc6bV93ZWJWaWV3XTsKIAogICAgIGlmIChtX2NvbnRleHRNZW51TGlzdGVuZXIpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1t
CmluZGV4IDBhNzk5MTM0NmQxNWNjZmFjNzc0MzVlZjMwZWY4ZGY4MjJhZmFlMjMuLmYwNmI1ODQy
YWNkNTM0ZGZlMjQxMGZlY2E5YTFhZGZiNmVhOTc3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAtNDEsNiArNDEs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29m
dExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIFNPRlRfTElOS19TVEFHRURf
RlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJhbWV3b3JrcywgQSkKQEAgLTQ4LDEw
ICs0OSw3IEBAIFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQcml2
YXRlRnJhbWV3b3JrcywgQSkKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotc3RhdGlj
IGNvbnN0IE5TVUludGVnZXIgd2luZG93U3R5bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNrIHwg
TlNDbG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TUmVz
aXphYmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitzdGF0aWMgY29uc3QgTlNVSW50ZWdlciB3aW5kb3dT
dHlsZU1hc2sgPSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xv
c2FibGUgfCBOU1dpbmRvd1N0eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1h
c2tSZXNpemFibGUgfCBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXc7CiAKIC8v
IFRoZSB0aW1lIHdlIGtlZXAgb3VyIFdlYlZpZXcgYWxpdmUgYmVmb3JlIGNsb3NpbmcgaXQgYW5k
IGl0cyBwcm9jZXNzLgogLy8gUmV1c2luZyB0aGUgV2ViVmlldyBpbXByb3ZlcyBzdGFydCB1cCB0
aW1lIGZvciBwZW9wbGUgdGhhdCBqdW1wIGluIGFuZCBvdXQgb2YgdGhlIEluc3BlY3Rvci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFj
Lm1tCmluZGV4IGQyOWQwODkwNTJjODg3YWZiODY0MjM4NDU1YWExODg0YjRkZDQ2NWMuLmMyMjlm
YmQwYjhiZWJiYWYxMTVjMzUzZTgzYzdlMDg0NjUwNjAzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQpAQCAtMzQsNiAr
MzQsNyBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXZWJQb3B1cEl0
ZW0uaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC03NCwxOSArNzUsMTMgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6
cG9wdWxhdGUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBOU0ZvbnQgKmYKICAg
ICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5
bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11
dGFibGVDb3B5XSk7CiAgICAgICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVj
dGlvbiA9IGl0ZW1zW2ldLm1fdGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rp
b25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICAg
ICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndyaXRpbmdEaXJlY3Rp
b25dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW3Bh
cmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU0xl
ZnRUZXh0QWxpZ25tZW50IDogTlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpt
ZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1RleHRBbGlnbm1lbnRMZWZ0IDogTlNUZXh0QWxp
Z25tZW50UmlnaHRdOwogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+
IGF0dHJpYnV0ZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdp
dGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdHlsZS5nZXQoKSwg
TlNQYXJhZ3JhcGhTdHlsZUF0dHJpYnV0ZU5hbWUsCiAgICAgICAgICAgICAgICAgZm9udCwgTlNG
b250QXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgIG5pbF0pOwogICAgICAgICAgICAgaWYgKGl0
ZW1zW2ldLm1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0
aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50
ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgUmV0YWluUHRy
PE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxs
b2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0aW5nRGlyZWN0aW9u
T3ZlcnJpZGVdKTsKICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJheT4gd3JpdGluZ0Rp
cmVjdGlvbkFycmF5ID0gYWRvcHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czp3
cml0aW5nRGlyZWN0aW9uVmFsdWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAgICAgICAgIFthdHRy
aWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJyYXkuZ2V0KCkgZm9yS2V5Ok5TV3Jp
dGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAgICAgICAgfQpAQCAtMTU0LDE4ICsx
NDksMTUgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJ
bnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKIAogICAgIE5TQ29udHJvbFNpemUgY29u
dHJvbFNpemU7CiAgICAgc3dpdGNoIChkYXRhLm1lbnVTaXplKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9w
dXBNZW51U2l6ZU5vcm1hbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1JlZ3VsYXJDb250cm9s
U2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6
ZVNtYWxsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICAg
ICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOgotICAgICAg
ICBjb250cm9sU2l6ZSA9IE5TTWluaUNvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9
IE5TQ29udHJvbFNpemVNaW5pOwogICAgICAgICBicmVhazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICAgICB9CiAKICAgICBSZWY8V2ViUG9wdXBNZW51UHJveHlNYWM+IHByb3RlY3Qo
KnRoaXMpOwpAQCAtMTgzLDEzICsxNzUsMTEgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6
c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAg
ICBpZiAoIW1fY2xpZW50LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpKQogICAg
ICAgICByZXR1cm47CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgTlNFdmVudCogaW5pdGlhdGluZ05TRXZlbnQgPSBtX2NsaWVudC0+Y3VycmVudGx5UHJvY2Vz
c2VkTW91c2VEb3duRXZlbnQoKS0+bmF0aXZlRXZlbnQoKTsKLSAgICBpZiAoW2luaXRpYXRpbmdO
U0V2ZW50IHR5cGVdICE9IE5TTGVmdE1vdXNlRG93bikKKyAgICBpZiAoW2luaXRpYXRpbmdOU0V2
ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bikKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
TGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ05TRXZlbnQgbG9jYXRpb25J
bldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6W2luaXRpYXRpbmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nTlNFdmVudCB0
aW1lc3RhbXBdCkBAIC0xOTgsMTMgKzE4OCwxNCBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFj
OjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjpbaW5p
dGlhdGluZ05TRXZlbnQgZXZlbnROdW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGlja0NvdW50Oltpbml0aWF0aW5nTlNFdmVudCBjbGlja0NvdW50XQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTpbaW5p
dGlhdGluZ05TRXZlbnQgcHJlc3N1cmVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKKyAgICBmYWtl
RXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVk
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3
IHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3IHdpbmRvd10gY29u
dmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nTlNFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ05TRXZlbnQg
dGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpb
aW5pdGlhdGluZ05TRXZlbnQgd2luZG93TnVtYmVyXQpAQCAtMjEyLDcgKzIwMyw2IEBAIHZvaWQg
V2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwg
VGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrQ291bnQ6MAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTowXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0
YXJ0OllFU107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQppbmRleCA1ZWRlNTZlZWU0MGFj
ZmRiOTkwMTE5ZGU3YWNlOTE4ZTY3OGJjNjY2Li4xMjUxOGRmMzM0Y2YzZmRkNjU4ZGY4OTE5YzMz
NjFiMDg0MmUyZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCkBAIC04MCw2ICs4MCw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5oPgogI2ltcG9ydCA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTI3OCwzMyArMTI3OSwyOCBAQCB2b2lkIFBERlBsdWdp
bjo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0KHVpbnQ2NF90LCBjb25zdCBXVEY6OlN0cmluZyYpCiAg
ICAgCiBzdGF0aWMgTlNVSW50ZWdlciBtb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KGNvbnN0IFdl
YkV2ZW50JiBldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICByZXR1cm4gKGV2ZW50LnNoaWZ0S2V5KCkgPyBOU1NoaWZ0S2V5TWFzayA6IDApCi0gICAgICAg
IHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/IE5TQ29udHJvbEtleU1hc2sgOiAwKQotICAgICAgICB8
IChldmVudC5hbHRLZXkoKSA/IE5TQWx0ZXJuYXRlS2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2
ZW50Lm1ldGFLZXkoKSA/IE5TQ29tbWFuZEtleU1hc2sgOiAwKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICByZXR1cm4gKGV2ZW50LnNoaWZ0S2V5KCkgPyBOU0V2ZW50TW9kaWZp
ZXJGbGFnU2hpZnQgOiAwKQorICAgICAgICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29udHJvbCA6IDApCisgICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNF
dmVudE1vZGlmaWVyRmxhZ09wdGlvbiA6IDApCisgICAgICAgIHwgKGV2ZW50Lm1ldGFLZXkoKSA/
IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kIDogMCk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBn
ZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlw
ZSYgZXZlbnRUeXBlKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IHN3aXRjaCAoZXZlbnQudHlwZSgpKSB7CiAgICAgY2FzZSBXZWJFdmVudDo6S2V5RG93bjoKLSAg
ICAgICAgZXZlbnRUeXBlID0gTlNLZXlEb3duOworICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50
VHlwZUtleURvd247CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgV2ViRXZlbnQ6Oktl
eVVwOgotICAgICAgICBldmVudFR5cGUgPSBOU0tleVVwOworICAgICAgICBldmVudFR5cGUgPSBO
U0V2ZW50VHlwZUtleVVwOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIFdlYkV2ZW50
OjpNb3VzZURvd246CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VF
dmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6Okxl
ZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZURvd247CisgICAg
ICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoK
LSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZURvd247CisgICAgICAgICAgICBl
dmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0x
MzEyLDEwICsxMzA4LDEwIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChj
b25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2FzZSBXZWJF
dmVudDo6TW91c2VVcDoKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3Vz
ZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6
TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlVXA7CisgICAg
ICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0g
ICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50
VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzIzLDEz
ICsxMzE5LDEzIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBX
ZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2FzZSBXZWJFdmVudDo6
TW91c2VNb3ZlOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZl
bnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0
QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEcmFnZ2VkOworICAg
ICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0
b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEcmFnZ2VkOworICAgICAg
ICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOgot
ICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNNb3VzZU1vdmVkOworICAgICAgICAgICAgZXZlbnRU
eXBlID0gTlNFdmVudFR5cGVNb3VzZU1vdmVkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzM3LDcgKzEz
MzMsNiBAQCBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZl
bnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAgICAg
CiBOU0V2ZW50ICpQREZQbHVnaW46Om5zRXZlbnRGb3JXZWJNb3VzZUV2ZW50KGNvbnN0IFdlYk1v
dXNlRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KaW5kZXggNmM2
MGJkZGU5NWZkZDMxN2Y2YjcxNGUxZjQ0ZjZlZWIyZjMzZDMwYi4uNjAzMWM1OTBkYzIzMWVjY2Zl
ZWEyMGEwNDdmODU2OTZjYTVkOGEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1t
CkBAIC00NCw2ICs0NCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxUZXh0QXJlYUVsZW1lbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTUzLDIxICs1NCwxOCBAQCB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgY29uc3QgU3RyaW5nIGNzc0FsaWdubWVu
dFZhbHVlRm9yTlNUZXh0QWxpZ25tZW50KE5TVGV4dEFsaWdubWVudCBhbGlnbm1lbnQpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChhbGlnbm1lbnQp
IHsKLSAgICBjYXNlIE5TTGVmdFRleHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1l
bnRMZWZ0OgogICAgICAgICByZXR1cm4gImxlZnQiOwotICAgIGNhc2UgTlNSaWdodFRleHRBbGln
bm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnRSaWdodDoKICAgICAgICAgcmV0dXJuICJy
aWdodCI7Ci0gICAgY2FzZSBOU0NlbnRlclRleHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRB
bGlnbm1lbnRDZW50ZXI6CiAgICAgICAgIHJldHVybiAiY2VudGVyIjsKLSAgICBjYXNlIE5TSnVz
dGlmaWVkVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudEp1c3RpZmllZDoK
ICAgICAgICAgcmV0dXJuICJqdXN0aWZ5IjsKLSAgICBjYXNlIE5TTmF0dXJhbFRleHRBbGlnbm1l
bnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnROYXR1cmFsOgogICAgICAgICByZXR1cm4gIi13
ZWJraXQtc3RhcnQiOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xp
ZW50TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRHJhZ0NsaWVudE1hYy5tbQppbmRleCBhMzZmM2IzMjNhYjkxNjUxNDc3YmQzYzdiZTI4YzZh
MjNkZTliMTdkLi42MjZlNDM2YzZhYzRmZTZiOWE3ZWI1M2MyZDM1NmJmNzk2ZmY0NDdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJE
cmFnQ2xpZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvU3RyaW5nVHJ1bmNhdG9yLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC02MywxMCArNjQsNyBAQCBzdGF0aWMgUGFz
c1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZlcnRJbWFnZVRvQml0bWFwKE5TSW1hZ2UgKmlt
YWdlLCBjb25zdCBJbgogICAgIFJldGFpblB0cjxOU0dyYXBoaWNzQ29udGV4dD4gc2F2ZWRDb250
ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKIAogICAgIFtOU0dyYXBo
aWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3ND
b250ZXh0V2l0aEdyYXBoaWNzUG9ydDpncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
IGZsaXBwZWQ6WUVTXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
W2ltYWdlIGRyYXdJblJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBiaXRtYXAtPnNpemUoKS53aWR0aCgp
LCBiaXRtYXAtPnNpemUoKS5oZWlnaHQoKSkgZnJvbVJlY3Q6TlNaZXJvUmVjdCBvcGVyYXRpb246
TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEgcmVzcGVjdEZsaXBwZWQ6WUVTIGhpbnRz
Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlIGRyYXdJblJl
Y3Q6TlNNYWtlUmVjdCgwLCAwLCBiaXRtYXAtPnNpemUoKS53aWR0aCgpLCBiaXRtYXAtPnNpemUo
KS5oZWlnaHQoKSkgZnJvbVJlY3Q6TlNaZXJvUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09w
ZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MSByZXNwZWN0RmxpcHBlZDpZRVMgaGludHM6bmls
XTsKIAogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpzYXZlZENvbnRl
eHQuZ2V0KCldOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294117</attachid>
            <date>2016-11-07 19:01:37 -0800</date>
            <delta_ts>2016-11-07 19:06:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107185729.patch</filename>
            <type>text/plain</type>
            <size>159005</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KaW5kZXggYTZkNzgz
MjhlOWZlNjI3ZWYxNGFmYzljMGJkMGY2NjllYjI1NGQwYy4uNzI4ZDM0NGE5NDUwMzRiOWM3YTIw
ODVmNDU2M2RjMWJiNjk2NGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29y
TWFjLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgiCiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL1N0
ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgV2ViQ29yZUN1cnNvckJ1bmRsZSA6IE5TT2JqZWN0IHsg
fQogQGVuZApAQCAtNjQsMTAgKzY1LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0N1cnNvcj4gY3Jl
YXRlQ3VzdG9tQ3Vyc29yKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGhvdFMKICAgICAg
ICAgTlNSZWN0IGZyb21SZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBpbWFnZS0+d2lkdGgoKSwgaW1h
Z2UtPmhlaWdodCgpKTsKIAogICAgICAgICBbZXhwYW5kZWRJbWFnZSBsb2NrRm9jdXNdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbnNJbWFnZSBkcmF3SW5S
ZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VP
dmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
bnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07CiAgICAgICAgIFtleHBh
bmRlZEltYWdlIHVubG9ja0ZvY3VzXTsKIAogICAgICAgICByZXR1cm4gYWRvcHROUyhbW05TQ3Vy
c29yIGFsbG9jXSBpbml0V2l0aEltYWdlOmV4cGFuZGVkSW1hZ2UuZ2V0KCkgaG90U3BvdDpob3RT
cG90XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRl
eCA2ODI0NmJlZmE1MjNlZGZmM2I2MDVjNjAxMTg3MTlkNDcyOThkMDliLi4wZmY0MjAyMDBjYzhi
ZDM0ODdlNDU2Zjc3OTBlZGVlOTVlOGY1NDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgIlN0cmluZ1Ry
dW5jYXRvci5oIgogI2ltcG9ydCAiVGV4dFJ1bi5oIgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03NSwxMCArNzYsNyBAQCBSZXRhaW5QdHI8
TlNJbWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0cjxOU0ltYWdlPiBp
bWFnZSwgZmxvYXQgZAogICAgIFJldGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2ZWRJbWFnZSA9IGFk
b3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W2ltYWdlLmdldCgpIHNpemVdXSk7
CiAgICAgCiAgICAgW2Rpc3NvbHZlZEltYWdlLmdldCgpIGxvY2tGb2N1c107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5T
WmVyb1BvaW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBb
aW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGVDb3B5IGZyYWN0aW9uOmRl
bHRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbaW1hZ2UuZ2V0KCkgZHJh
d0F0UG9pbnQ6TlNaZXJvUG9pbnQgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbaW1hZ2Ugc2l6
ZV0ud2lkdGgsIFtpbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3Bl
cmF0aW9uQ29weSBmcmFjdGlvbjpkZWx0YV07CiAgICAgW2Rpc3NvbHZlZEltYWdlLmdldCgpIHVu
bG9ja0ZvY3VzXTsKIAogICAgIHJldHVybiBkaXNzb2x2ZWRJbWFnZTsKQEAgLTExOSwxMCArMTE3
LDggQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSog
aW1hZ2UsIEltYWdlT3JpZW50YXRpb25EZXNjcmkKICAgICAgICAgICAgIFtjb2NvYVRyYW5zZm9y
bS5nZXQoKSBzZXRUcmFuc2Zvcm1TdHJ1Y3Q6KihOU0FmZmluZVRyYW5zZm9ybVN0cnVjdCopJnRy
YW5zZm9ybV07CiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgY29uY2F0XTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW2ltYWdlLT5z
bmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3Qo
MCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3NpdGVT
b3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6ZGVzdFJlY3Qg
ZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIG9w
ZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBdOwor
CiAgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICAgICAgICAgIHJldHVybiByb3RhdGVkRHJhZ0ltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9FdmVudExvb3BNYWMubW0KaW5kZXggYWYwYTM5OTJiNjZlOWQ2ZmZjMDE3NzEyNDg1
NzYyNmEwMDVhNWU5MC4uYjljYzU0NWE5ODQ5MzRkNTQ2MGRkYmRmNWJkNGVjM2VhNzE1OTIyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tCkBAIC0yNSwx
NiArMjUsMTQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5o
IgorI2luY2x1ZGUgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRXZlbnRMb29wOjpjeWNsZSgpCiB7CiAgICAg
W05TQXBwIHNldFdpbmRvd3NOZWVkVXBkYXRlOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgW05TQXBwIHNlbmRFdmVudDpbTlNBcHAgbmV4dEV2ZW50TWF0Y2hp
bmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVy
dmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVT
XV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW05TQXBwIHNlbmRFdmVudDpb
TlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrQW55IHVudGlsRGF0ZTpbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1
bkxvb3BNb2RlIGRlcXVldWU6WUVTXV07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggYTVkZjM0
NzRjMzExYzZhNzU2MWQ3ZjRkNDQ1NTMxNGFhMDRkMDA3MC4uMWM0ZTNjMTk4MDMxY2ZmYTZmYTli
NjY1MjcxYWJmYTQ3MzJkNzYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW0KQEAgLTU1LDYgKzU1LDcgQEAKICNpbXBvcnQgIm1hcmt1cC5oIgogI2lt
cG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW1wb3J0IDx3dGYvdW5pY29kZS9DaGFyYWN0
ZXJOYW1lcy5oPgogCkBAIC02NTMsMTEgKzY1NCw4IEBAIHZvaWQgUGFzdGVib2FyZDo6c2V0RHJh
Z0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGxvY2F0aW9uKQogICAg
IC8vIEhhY2s6IFdlIG11c3QgcG9zdCBhbiBldmVudCB0byB3YWtlIHVwIHRoZSBOU0RyYWdNYW5h
Z2VyLCB3aGljaCBpcyBzaXR0aW5nIGluIGEgbmV4dEV2ZW50IGNhbGwKICAgICAvLyB1cCB0aGUg
c3RhY2sgZnJvbSB1cyBiZWNhdXNlIHRoZSBDb3JlRm91bmRhdGlvbiBkcmFnIG1hbmFnZXIgZG9l
cyBub3QgdXNlIHRoZSBydW4gbG9vcCBieSBpdHNlbGYuCiAgICAgLy8gVGhpcyBpcyB0aGUgbW9z
dCBpbm5vY3VvdXMgZXZlbnQgdG8gdXNlLCBwZXIgS3Jpc3RlbiBGb3JzdGVyLgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpOU1plcm9Qb2ludAorICAg
IE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TW91c2VNb3ZlZCBsb2NhdGlvbjpOU1plcm9Qb2ludAogICAgICAgICBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
W05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OllFU107CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bQppbmRleCBkMzRkNmVhZTk0OGY3YWZjYmFiMzMwMzE0ZmRjYmE3OGU5ZTQwMGI4Li4wZDJlMzE4
ZWNkZmIxMzA0MjM4NzdhNzMyZDgyZjg2OTE5NzY5N2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCkBAIC01Miwy
NyArNTIsMjQgQEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpl
dmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewogI2lmIGRlZmluZWQoX19MUDY0
X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEwMDMKLSAgICAgICAg
Y2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToK
ICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNl
IE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAg
ICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAg
ICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURy
YWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TU2Nyb2xsV2hlZWw6Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gZ2xvYmFsUG9pbnQoW2V2
ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICByZXR1cm4geyAwLCAwIH07CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVy
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsOgorICAgICAgICByZXR1
cm4gZ2xvYmFsUG9pbnQoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHsgMCwgMCB9OwogICAgIH0KIH0KIApAQCAt
ODAsMzMgKzc3LDMwIEBAIHN0YXRpYyBJbnRQb2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2
ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsK
ICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQg
Pj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAgICBjYXNlIE5T
RXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2Fz
ZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAg
Y2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Nj
cm9sbFdoZWVsOiB7Ci0gICAgICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBpdHMgb3Jp
Z2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dWaWV3IGlz
IGZsaXBwZWQuCi0gICAgICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0
ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCi0g
ICAgICAgICAgICBOU1BvaW50IGxvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOwot
ICAgICAgICAgICAgaWYgKHdpbmRvd1ZpZXcpCi0gICAgICAgICAgICAgICAgbG9jYXRpb24gPSBb
d2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9jYXRpb24gZnJvbVZpZXc6bmlsXTsKLSAgICAgICAg
ICAgIHJldHVybiBJbnRQb2ludChsb2NhdGlvbik7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBJbnRQ
b2ludCgpOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVTY3JvbGxXaGVlbDogeworICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBp
dHMgb3JpZ2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dW
aWV3IGlzIGZsaXBwZWQuCisgICAgICAgIC8vIEluIHRob3NlIGNhc2VzLCB0aGUgWSBjb29yZGlu
YXRlIGdldHMgZmxpcHBlZCBieSBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdy4K
KyAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKKyAg
ICAgICAgaWYgKHdpbmRvd1ZpZXcpCisgICAgICAgICAgICBsb2NhdGlvbiA9IFt3aW5kb3dWaWV3
IGNvbnZlcnRQb2ludDpsb2NhdGlvbiBmcm9tVmlldzpuaWxdOworICAgICAgICByZXR1cm4gSW50
UG9pbnQobG9jYXRpb24pOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gSW50
UG9pbnQoKTsKICAgICB9CiB9CiAKQEAgLTExNCw3MiArMTA4LDYzIEBAIHN0YXRpYyBNb3VzZUJ1
dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1
cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgcmV0dXJuIExlZnRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFJpZ2h0QnV0dG9uOwotICAgICAg
ICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBNaWRk
bGVCdXR0b247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICByZXR1cm4gTm9CdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gTGVmdEJ1dHRvbjsKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJp
Z2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAg
ICAgIHJldHVybiBSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURv
d246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBNaWRkbGVCdXR0b247CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIE5vQnV0dG9uOwogICAgIH0KIH0KIAogc3RhdGljIFBs
YXRmb3JtRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVGb3JFdmVudChOU0V2ZW50KiBldmVudCkK
IHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2Fz
ZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBj
YXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAg
ICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZDsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3du
OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUmVsZWFzZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgICAgICByZXR1cm4gUGxhdGZvcm1F
dmVudDo6TW91c2VQcmVzc2VkOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlVXA6CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOwog
ICAgIH0KIH0KIAogc3RhdGljIGludCBjbGlja0NvdW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQp
CiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRHJhZ2dlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAg
IHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURy
YWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dl
ZDoKKyAgICAgICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiB9CiAKQEAgLTQ5NywyOCArNDgyLDI4IEBAIFN0cmluZyBr
ZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkgewogICAgICAgICBzd2l0Y2ggKFtl
dmVudCBrZXlDb2RlXSkgewotICAgICAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAot
ICAgICAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFN0cmluZygiTWV0YSIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1
NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDYXBzTG9jayIp
OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAot
ICAgICAgICAgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgICAgICByZXR1
cm4gU3RyaW5nKCJTaGlmdCIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1
ODogLy8gTGVmdCBBbHQKLSAgICAgICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAg
ICAgICAgICAgIHJldHVybiBTdHJpbmcoIkFsdCIpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgICAgICBjYXNlIDYyOiAvLyBSaWdo
dCBDdHJsCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ29udHJvbCIpOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAg
ICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAorICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0
IENvbW1hbmQKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEiKTsKKworICAgICAgICBj
YXNlIDU3OiAvLyBDYXBzbG9jaworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2si
KTsKKworICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgICAgIGNhc2UgNjA6IC8v
IFJpZ2h0IFNoaWZ0CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJTaGlmdCIpOworCisgICAg
ICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAor
ICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisKKyAgICAgICAgY2FzZSA1OTogLy8g
TGVmdCBDdHJsCisgICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKKyAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
ICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTUzNCw0NCArNTE5LDM4IEBAIHN0YXRpYyBib29s
IGlzS2V5cGFkRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlz
IGlzIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIGEga2V5Q29kZS4KICAgICBzd2l0Y2ggKFtl
dmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBjYXNlIE5TS2V5RG93bjoKLSAgICAgICAgY2FzZSBOU0tleVVwOgotICAgICAgICBjYXNlIE5T
RmxhZ3NDaGFuZ2VkOgotICAgICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUtleURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQ6CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNOdW1lcmlj
UGFkS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAg
Y2FzZSA3MTogLy8gQ2xlYXIKLSAgICAgICAgY2FzZSA4MTogLy8gPQotICAgICAgICBjYXNlIDc1
OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6IC8vICoKLSAgICAgICAgY2FzZSA3ODogLy8gLQotICAg
ICAgICBjYXNlIDY5OiAvLyArCi0gICAgICAgIGNhc2UgNzY6IC8vIEVudGVyCi0gICAgICAgIGNh
c2UgNjU6IC8vIC4KLSAgICAgICAgY2FzZSA4MjogLy8gMAotICAgICAgICBjYXNlIDgzOiAvLyAx
Ci0gICAgICAgIGNhc2UgODQ6IC8vIDIKLSAgICAgICAgY2FzZSA4NTogLy8gMwotICAgICAgICBj
YXNlIDg2OiAvLyA0Ci0gICAgICAgIGNhc2UgODc6IC8vIDUKLSAgICAgICAgY2FzZSA4ODogLy8g
NgotICAgICAgICBjYXNlIDg5OiAvLyA3Ci0gICAgICAgIGNhc2UgOTE6IC8vIDgKLSAgICAgICAg
Y2FzZSA5MjogLy8gOQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIH0KKyAgICBjYXNl
IDcxOiAvLyBDbGVhcgorICAgIGNhc2UgODE6IC8vID0KKyAgICBjYXNlIDc1OiAvLyAvCisgICAg
Y2FzZSA2NzogLy8gKgorICAgIGNhc2UgNzg6IC8vIC0KKyAgICBjYXNlIDY5OiAvLyArCisgICAg
Y2FzZSA3NjogLy8gRW50ZXIKKyAgICBjYXNlIDY1OiAvLyAuCisgICAgY2FzZSA4MjogLy8gMAor
ICAgIGNhc2UgODM6IC8vIDEKKyAgICBjYXNlIDg0OiAvLyAyCisgICAgY2FzZSA4NTogLy8gMwor
ICAgIGNhc2UgODY6IC8vIDQKKyAgICBjYXNlIDg3OiAvLyA1CisgICAgY2FzZSA4ODogLy8gNgor
ICAgIGNhc2UgODk6IC8vIDcKKyAgICBjYXNlIDkxOiAvLyA4CisgICAgY2FzZSA5MjogLy8gOQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiB9
CkBAIC01ODUsMTAgKzU2NCw3IEBAIGludCB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KE5TRXZl
bnQqIGV2ZW50KQogICAgIC8vIDIuIEtleXMgZm9yIHdoaWNoIHRoZXJlIGlzIG5vIGtub3duIE1h
YyB2aXJ0dWFsIGtleSBjb2RlcywgbGlrZSBQcmludFNjcmVlbi4KICAgICAvLyAzLiBDZXJ0YWlu
IHB1bmN0dWF0aW9uIGtleXMuIE9uIFdpbmRvd3MsIHRoZXNlIGFyZSBhbHNvIHJlbWFwcGVkIGRl
cGVuZGluZyBvbiBjdXJyZW50IGtleWJvYXJkIGxheW91dCwKICAgICAvLyAgICBidXQgc2VlIGNv
bW1lbnQgaW4gd2luZG93c0tleUNvZGVGb3JDaGFyQ29kZSgpLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVu
dCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKCFpc0tleXBhZEV2ZW50KGV2ZW50KSAm
JiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNFdmVudFR5cGVLZXlVcCkpIHsKICAgICAgICAgLy8gQ21kIHN3aXRjaGVzIFJvbWFuIGxldHRl
cnMgZm9yIER2b3Jhay1RV0VSVFkgbGF5b3V0LCBzbyB0cnkgbW9kaWZpZWQgY2hhcmFjdGVycyBm
aXJzdC4KICAgICAgICAgTlNTdHJpbmcqIHMgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAgICAgICAg
IGNvZGUgPSBbcyBsZW5ndGhdID4gMCA/IHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoW3MgY2hh
cmFjdGVyQXRJbmRleDowXSkgOiAwOwpAQCAtNjQ2LDM1ICs2MjIsMzIgQEAgZG91YmxlIGV2ZW50
VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2ZW50KQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
aXNLZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpCi0gICAg
ICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcDsKKyAgICBpZiAoW2V2ZW50IHR5cGVd
ICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgLy8gRklYTUU6IFRoaXMgbG9naWMgZmFpbHMgaWYg
dGhlIHVzZXIgcHJlc3NlcyBib3RoIFNoaWZ0IGtleXMgYXQgb25jZSwgZm9yIGV4YW1wbGU6CiAg
ICAgLy8gd2UgdHJlYXQgcmVsZWFzaW5nIG9uZSBvZiB0aGVtIGFzIGtleURvd24uCiAgICAgc3dp
dGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFu
ZAotICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAgICAgICAgICAgIHJldHVybiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykgPT0gMDsKLSAgICAgICAg
ICAgIAotICAgICAgICBjYXNlIDU3OiAvLyBDYXBzbG9jawotICAgICAgICAgICAgcmV0dXJuIChb
ZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FscGhhU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgY2FzZSA2MDog
Ly8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1ODog
Ly8gTGVmdCBBbHQKLSAgICAgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0gICAgICAgICAgICBy
ZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgPT0gMDsK
LSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKLSAgICAgICAgY2Fz
ZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgNjM6IC8vIEZ1bmN0aW9uCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRnVuY3Rpb25LZXlNYXNrKSA9PSAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAgICBjYXNlIDU1OiAvLyBMZWZ0
IENvbW1hbmQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQpOworCisgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Nh
cHNMb2NrKTsKKworICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKKyAgICBjYXNlIDYwOiAvLyBS
aWdodCBTaGlmdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnU2hpZnQpOworCisgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKKyAgICBj
YXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbik7CisKKyAgICBjYXNlIDU5OiAvLyBMZWZ0
IEN0cmwKKyAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKTsKKworICAgIGNh
c2UgNjM6IC8vIEZ1bmN0aW9uCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbik7CiAgICAgfQogICAgIHJldHVybiBmYWxz
ZTsKIH0KQEAgLTgxOCwxMCArNzkxLDcgQEAgcHVibGljOgogICAgICAgICBtX2tleSA9IGtleUZv
cktleUV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9jb2RlID0gY29kZUZvcktleUV2ZW50KGV2ZW50
KTsKICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktl
eUV2ZW50KGV2ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkICYmIFtldmVu
dCBpc0FSZXBlYXRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBtX2F1
dG9SZXBlYXQgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgJiYgW2V2
ZW50IGlzQVJlcGVhdF07CiAgICAgICAgIG1faXNLZXlwYWQgPSBpc0tleXBhZEV2ZW50KGV2ZW50
KTsKICAgICAgICAgbV9pc1N5c3RlbUtleSA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlz
IGZhbHNlIG9uIHRoZSBNYWMuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCA5MWNiZWRkMGNkYTA3MDY1YjNiZjNmMTcwMTU4ZjFk
NjI3NzMxODNmLi42NGQ4NTRhOGU4NGM4NjJhOTBhYmQ0NTc1Y2U2M2ViZWU0ZDJlZTMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBA
IC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4K
KyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAog
Ly8gRklYTUU6IFRoZXJlIGFyZSByZXBhaW50aW5nIHByb2JsZW1zIGR1ZSB0byBBcXVhIHNjcm9s
bCBiYXIgYnV0dG9ucycgdmlzdWFsIG92ZXJmbG93LgogCkBAIC0xMzksMTggKzE0MCwxNSBAQCBz
dGF0aWMgU2Nyb2xsYmFyQnV0dG9uc1BsYWNlbWVudCBnQnV0dG9uUGxhY2VtZW50ID0gU2Nyb2xs
YmFyQnV0dG9uc0RvdWJsZUVuZDsKIAogc3RhdGljIE5TQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29u
dHJvbFNpemVUb05TQ29udHJvbFNpemUoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUp
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChjb250
cm9sU2l6ZSkgewogICAgIGNhc2UgUmVndWxhclNjcm9sbGJhcjoKLSAgICAgICAgcmV0dXJuIE5T
UmVndWxhckNvbnRyb2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7
CiAgICAgY2FzZSBTbWFsbFNjcm9sbGJhcjoKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1
bGFyOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpkaWRDcmVhdGVTY3JvbGxlckltcChT
Y3JvbGxiYXImIHNjcm9sbGJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9UaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQppbmRleCAwMjQ3MmM5YTY5MDhjNmZkYjAzODI4MWZhYWE4MzhkZmI1MTVlNGQ1Li5iMTAwNDFi
NWViMTcyZjQzNzJjNDAwNTViMTY5OTdjMTM5NGMyM2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tP
YmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0
IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogc3RhdGljIE5TUmVjdCBmb2N1c1JpbmdDbGlwUmVjdDsKIHN0
YXRpYyBCT09MIHRoZW1lV2luZG93SGFzS2V5QXBwZWFyYW5jZTsKQEAgLTY3LDExICs2OCw4IEBA
IC0gKE5TV2luZG93ICopd2luZG93CiB7CiAgICAgLy8gVXNpbmcgZGVmZXI6WUVTIHByZXZlbnRz
IHVzIGZyb20gd2FzdGluZyBhbnkgd2luZG93IHNlcnZlciByZXNvdXJjZXMgZm9yIHRoaXMgd2lu
ZG93LCBzaW5jZSB3ZSdyZSBub3QgYWN0dWFsbHkKICAgICAvLyBnb2luZyB0byBkcmF3IGludG8g
aXQuIFRoZSBvdGhlciBhcmd1bWVudHMgbWF0Y2ggd2hhdCB5b3UgZ2V0IHdoZW4gY2FsbGluZyAt
W05TV2luZG93IGluaXRdLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IHN0YXRpYyBXZWJDb3JlVGhlbWVXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZVRoZW1lV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMTAwLCAxMDAsIDEwMCwgMTAw
KQotICAgICAgICBzdHlsZU1hc2s6TlNUaXRsZWRXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CiAgICAgcmV0dXJuIHdpbmRvdzsKIH0KIApAQCAt
MTQ0LDE1ICsxNDIsMTIgQEAgVGhlbWUqIHBsYXRmb3JtVGhlbWUoKQogCiBzdGF0aWMgTlNDb250
cm9sU2l6ZSBjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgRm9udENhc2NhZGUmIGZvbnQpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50IGZvbnRTaXplID0gZm9u
dC5waXhlbFNpemUoKTsKICAgICBpZiAoZm9udFNpemUgPj0gMTYpCi0gICAgICAgIHJldHVybiBO
U1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFy
OwogICAgIGlmIChmb250U2l6ZSA+PSAxMSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJu
IE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbU5TQ29u
dHJvbFNpemUoTlNDb250cm9sU2l6ZSBuc0NvbnRyb2xTaXplLCBjb25zdCBMZW5ndGhTaXplJiB6
b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yLCBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+
JiBzaXplcykKQEAgLTE3NSwxNiArMTcwLDEzIEBAIHN0YXRpYyBMZW5ndGhTaXplIHNpemVGcm9t
Rm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkCiAK
IHN0YXRpYyBDb250cm9sU2l6ZSBjb250cm9sU2l6ZUZyb21QaXhlbFNpemUoY29uc3Qgc3RkOjph
cnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNpemUmIG1pblpvb21lZFNpemUsIGZs
b2F0IHpvb21GYWN0b3IpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05T
UmVndWxhckNvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUZhY3RvcikgJiYKLSAgICAgICAgbWlu
Wm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNv
bnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNSZWd1
bGFyQ29udHJvbFNpemU7Ci0gICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3Ip
ICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50Pihz
aXplc1tOU1NtYWxsQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUZhY3RvcikpCi0gICAgICAg
IHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXpl
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChtaW5ab29tZWRTaXplLndp
ZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0ud2lk
dGgoKSAqIHpvb21GYWN0b3IpCisgICAgICAgICYmIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0g
c3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6
b29tRmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOworICAgIGlm
IChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRy
b2xTaXplU21hbGxdLndpZHRoKCkgKiB6b29tRmFjdG9yKQorICAgICAgICAmJiBtaW5ab29tZWRT
aXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxs
XS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNt
YWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgc2V0
Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBz
aXplcywgY29uc3QgSW50U2l6ZSYgbWluWm9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikKQEAg
LTQ4MCwxMCArNDcyLDcgQEAgc3RhdGljIHZvaWQgc2V0VXBCdXR0b25DZWxsKE5TQnV0dG9uQ2Vs
bCAqY2VsbCwgQ29udHJvbFBhcnQgcGFydCwgY29uc3QgQ29udHJvbFMKIHsKICAgICAvLyBTZXQg
dGhlIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYgdGhlIHJlY3RhbmdsZSB3ZSdyZSBwYWludGluZyBp
bnRvLgogICAgIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzID0gYnV0dG9uU2l6
ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAocGFydCA9
PSBTcXVhcmVCdXR0b25QYXJ0IHx8IHpvb21lZFNpemUuaGVpZ2h0KCkgPiBidXR0b25TaXplcygp
W05TUmVndWxhckNvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAocGFydCA9PSBTcXVhcmVCdXR0b25QYXJ0IHx8
IHpvb21lZFNpemUuaGVpZ2h0KCkgPiBidXR0b25TaXplcygpW05TQ29udHJvbFNpemVSZWd1bGFy
XS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpIHsKICAgICAgICAgLy8gVXNlIHRoZSBzcXVhcmUgYnV0
dG9uCiAgICAgICAgIGlmIChbY2VsbCBiZXplbFN0eWxlXSAhPSBOU1NoYWRvd2xlc3NTcXVhcmVC
ZXplbFN0eWxlKQogICAgICAgICAgICAgW2NlbGwgc2V0QmV6ZWxTdHlsZTpOU1NoYWRvd2xlc3NT
cXVhcmVCZXplbFN0eWxlXTsKQEAgLTU3OSwxNSArNTY4LDEyIEBAIHN0YXRpYyBjb25zdCBzdGQ6
OmFycmF5PEludFNpemUsIDM+JiBzdGVwcGVyU2l6ZXMoKQogLy8gc2hvdWxkIGJlIGVxdWFsIHRv
IG9yIGxlc3MgdGhhbiB0aGUgY29ycmVzcG9uZGluZyB0ZXh0IGZpZWxkIGhlaWdodCwKIHN0YXRp
YyBOU0NvbnRyb2xTaXplIHN0ZXBwZXJDb250cm9sU2l6ZUZvckZvbnQoY29uc3QgRm9udENhc2Nh
ZGUmIGZvbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50
IGZvbnRTaXplID0gZm9udC5waXhlbFNpemUoKTsKICAgICBpZiAoZm9udFNpemUgPj0gMTgpCi0g
ICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29u
dHJvbFNpemVSZWd1bGFyOwogICAgIGlmIChmb250U2l6ZSA+PSAxMykKLSAgICAgICAgcmV0dXJu
IE5TU21hbGxDb250cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21h
bGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0aWMgdm9pZCBwYWlu
dFN0ZXBwZXIoQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmll
dyopCkBAIC02MDAsMTUgKzU4NiwxMiBAQCBzdGF0aWMgdm9pZCBwYWludFN0ZXBwZXIoQ29udHJv
bFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiAgICAgZHJh
d0luZm8uc3RhdGUgPSBjb252ZXJ0Q29udHJvbFN0YXRlc1RvVGhlbWVEcmF3U3RhdGUoa1RoZW1l
SW5jRGVjQnV0dG9uLCBzdGF0ZXMpOwogICAgIGRyYXdJbmZvLmFkb3JubWVudCA9IGtUaGVtZUFk
b3JubWVudERlZmF1bHQ7CiAgICAgQ29udHJvbFNpemUgY29udHJvbFNpemUgPSBjb250cm9sU2l6
ZUZyb21QaXhlbFNpemUoc3RlcHBlclNpemVzKCksIEludFNpemUoem9vbWVkUmVjdC5zaXplKCkp
LCB6b29tRmFjdG9yKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoY29udHJvbFNpemUgPT0gTlNTbWFsbENvbnRyb2xTaXplKQorICAgIGlmIChjb250cm9sU2l6
ZSA9PSBOU0NvbnRyb2xTaXplU21hbGwpCiAgICAgICAgIGRyYXdJbmZvLmtpbmQgPSBrVGhlbWVJ
bmNEZWNCdXR0b25TbWFsbDsKLSAgICBlbHNlIGlmIChjb250cm9sU2l6ZSA9PSBOU01pbmlDb250
cm9sU2l6ZSkKKyAgICBlbHNlIGlmIChjb250cm9sU2l6ZSA9PSBOU0NvbnRyb2xTaXplTWluaSkK
ICAgICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbk1pbmk7CiAgICAgZWxz
ZQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgSW50UmVjdCByZWN0KHpvb21lZFJlY3QpOwogICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKQEAgLTc0OSwx
MiArNzMyLDkgQEAgTGVuZ3RoU2l6ZSBUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKENvbnRy
b2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb24KICAgICAgICAgY2FzZSBCdXR0b25Q
YXJ0OgogICAgICAgICAgICAgcmV0dXJuIExlbmd0aFNpemUoTGVuZ3RoKDAsIEZpeGVkKSwgTGVu
Z3RoKHN0YXRpY19jYXN0PGludD4oMTUgKiB6b29tRmFjdG9yKSwgRml4ZWQpKTsKICAgICAgICAg
Y2FzZSBJbm5lclNwaW5CdXR0b25QYXJ0OnsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgICAgIEludFNpemUgYmFzZSA9IHN0ZXBwZXJTaXplcygpW05TTWluaUNv
bnRyb2xTaXplXTsKKyAgICAgICAgICAgIEludFNpemUgYmFzZSA9IHN0ZXBwZXJTaXplcygpW05T
Q29udHJvbFNpemVNaW5pXTsKICAgICAgICAgICAgIHJldHVybiBMZW5ndGhTaXplKExlbmd0aChz
dGF0aWNfY2FzdDxpbnQ+KGJhc2Uud2lkdGgoKSAqIHpvb21GYWN0b3IpLCBGaXhlZCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihiYXNlLmhl
aWdodCgpICogem9vbUZhY3RvciksIEZpeGVkKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBUaGVt
ZTo6bWluaW11bUNvbnRyb2xTaXplKHBhcnQsIGZvbnQsIHpvb21GYWN0b3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRv
d0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQppbmRleCBkM2I5ZWU5OGRmOTQyMGNjZDcxMTZi
MDQwMzU2MzgzY2ZjNzQ2ZjkwLi5iNDg2MDZjYjVhNzQ0ZDg3MGI4NjE5MzQzNjYyODk4YmE5ZmY0
ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQpAQCAtMzMsNiAr
MzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSFRNTFZpZGVvRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03MywxMCArNzQsNyBAQCBAaW1wbGVt
ZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93CiAtIChpZClpbml0V2l0aENvbnRl
bnRSZWN0OihOU1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihOU1VJbnRlZ2VyKWFTdHlsZSBi
YWNraW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlwZSBkZWZlcjooQk9PTClmbGFn
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGFTdHlsZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRS
ZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6YnVmZmVyaW5nVHlw
ZSBkZWZlcjpmbGFnXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBzZWxmID0g
W3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107CiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC0xMjIsMTUgKzEyMCwxMiBA
QCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2
YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgogICAgIC8vIEJsb2NrIGFsbCBjb21tYW5kIGtleSBldmVudHMgd2hpbGUgdGhlIGZ1bGxz
Y3JlZW4gd2luZG93IGlzIHVwLgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQor
ICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1
cm4gTk87CiAgICAgCi0gICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5k
S2V5TWFzaykpCisgICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQpKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCiAgICAgcmV0dXJuIFlFUzsKIH0KIApAQCAtMTQ1LDExICsxNDAsNyBAQCBAaW1w
bGVtZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlcgogCiAtIChp
ZClpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNXaW5k
b3cgKndpbmRvdyA9IFtbV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93
TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAs
IDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFz
a0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dpbmRvdyBzZXRE
ZWxlZ2F0ZTpzZWxmXTsKICAgICBbd2luZG93IHJlbGVhc2VdOwpAQCAtMTg4LDIwICsxNzksMTcg
QEAgLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopZXZlbnQKICAgICAgICAgICAgIGNhc2UgJyAn
OgogICAgICAgICAgICAgICAgIFtzZWxmIHRvZ2dsZVBsYXlpbmc6bmlsXTsKICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAg
ICAgICBjYXNlIE5TVXBBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAg
aWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAg
ICAgICAgICAgICAgICAgICAgIFtzZWxmIHNldFZvbHVtZTpbc2VsZiBtYXhWb2x1bWVdXTsKICAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIGluY3JlbWVudFZv
bHVtZV07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25B
cnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAgaWYgKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIHNldFZvbHVtZTowXTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIFtzZWxmIGRlY3JlbWVudFZvbHVtZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgICAgICBicmVhazsKQEAgLTM3OCwxNyArMzY2LDExIEBAIC0gKHZvaWQpd2luZG93
RGlkTG9hZAogICAgIFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Ol90aW1lbGluZV07CiAKICAgICBf
ZWxhcHNlZFRpbWVUZXh0ID0gY3JlYXRlVGltZVRleHRGaWVsZChOU01ha2VSZWN0KHRpbWVUZXh0
RmllbGRIb3Jpem9udGFsTWFyZ2luLCB0aW1lbGluZUJvdHRvbU1hcmdpbiwgdGltZVRleHRGaWVs
ZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgW19lbGFwc2VkVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TTGVmdFRleHRB
bGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtfZWxhcHNlZFRp
bWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0XTsKICAgICBbY29udGVudFZp
ZXcgYWRkU3VidmlldzpfZWxhcHNlZFRpbWVUZXh0XTsKIAogICAgIF9yZW1haW5pbmdUaW1lVGV4
dCA9IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh3aW5kb3dXaWR0aCAtIHRpbWVUZXh0
RmllbGRIb3Jpem9udGFsTWFyZ2luIC0gdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lbGluZUJvdHRv
bU1hcmdpbiwgdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW19yZW1haW5pbmdUaW1lVGV4dCBz
ZXRBbGlnbm1lbnQ6TlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdu
bWVudFJpZ2h0XTsKICAgICBbY29udGVudFZpZXcgYWRkU3VidmlldzpfcmVtYWluaW5nVGltZVRl
eHRdOwogCiAgICAgW3dpbmRvdyByZWNhbGN1bGF0ZUtleVZpZXdMb29wXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tCmluZGV4IDQ1OThh
MDNlZDJmYTMyMTUwZTY0YWY5Y2JiNjQ1OTk0NjlmZGRmNzcuLjdkZTVlYjUzN2M3ZmEwMjM1MjJi
Y2VmNjgzMzIzYjI1ODRlY2M1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBv
cnQgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTM4LDEw
ICszOSw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHNsb3dNb3Rpb25GYWN0b3IgPSAxMDsKIAog
c3RhdGljIE5TVGltZUludGVydmFsIFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0
aW9uKE5TVGltZUludGVydmFsIGR1cmF0aW9uKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxh
Z3NdICYgTlNTaGlmdEtleU1hc2spID8gZHVyYXRpb24gKiBzbG93TW90aW9uRmFjdG9yIDogZHVy
YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIChbW05TQXBw
IGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQp
ID8gZHVyYXRpb24gKiBzbG93TW90aW9uRmFjdG9yIDogZHVyYXRpb247CiB9CiAKIHN0YXRpYyBO
U1JlY3Qgc2NhbGVkUmVjdChOU1JlY3QgX2luaXRpYWxGcmFtZSwgTlNSZWN0IF9maW5hbEZyYW1l
LCBDR0Zsb2F0IGZhY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQppbmRleCAzZWRkYzAzZTRkOGU5ZjYzNTE3YzUyNzFmMjAxYjU2NzgyMmI5MDI4Li44NTc2
NDIzNTIzYTkwYzhhNTI1MTgwNTRhZDkyYjUxNDRmNDE5Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC04MSw2ICs4MSw3IEBACiAjaW1wb3J0IDxD
YXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgogI2ltcG9ydCA8bWF0aC5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
ICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKICNpbXBvcnQgIlJlbmRlck1ldGVyLmgiCkBAIC0z
NzksMjIgKzM4MCwxMyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjp1cGRhdGVDYWNoZWRTeXN0ZW1G
b250RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBGbwogICAgICAgICAgICAgZm9u
dE5hbWUgPSBBdG9taWNTdHJpbmcoIi1hcHBsZS1zdGF0dXMtYmFyIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
U1NWYWx1ZVdlYmtpdE1pbmlDb250cm9sOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250
IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNNaW5pQ29udHJvbFNpemVdXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3Rl
bUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJv
bFNpemVNaW5pXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1ZVdl
YmtpdFNtYWxsQ29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1G
b250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9m
U2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENv
bnRyb2w6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBm
b250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JD
b250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNG
b250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVJlZ3VsYXJdXTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZm9udCA9
IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplXV07CkBAIC03
NzcsMzAgKzc2OSwyNCBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU3VwcG9ydHNUaW50
cyhjb25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1l
TWFjOjpjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAog
ewogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1
cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVn
dWxhcjsKICAgICBpZiAoZm9udFNpemUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29u
dHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1h
Yzo6Y29udHJvbFNpemVGb3JDZWxsKE5TQ2VsbCosIGNvbnN0IEludFNpemUqIHNpemVzLCBjb25z
dCBJbnRTaXplJiBtaW5TaXplLCBmbG9hdCB6b29tTGV2ZWwpIGNvbnN0CiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxl
dmVsKQotICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6
ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUxldmVsKSkKLSAgICAgICAg
cmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOworICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0g
c3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0ud2lkdGgoKSAqIHpv
b21MZXZlbCkKKyAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+
KHNpemVzW05TQ29udHJvbFNpemVSZWd1bGFyXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIAotICAgIGlmIChtaW5TaXplLndpZHRo
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkg
KiB6b29tTGV2ZWwpCi0gICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8
aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUxldmVsKSkKLSAg
ICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgp
ID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0aCgpICog
em9vbUxldmVsKQorICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGlu
dD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAKLSAgICByZXR1cm4gTlNNaW5pQ29udHJv
bFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIE5TQ29udHJv
bFNpemVNaW5pOwogfQogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjpzZXRDb250cm9sU2l6ZShOU0Nl
bGwqIGNlbGwsIGNvbnN0IEludFNpemUqIHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5TaXplLCBm
bG9hdCB6b29tTGV2ZWwpCkBAIC04NTcsMTUgKzg0MywxMiBAQCB2b2lkIFJlbmRlclRoZW1lTWFj
OjpzZXRGb250RnJvbUNvbnRyb2xTaXplKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYgc3R5
bGUsCiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yU3lzdGVt
Rm9udChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50IGZvbnRTaXplID0gc3R5bGUuZm9udFNpemUoKTsK
LSAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXpl
Ok5TUmVndWxhckNvbnRyb2xTaXplXSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xT
aXplOwotICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJv
bFNpemU6TlNTbWFsbENvbnRyb2xTaXplXSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JD
b250cm9sU2l6ZTpOU0NvbnRyb2xTaXplUmVndWxhcl0pCisgICAgICAgIHJldHVybiBOU0NvbnRy
b2xTaXplUmVndWxhcjsKKyAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF0pCisgICAgICAgIHJldHVybiBOU0Nv
bnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBib29s
IFJlbmRlclRoZW1lTWFjOjpwYWludFRleHRGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmIG8sIGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QmIHIpCkBAIC0xMTQ3LDEw
ICsxMTMwLDcgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRQcm9ncmVzc0Jhcihjb25zdCBS
ZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGEKICAgICBjb25zdCBhdXRvJiByZW5k
ZXJQcm9ncmVzcyA9IGRvd25jYXN0PFJlbmRlclByb2dyZXNzPihyZW5kZXJPYmplY3QpOwogICAg
IEhJVGhlbWVUcmFja0RyYXdJbmZvIHRyYWNrSW5mbzsKICAgICB0cmFja0luZm8udmVyc2lvbiA9
IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xT
aXplID09IE5TUmVndWxhckNvbnRyb2xTaXplKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU0NvbnRyb2xTaXplUmVndWxhcikKICAgICAgICAg
dHJhY2tJbmZvLmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZUxh
cmdlSW5kZXRlcm1pbmF0ZUJhciA6IGtUaGVtZUxhcmdlUHJvZ3Jlc3NCYXI7CiAgICAgZWxzZQog
ICAgICAgICB0cmFja0luZm8ua2luZCA9IHJlbmRlclByb2dyZXNzLnBvc2l0aW9uKCkgPCAwID8g
a1RoZW1lTWVkaXVtSW5kZXRlcm1pbmF0ZUJhciA6IGtUaGVtZU1lZGl1bVByb2dyZXNzQmFyOwpA
QCAtMTQzOCwxNSArMTQxOCwxMiBAQCBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZSBSZW5k
ZXJUaGVtZU1hYzo6cG9wdXBNZW51U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYgcwogICAgIE5TUG9w
VXBCdXR0b25DZWxsKiBwb3B1cEJ1dHRvbiA9IHRoaXMtPnBvcHVwQnV0dG9uKCk7CiAgICAgTlND
b250cm9sU2l6ZSBzaXplID0gY29udHJvbFNpemVGb3JDZWxsKHBvcHVwQnV0dG9uLCBwb3B1cEJ1
dHRvblNpemVzKCksIHJlY3Quc2l6ZSgpLCBzdHlsZS5lZmZlY3RpdmVab29tKCkpOwogICAgIHN3
aXRjaCAoc2l6ZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNh
c2UgTlNSZWd1bGFyQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplUmVndWxhcjoK
ICAgICAgICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOwotICAg
IGNhc2UgTlNTbWFsbENvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVNtYWxsOgog
ICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDsKLSAgICBj
YXNlIE5TTWluaUNvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZU1pbmk6CiAgICAg
ICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIFBvcHVwTWVu
dVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOwogICAgIH0KQEAgLTIwNTUsMTIgKzIwMzIsOSBA
QCBOU1NsaWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwoKSBj
b25zdAogewogICAgIGlmICghbV9zbGlkZXJUaHVtYkhvcml6b250YWwpIHsKICAgICAgICAgbV9z
bGlkZXJUaHVtYkhvcml6b250YWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRl
clRodW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TTGluZWFyU2xpZGVyXTsKLSAg
ICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldENvbnRyb2xTaXplOk5TU21h
bGxDb250cm9sU2l6ZV07CisgICAgICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKSBz
ZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFttX3NsaWRlclRodW1i
SG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplU21hbGxdOwogICAg
ICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Rm9jdXNSaW5nVHlwZTpOU0Zv
Y3VzUmluZ1R5cGVFeHRlcmlvcl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
fQogCiAgICAgcmV0dXJuIG1fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpOwpAQCAtMjA3MCwx
MSArMjA0NCw4IEBAIE5TU2xpZGVyQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVy
dGljYWwoKSBjb25zdAogewogICAgIGlmICghbV9zbGlkZXJUaHVtYlZlcnRpY2FsKSB7CiAgICAg
ICAgIG1fc2xpZGVyVGh1bWJWZXJ0aWNhbCA9IGFkb3B0TlMoW1tOU1NsaWRlckNlbGwgYWxsb2Nd
IGluaXRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW21f
c2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TTGluZWFyU2xpZGVyXTsK
LSAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1Nt
YWxsQ29udHJvbFNpemVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
bV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldFNsaWRlclR5cGU6TlNTbGlkZXJUeXBlTGlu
ZWFyXTsKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRDb250cm9sU2l6
ZTpOU0NvbnRyb2xTaXplU21hbGxdOwogICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdl
dCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJpb3JdOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRl
eCBmMmEzNTk3M2E3MWUwNjgyNjBhOTFjOTY3ZDI5MDUwZDJlZGU3NjBkLi5hNjlmNmYxZmE1MGE5
YTRhZGQ4NjNmNDc5NWJjMWQ3MTJmMGJhMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
YXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzYsNiArNzYsNyBAQAogI2ltcG9ydCA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5o
PgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1w
b3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgpAQCAtMTczLDEzICsxNzQsMTQgQEAgLSAoaWQpaW5p
dFdpdGhDYXJib25XaW5kb3dSZWY6KFdpbmRvd1JlZilpbldpbmRvd1JlZiB0YWtpbmdPd25lcnNo
aXA6KEJPT0wpaW5XaW4KIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1h
c2suCiAgICAgc3R5bGVNYXNrID0gV0tDYXJib25XaW5kb3dNYXNrKCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93
Q2xvc2VCb3hBdHRyaWJ1dGUpIHN0eWxlTWFzayB8PSBOU0Nsb3NhYmxlV2luZG93TWFzazsKLSAg
ICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpIHN0eWxl
TWFzayB8PSBOU1Jlc2l6YWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYg
a1dpbmRvd0NhbkNvbGxhcHNlKSBzdHlsZU1hc2sgfD0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01h
c2s7Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0hhc1RpdGxlQmFyKSBzdHlsZU1h
c2sgfD0gTlNUaXRsZWRXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRlKQorICAg
ICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZTsKKyAgICBpZiAod2lu
ZG93QXR0cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpCisgICAgICAgIHN0eWxl
TWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVy
ZXMgJiBrV2luZG93Q2FuQ29sbGFwc2UpCisgICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0
eWxlTWFza01pbmlhdHVyaXphYmxlOworICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dI
YXNUaXRsZUJhcikKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVk
OwogCiAgICAgb3NTdGF0dXMgPSBHZXRXaW5kb3dNb2RhbGl0eShfd2luZG93UmVmLCAmd2luZG93
TW9kYWxpdHksIE5VTEwpOwogICAgIGlmIChvc1N0YXR1cyAhPSBub0VycikgewpAQCAtMzkzLDE4
ICszOTUsMTIgQEAgLSAodm9pZClzZW5kU3VwZXJFdmVudDooTlNFdmVudCAqKWluRXZlbnQgewog
ICAgIC8vIElnbm9yZSBzb21lIHVua25vd24gZXZlbnQgdGhhdCBnZXRzIHNlbnQgd2hlbiBOU1Rl
eHRWaWV3cyBpbiBwcmludGluZyBhY2Nlc3Nvcnkgdmlld3MgYXJlIGZvY3VzZWQuICBNLlAuIE5v
dGljZSAtIDEyLzcvMDAKICAgICBCT09MIGlnbm9yZUV2ZW50ID0gTk87CiAgICAgTlNFdmVudFR5
cGUgZXZlbnRUeXBlID0gW2luRXZlbnQgdHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgaWYgKGV2ZW50VHlwZT09TlNTeXN0ZW1EZWZpbmVkKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZVN5
c3RlbURlZmluZWQpIHsKICAgICAgICAgc2hvcnQgZXZlbnRTdWJ0eXBlID0gW2luRXZlbnQgc3Vi
dHlwZV07Ci0gICAgICAgIGlmIChldmVudFN1YnR5cGU9PTcpIHsKKyAgICAgICAgaWYgKGV2ZW50
U3VidHlwZSA9PSA3KSB7CiAgICAgICAgICAgICBpZ25vcmVFdmVudCA9IFlFUzsKICAgICAgICAg
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIH0gZWxzZSBpZiAoZXZl
bnRUeXBlID09IE5TS2V5RG93bikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlS2V5RG93bikgewogICAgICAgICAv
LyBIYW5kbGUgY29tbWFuZC1zcGFjZSBhcyBbTlNBcHAgc2VuZEV2ZW50Ol0gZG9lcy4KICAgICAg
ICAgaWYgKFtOU0lucHV0Q29udGV4dCBwcm9jZXNzSW5wdXRLZXlCaW5kaW5nczppbkV2ZW50XSkg
ewogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYWQ1OTM2
OTZkNGI5YTk3NjZhM2NiY2UwM2VhZDZlYWZkMDc5NTc5Li42ZDA2YzcwMTBjNTJiODFkNTMxNTFl
MTg1MmQ0MTQ0MWI5MTI5ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtNDEsNiArNDEs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIGV4dGVy
biAiQyIgewogI2ltcG9ydCAiV2ViS2l0UGx1Z2luSG9zdC5oIgpAQCAtMjMwLDEwICsyMzEsNyBA
QCB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQo
IW1fcGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIp
OwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vo
b2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZ
RVNdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2lu
ZG93ID0gYWRvcHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHls
ZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNd
KTsKIAogICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVB
Y3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3Rp
dmUoKTsgfV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlh
ZTdhMTc3ZTQ1MTJmNDU2NDFkYWEyNDM3ZDRjOS4uYWEwZGY1NDI0YTQyNmZkM2FkNzgzNDM0NmNk
N2IyYWQ0YzI5NTUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtNjYsNiAr
NjYsNyBAQAogI2ltcG9ydCA8dXRpbGl0eT4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2ltcG9ydCA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKIGV4dGVybiAiQyIgewpAQCAtNDY1LDE1ICs0NjYsMTIgQEAgdm9pZCBOZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlm
aWVyKGludCBrZXlDb2QKIHsKICAgICBOU0RhdGEgKmNoYXJhY3RlcnNEYXRhID0gW05TRGF0YSBk
YXRhV2l0aEJ5dGVzOiZjaGFyYWN0ZXIgbGVuZ3RoOjFdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCiAgICAgX1dLUEhQbHVnaW5JbnN0YW5jZUtleWJvYXJkRXZlbnQobV9w
bHVnaW5Ib3N0UHJveHktPnBvcnQoKSwgbV9wbHVnaW5JRCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0s
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtleURv
d24sIE5TQ29tbWFuZEtleU1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlBDb2NvYUV2ZW50S2V5RG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFj
dGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3Rl
cnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIGtleUNvZGUsIGNoYXJhY3Rlcik7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5OjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdp
blZpZXcubW0KaW5kZXggMzc2NjcyYjY4NjczN2M3NzNlZGM2ZGY2ODRiMjg3OTgyOTY0ZjU0MS4u
ZGZjOGNjYTcyODI0OGE4OTZhODEzZTZmNzkyNDJjMDk0MmIyNWM5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldy5tbQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1
bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CkBAIC00NDMsMTAgKzQ0NCw3IEBAIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0CiB7CiAg
ICAgaWYgKF9jYWNoZWRTbmFwc2hvdCkgewogICAgICAgICBOU1JlY3Qgc291cmNlUmVjdCA9IHsg
TlNaZXJvUG9pbnQsIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgc2l6ZV0gfTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBk
cmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBbX2NhY2hlZFNuYXBzaG90LmdldCgpIGRyYXdJblJlY3Q6W3NlbGYgYm91
bmRzXSBmcm9tUmVjdDpzb3VyY2VSZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9u
U291cmNlT3ZlciBmcmFjdGlvbjoxXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
bkV2ZW50SGFuZGxlckNvY29hLm1tCmluZGV4IGExZDE1OWFmOTRlMTQ4OWE0OGIwOTkyMTA4ZDAz
ZjM5ODA1ZjI5OTYuLjljNTIwMWZlNjJkMjYzYmQzNWViNWU3MWQ0YTM3MDFhYWE5MTdlNzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQg
IldlYktpdFN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3
LmgiCiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJD
b2NvYTo6V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYShXZWJOZXRzY2FwZVBsdWdp
blZpZXcqIHBsdWdpblZpZXcpCiAgICAgOiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlcihw
bHVnaW5WaWV3KQpAQCAtMTYxLDEwICsxNjIsNyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZl
bnRIYW5kbGVyQ29jb2E6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludAog
ICAgIAogICAgIE5QQ29jb2FFdmVudCBldmVudDsKICAgICBpbml0aWFsaXplRXZlbnQoJmV2ZW50
LCBOUENvY29hRXZlbnRLZXlEb3duKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBldmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdzID0gTlNDb21tYW5kS2V5TWFzazsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBldmVudC5kYXRhLmtleS5tb2RpZmll
ckZsYWdzID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgZXZlbnQuZGF0YS5rZXku
a2V5Q29kZSA9IGtleUNvZGU7CiAgICAgZXZlbnQuZGF0YS5rZXkuaXNBUmVwZWF0ID0gZmFsc2U7
CiAgICAgZXZlbnQuZGF0YS5rZXkuY2hhcmFjdGVycyA9IChOUE5TU3RyaW5nICopY2hhcmFjdGVy
cy5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1Bv
cHVwTWVudU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dU1hYy5tbQppbmRleCBjNDY2NzBiNGQ3OWQ4Y2U4NGZiZDQxMTU4ZmI3MzA4MGFlODA0NzliLi43
OWYyOGZiODJjYjdmZDkzOWNkMzMyMzRlYzQ3ZWMwMzk2NmVlNTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCkBAIC0zNCw2ICszNCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgogI2ltcG9ydCA8V2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgor
I2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05MCwxNyArOTEsMTEgQEAgdm9pZCBQb3B1cE1l
bnVNYWM6OnBvcHVsYXRlKCkKICAgICAgICAgfQogCiAgICAgICAgIFJldGFpblB0cjxOU011dGFi
bGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhT
dHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11dGFibGVDb3B5XSk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1l
bnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
W3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBO
U1RleHRBbGlnbm1lbnRMZWZ0IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICBOU1dy
aXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiA9IHN0eWxlLnRleHREaXJlY3Rpb24oKSA9
PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlv
blJpZ2h0VG9MZWZ0OwogICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJl
Y3Rpb246d3JpdGluZ0RpcmVjdGlvbl07CiAgICAgICAgIGlmIChzdHlsZS5oYXNUZXh0RGlyZWN0
aW9uT3ZlcnJpZGUoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9w
dE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsg
TlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25W
YWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdE
aXJlY3Rpb24gKyBOU1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgUmV0
YWluUHRyPE5TQXJyYXk+IHdyaXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0TlMoW1tOU0FycmF5
IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxd
KTsKICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJy
YXkuZ2V0KCkgZm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAg
ICB9CkBAIC0yMDYsMTggKzIwMSwxNSBAQCB2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhjb25zdCBJ
bnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIAogICAgIE5TQ29udHJvbFNpemUg
Y29udHJvbFNpemU7CiAgICAgc3dpdGNoIChtX2NsaWVudC0+bWVudVN0eWxlKCkubWVudVNpemUo
KSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGNhc2UgUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVJl
Z3VsYXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVu
dVNpemVTbWFsbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1NtYWxsQ29udHJvbFNpemU7Cisg
ICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVNtYWxsOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaToKLSAgICAgICAgY29u
dHJvbFNpemUgPSBOU01pbmlDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0Nv
bnRyb2xTaXplTWluaTsKICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgfQogCiAgICAgV0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dp
ZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgpLCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xT
aXplLCAhbV9jbGllbnQtPm1lbnVTdHlsZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5tbQppbmRleCA5MTRkOGUwNjNlOGViMGZjYTllYWU5ZDdiYmJjODFmNjFiN2I4OGQ2
Li5hMzliOTNlNzdlMjZhNjQzM2I5Mjg4OGYxOTMzYTA5OTU1MTVjNjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVu
dC5tbQpAQCAtNjAsNiArNjAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdh
Y3kvRE9NUHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yNjksMTAgKzI3
MCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNob3dDb250ZXh0TWVudSgpCiAKICAg
ICBOU1ZpZXcqIHZpZXcgPSBmcmFtZVZpZXctPmRvY3VtZW50VmlldygpOwogICAgIEludFBvaW50
IHBvaW50ID0gZnJhbWVWaWV3LT5jb250ZW50c1RvV2luZG93KHBhZ2UtPmNvbnRleHRNZW51Q29u
dHJvbGxlcigpLmhpdFRlc3RSZXN1bHQoKS5yb3VuZGVkUG9pbnRJbklubmVyTm9kZUZyYW1lKCkp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQqIGV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24gbG9jYXRpb246
cG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbW3ZpZXcgd2lu
ZG93XSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBw
cmVzc3VyZToxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50KiBl
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBj
bGlja0NvdW50OjEgcHJlc3N1cmU6MV07CiAKICAgICAvLyBTaG93IHRoZSBjb250ZXh0dWFsIG1l
bnUgZm9yIHRoaXMgZXZlbnQuCiAgICAgYm9vbCBpc1NlcnZpY2VzTWVudTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KaW5kZXggMTE0NzZhMDMyNzZlZGQ5NGU3NTU1MTM5MzBhYjQ2MTliY2VkZjk1My4uMTYwYjJk
ZjU3NDdmNTNhZWRiMzU5Njg4M2I0MmMwZmM5ZjQzYzIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAg
LTEzMCw2ICsxMzAsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogI2lmIFVTRShQTFVHSU5fSE9TVF9QUk9DRVNTKSAmJiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKQEAgLTE1NjEsMTcgKzE1NjIsMTQgQEAgTlNEaWN0aW9uYXJ5ICpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6YWN0aW9uRGljdGlvbmFyeShjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBhY3QKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IFVJRXZlbnRXaXRoS2V5U3Rh
dGUqIGtleVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUoY29uc3RfY2FzdDxFdmVu
dCo+KGV2ZW50KSk7CiAgICAgaWYgKGtleVN0YXRlRXZlbnQgJiYga2V5U3RhdGVFdmVudC0+aXNU
cnVzdGVkKCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAg
aWYgKGtleVN0YXRlRXZlbnQtPmN0cmxLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNDb250cm9sS2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2w7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXko
KSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAg
ICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAg
ICAgICBpZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFL
ZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgfQogI2Vsc2UKICAgICAvLyBObyBtb2Rp
ZmllciBmbGFncyBvbiBpT1MgcmlnaHQgbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggOTA3ODdkNjIwYjM4
MWU1MzhjN2IxYWRkYzc2ZjJkMjljNTkzMjIwOS4uNzZiMmNkMmNiZjEwYjIwYTM5OTNjMmYzZjdi
NzE5Y2JlN2E1ODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNTMsNiArNTMsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTUV4dGVuc2lv
bnMuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9C
YXNlNjQuaD4KIAogU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFBy
aXZhdGVGcmFtZXdvcmtzLCBBKQpAQCAtMTkxLDEwICsxOTIsNyBAQCB2b2lkIFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50OjphdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wgYXZhaWxhYmxl
KQogCiBib29sIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpjYW5BdHRhY2goKQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW21fZnJvbnRlbmRXaW5k
b3dDb250cm9sbGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TRnVsbFNjcmVlbldpbmRvd01hc2sp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtbbV9mcm9udGVuZFdpbmRv
d0NvbnRyb2xsZXIgd2luZG93XSBzdHlsZU1hc2tdICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2Ny
ZWVuKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gY2FuQXR0YWNoV2luZG93
KCk7CkBAIC00NjUsMTAgKzQ2Myw3IEBAIC0gKE5TV2luZG93ICopd2luZG93CiAgICAgaWYgKHdp
bmRvdykKICAgICAgICAgcmV0dXJuIHdpbmRvdzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNr
IHwgTlNDbG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5T
UmVzaXphYmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNVSW50ZWdlciBzdHlsZU1hc2sgPSBO
U1dpbmRvd1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dp
bmRvd1N0eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUg
fCBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXc7CiAgICAgd2luZG93ID0gW1tO
U1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIGluaXRp
YWxXaW5kb3dXaWR0aCwgaW5pdGlhbFdpbmRvd0hlaWdodCkgc3R5bGVNYXNrOnN0eWxlTWFzayBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0
RGVsZWdhdGU6c2VsZl07CiAgICAgW3dpbmRvdyBzZXRNaW5TaXplOk5TTWFrZVNpemUobWluaW11
bVdpbmRvd1dpZHRoLCBtaW5pbXVtV2luZG93SGVpZ2h0KV07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4IDAyYTc1NmY3Njc3
MzE1YzYyMmRkODFkOTlhMjlmYWMzZmI1YmY5ZTIuLmZjNTNkMGMxYjBhZTIwZjg4YWExNWI2M2M0
MDdmOTA1YWY0MGQ4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rv
ci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rv
ci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCkBAIC0zMiw2ICszMiw4IEBACiAKICNpbXBvcnQgPFdlYkNv
cmUvSW5zcGVjdG9yQ29udHJvbGxlci5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgorCiAKICNp
ZiBQTEFURk9STShJT1MpCiAjaW1wb3J0ICJXZWJGcmFtZVByaXZhdGUuaCIKQEAgLTkxLDEwICs5
Myw3IEBAIC0gKGlkKWluaXRXaXRoVGFyZ2V0VmlldzooTlNWaWV3ICopdGFyZ2V0VmlldyBpbnNw
ZWN0b3JDb250cm9sbGVyOihJbnNwZWN0b3JDb250CiAgICAgX2luc3BlY3RvckNvbnRyb2xsZXIg
PSBpbnNwZWN0b3JDb250cm9sbGVyOwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpbnQgc3R5bGVNYXNrID0gTlNCb3JkZXJsZXNz
V2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpbnQgc3R5bGVN
YXNrID0gTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzOwogICAgIE5TUmVjdCBjb250ZW50UmVj
dCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1lUmVjdDpbc2VsZiBfY29tcHV0ZUhpZ2hs
aWdodFdpbmRvd0ZyYW1lXSBzdHlsZU1hc2s6c3R5bGVNYXNrXTsKICAgICBfaGlnaGxpZ2h0V2lu
ZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBz
dHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpO
T107CiAgICAgW19oaWdobGlnaHRXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNs
ZWFyQ29sb3JdXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWVWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KaW5k
ZXggNWVjMTk3ODVkYTcyOTdiMWEyNDRjNTc2MzIwNzBjNGJkZTk0NmIwNS4uNWI4NjcxNTQwZTZm
OGExMjMxZWNlMWY1NDk0NGIxNTg4OTM3NGI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZVZpZXcubW0KQEAgLTgzLDYgKzgzLDcgQEAKICNlbHNlCiAjaW1wb3J0ICJXZWJO
U1Bhc3RlYm9hcmRFeHRyYXMuaCIKICNpbXBvcnQgIldlYk5TV2luZG93RXh0cmFzLmgiCisjaW1w
b3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbmRpZgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTkxNSw5ICs5MTYsNyBAQCAtICh2b2lkKWtl
eURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICBCT09MIGNhbGxTdXBlciA9IFlFUzsKICAgICBG
cmFtZSogY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CiAgICAgQk9PTCBtYWludGFpbnNC
YWNrRm9yd2FyZExpc3QgPSBjb3JlRnJhbWUgJiYgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0
Kj4oY29yZUZyYW1lLT5wYWdlKCktPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLT5lbmFibGVkKCkg
PyBZRVMgOiBOTzsKLSAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwog
ICAgIGNvdW50ID0gW2NoYXJhY3RlcnMgbGVuZ3RoXTsKICAgICBmb3IgKGluZGV4ID0gMDsgaW5k
ZXggPCBjb3VudDsgKytpbmRleCkgewogICAgICAgICBzd2l0Y2ggKFtjaGFyYWN0ZXJzIGNoYXJh
Y3RlckF0SW5kZXg6aW5kZXhdKSB7CkBAIC05MjgsNyArOTI3LDcgQEAgLSAodm9pZClrZXlEb3du
OihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8v
IFRoaXMgb2RkIGJlaGF2aW9yIG1hdGNoZXMgc29tZSBleGlzdGluZyBicm93c2VycywKICAgICAg
ICAgICAgICAgICAvLyBpbmNsdWRpbmcgV2luZG93cyBJRQotICAgICAgICAgICAgICAgIGlmICht
b2RpZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9k
aWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkgewogICAgICAgICAgICAgICAg
ICAgICBbc2VsZiBfZ29Gb3J3YXJkXTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgICAgICBbc2VsZiBfZ29CYWNrXTsKQEAgLTk0Myw3ICs5NDIsNyBAQCAtICh2b2lk
KWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVy
ID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU1NoaWZ0S2V5TWFzaykgeworICAg
ICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0
KSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VVcDpuaWxdOwogICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VE
b3duOm5pbF07CkBAIC05ODQsNyArOTgzLDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAq
KWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TVXBBcnJv
d0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVk
IG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4K
LSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5T
Q29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAo
TlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7
CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAtOTk4LDkgKzk5Nyw5IEBAIC0gKHZvaWQp
a2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIFtz
ZWxmIHNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudDpuaWxdOwotICAgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24pIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZVVwOm5pbF07CiAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsTGlu
ZVVwOm5pbF07CkBAIC0xMDA5LDcgKzEwMDgsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50
ICopZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNEb3du
QXJyb3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hp
ZnRlZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFu
Y2UuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sg
fCBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgKE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9s
KSkgewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTEwMjMsOSArMTAyMiw5IEBAIC0g
KHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIHNjcm9sbFRvRW5kT2ZEb2N1bWVudDpuaWxdOwotICAgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24pIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZURvd246bmlsXTsKICAg
ICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxM
aW5lRG93bjpuaWxdOwpAQCAtMTAzNCwxMiArMTAzMywxMiBAQCAtICh2b2lkKWtleURvd246KFdl
YkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
TlNMZWZ0QXJyb3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5k
bGUgc2hpZnRlZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUg
YSBjaGFuY2UuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtl
eU1hc2sgfCBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmll
ckZsYWdzICYgKE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdD
b250cm9sKSkgewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAv
LyBDaGVjayBiYWNrL2ZvcndhcmQgcmVsYXRlZCBrZXlzLgotICAgICAgICAgICAgICAgIGlmICht
b2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmICht
b2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFtYWludGFpbnNCYWNrRm9yd2FyZExpc3QpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMTA1Miw3ICsxMDUxLDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50
CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlN
YXNrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ09wdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX3BhZ2VI
b3Jpem9udGFsbHk6WUVTXTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIFtzZWxmIF9zY3JvbGxMaW5lSG9yaXpvbnRhbGx5OllFU107CkBAIC0x
MDYyLDEyICsxMDYxLDEyIEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU1JpZ2h0QXJyb3dGdW5jdGlv
bktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRlZCBvciBjb250
cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2UuCi0gICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBOU0NvbnRyb2xL
ZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TRXZlbnRN
b2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewogICAgICAg
ICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAvLyBDaGVjayBiYWNrL2Zvcndh
cmQgcmVsYXRlZCBrZXlzLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlND
b21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNF
dmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYWlu
dGFpbnNCYWNrRm9yd2FyZExpc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBl
ciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA4MCw3ICsxMDc5
LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
ICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikg
ewogICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX3BhZ2VIb3Jpem9udGFsbHk6Tk9dOwog
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgW3Nl
bGYgX3Njcm9sbExpbmVIb3Jpem9udGFsbHk6Tk9dOwpAQCAtMTA5MCw3ICsxMDg5LDYgQEAgLSAo
dm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgaWYgKGNh
bGxTdXBlcikgewogICAgICAgICBbc3VwZXIga2V5RG93bjpldmVudF07CiAgICAgfSBlbHNlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRy
b2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9s
bGVyLm1tCmluZGV4IDlmZDk1NjYxN2YwN2M2Y2Y2ZjQ4NTdjYzllMjIxNDBiMjE4OGIyZTQuLmY1
NDM0MWZkYmI0ZTRkM2NlZDlkZWQxNjNmMTg0MzJiMDQ2ZDliMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQpAQCAtNDcs
NiArNDcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJXaW5kb3dBbmltYXRpb24uaD4KICNpbXBv
cnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgor
I2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC04NiwxMSArODcsOCBAQCBAaW1wbGVtZW50YXRp
b24gV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIKICNwcmFnbWEgbWFyayBJbml0aWFsaXphdGlvbgog
LSAoaWQpaW5pdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8v
IERvIG5vdCBkZWZlciB3aW5kb3cgY3JlYXRpb24sIHRvIG1ha2Ugc3VyZSAtd2luZG93TnVtYmVy
IGlzIGNyZWF0ZWQgKG5lZWRlZCBieSBXZWJXaW5kb3dTY2FsZUFuaW1hdGlvbikuCi0gICAgTlNX
aW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6TlNDbG9zYWJsZVdpbmRvd01hc2sgYmFj
a2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU1plcm9SZWN0IHN0eWxlTWFzazpOU1dp
bmRvd1N0eWxlTWFza0Nsb3NhYmxlIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZl
cjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFdpbmRvdzp3aW5kb3ddOwogICAgIFt3
aW5kb3cgcmVsZWFzZV07CiAgICAgaWYgKCFzZWxmKQpAQCAtNDYyLDEwICs0NjAsNyBAQCAtICh2
b2lkKV9zd2FwVmlldzooTlNWaWV3Kil2aWV3IHdpdGg6KE5TVmlldyopb3RoZXJWaWV3CiAKIHN0
YXRpYyBSZXRhaW5QdHI8TlNXaW5kb3c+IGNyZWF0ZUJhY2tncm91bmRGdWxsc2NyZWVuV2luZG93
KE5TUmVjdCBmcmFtZSkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBOU1dpbmRvdyAqd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpmcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRS
ZWN0OmZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpO
U0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbd2luZG93IHNldE9wYXF1ZTpZ
RVNdOwogICAgIFt3aW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGJsYWNrQ29sb3Jd
XTsKICAgICBbd2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpOT107CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCA1NWYxYWUyZDQ1OGY1NjEzOTVmYzMyNmFh
Y2JjNjBmNGRiMzIxM2M0Li4wODRmZTQ1NTdlN2FiODUzNDM3YWNjNTFlOWUyNzg3YWZmYTUwYzE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTE0MCwxMiAr
MTQwLDEzIEBACiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiAjaWYgIVBMQVRGT1JNKElPUykK
KyNpbXBvcnQgIldlYk5TRXZlbnRFeHRyYXMuaCIKKyNpbXBvcnQgIldlYk5TUGFzdGVib2FyZEV4
dHJhcy5oIgogI2ltcG9ydCA8QXBwS2l0L05TQWNjZXNzaWJpbGl0eS5oPgogI2ltcG9ydCA8QXBw
bGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L05TTWVudVNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5o
PgotI2ltcG9ydCAiV2ViTlNFdmVudEV4dHJhcy5oIgotI2ltcG9ydCAiV2ViTlNQYXN0ZWJvYXJk
RXh0cmFzLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KICNlbmRpZgogCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KQEAgLTEz
NTEsMTIgKzEzNTIsOSBAQCAtICh2b2lkKV9wYXN0ZUFzUGxhaW5UZXh0V2l0aFBhc3RlYm9hcmQ6
KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQKIAogLSAodm9pZClfcG9zdEZha2VNb3VzZU1vdmVk
RXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudDooTlNFdmVudCAqKWZsYWdzQ2hhbmdlZEV2ZW50CiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2
ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpm
bGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFt
CisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91
c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6Zmxh
Z3NDaGFuZ2VkRXZlbnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQu
dGltZXN0YW1wIHdpbmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKICAg
ICAgICAgY29udGV4dDpudWxscHRyIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtzZWxmIG1vdXNlTW92ZWQ6
ZmFrZUV2ZW50XTsKIH0KIApAQCAtMTUwNiwxMCArMTUwNCw3IEBAIC0gKHZvaWQpX3NldE1vdXNl
RG93bkV2ZW50OihXZWJFdmVudCAqKWV2ZW50CiAjZW5kaWYKIHsKICNpZiAhUExBVEZPUk0oSU9T
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIEFTU0VSVCghZXZlbnQg
fHwgW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNS
aWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNPdGhlck1vdXNlRG93bik7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQVNTRVJUKCFldmVudCB8fCBbZXZlbnQgdHlw
ZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZU90aGVyTW91
c2VEb3duKTsKICNlbHNlCiAgICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09IFdlYkV2
ZW50TW91c2VEb3duKTsKICNlbmRpZgpAQCAtMTY2MSwxNiArMTY1NiwxNyBAQCAtIChpZClfYnJp
ZGdlCiAKIC0gKHZvaWQpX3VwZGF0ZU1vdXNlb3ZlcldpdGhGYWtlRXZlbnQKIHsKKyAgICBOU0V2
ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVN
b3VzZU1vdmVkCisgICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCiAjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAotICAgICAgICBsb2NhdGlvbjpbW3NlbGYg
d2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAg
ICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3Vy
cmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1l
SW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbW3NlbGYg
d2luZG93XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICBl
dmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKIAogICAgIFtzZWxmIF91cGRhdGVNb3VzZW92ZXJXaXRoRXZlbnQ6ZmFrZUV2
ZW50XTsKIH0KQEAgLTE4NjgsMTEgKzE4NjQsOCBAQCAtIChCT09MKV9pbnNpZGVBbm90aGVySFRN
TFZpZXcKICNpZiAhUExBVEZPUk0oSU9TKQogc3RhdGljIEJPT0wgaXNRdWlja0xvb2tFdmVudChO
U0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAg
ICBjb25zdCBpbnQga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9uUmVsZWFz
ZWQgPSA5OwotICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNTeXN0ZW1EZWZpbmVkICYmIFtl
dmVudCBzdWJ0eXBlXSA9PSBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25S
ZWxlYXNlZCAmJiBbZXZlbnQgZGF0YTFdID09ICdsa3VwJzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlU3lzdGVtRGVm
aW5lZCAmJiBbZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNv
bWJpbmF0aW9uUmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7CiB9CiAjZW5kaWYK
IApAQCAtMTkyOCwxNCArMTkyMSwxMSBAQCAtIChOU1ZpZXcgKiloaXRUZXN0OihOU1BvaW50KXBv
aW50CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaHkgZG9lc24ndCB0aGlzIGluY2x1
ZGUgbW91c2UgZW50ZXJlZC9leGl0ZWQgZXZlbnRzLCBvciBvdGhlciBtb3VzZSBidXR0b24gZXZl
bnRzPwogICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtbc2VsZiB3aW5kb3ddIGN1cnJlbnRFdmVu
dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhcHR1cmVI
aXRzT25TdWJ2aWV3cyA9ICEoW2V2ZW50IHR5cGVdID09IE5TTW91c2VNb3ZlZAotICAgICAgICAg
ICAgfHwgW2V2ZW50IHR5cGVdID09IE5TUmlnaHRNb3VzZURvd24KLSAgICAgICAgICAgIHx8IChb
ZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0NvbnRyb2xLZXlNYXNrKSAhPSAwKQotICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09
IE5TRmxhZ3NDaGFuZ2VkCisgICAgICAgIGNhcHR1cmVIaXRzT25TdWJ2aWV3cyA9ICEoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAgICAgICAgfHwgW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24KKyAgICAgICAgICAgIHx8IChbZXZlbnQg
dHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duICYmIFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKQorICAgICAgICAgICAgfHwgW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkCiAgICAgICAgICAgICB8fCBpc1F1aWNrTG9v
a0V2ZW50KGV2ZW50KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAg
ICAgaWYgKCFjYXB0dXJlSGl0c09uU3Vidmlld3MpIHsKQEAgLTIwMjMsOSArMjAxMyw3IEBAIC0g
KHZvaWQpX3JlbW92ZVRyYWNraW5nUmVjdHM6KE5TVHJhY2tpbmdSZWN0VGFnICopdGFncyBjb3Vu
dDooaW50KWNvdW50CiAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRXhpdGVkCiB7CiAgICAgLy8g
Tm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRh
dGEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFr
ZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRXhpdGVkCisg
ICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZU1vdXNlRXhpdGVkCiAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDAp
CiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjAzNCwx
NiArMjAyMiwxMyBAQCAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRXhpdGVkCiAgICAgICAgIGV2
ZW50TnVtYmVyOjAKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAg
ICAgICAgdXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbX3ByaXZhdGUtPnRyYWNraW5nUmVjdE93bmVyIG1v
dXNlRXhpdGVkOmZha2VFdmVudF07CiB9CiAKIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFbnRl
cmVkCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgLy8gTm90aGlu
ZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0g
ICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpO
U01vdXNlRW50ZXJlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhp
dEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUVudGVyZWQKICAgICAgICAgbG9jYXRpb246
TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgIHRpbWVz
dGFtcDowCkBAIC0yMDUzLDcgKzIwMzgsNiBAQCAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRW50
ZXJlZAogICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICB1
c2VyRGF0YTpfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0VXNlckRhdGFdOwogICAgIFtfcHJpdmF0ZS0+
dHJhY2tpbmdSZWN0T3duZXIgbW91c2VFbnRlcmVkOmZha2VFdmVudF07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIApAQCAtMjA4OSwy
MSArMjA3MywxOCBAQCAtIChOU1N0cmluZyAqKXZpZXc6KE5TVmlldyAqKXZpZXcgc3RyaW5nRm9y
VG9vbFRpcDooTlNUb29sVGlwVGFnKXRhZyBwb2ludDooTlNQbwogc3RhdGljIGJvb2wgbW91c2VF
dmVudElzUGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
RG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNh
c2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVu
dFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
UmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogfQogCkBAIC0yMTM0LDE2
ICsyMTE1LDE0IEBAIC0gKHZvaWQpX3VwZGF0ZU1vdXNlb3ZlcldpdGhFdmVudDooTlNFdmVudCAq
KWV2ZW50CiAgICAgICAgIGZsb2F0IHlTY3JvbGwgPSB2aXNpYmxlUmVjdC5vcmlnaW4ueTsKICAg
ICAgICAgZmxvYXQgeFNjcm9sbCA9IHZpc2libGVSZWN0Lm9yaWdpbi54OwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAorICAgICAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKICAg
ICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KC0xIC0geFNjcm9sbCwgLTEgLSB5U2Nyb2xs
KQogICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZp
ZXJGbGFnc10KICAgICAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNl
UmVmZXJlbmNlRGF0ZV0KICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbW3ZpZXcgd2luZG93XSB3
aW5kb3dOdW1iZXJdCiAgICAgICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAgICAgIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorCiAgICAgICAgIGlmIChGcmFtZSogbGFzdEhpdENvcmVGcmFtZSA9IGNvcmUo
W2xhc3RIaXRWaWV3IF9mcmFtZV0pKQogICAgICAgICAgICAgbGFzdEhpdENvcmVGcmFtZS0+ZXZl
bnRIYW5kbGVyKCkubW91c2VNb3ZlZChldmVudCwgW1tzZWxmIF93ZWJWaWV3XSBfcHJlc3N1cmVF
dmVudF0pOwogICAgIH0KQEAgLTIzMzAsMTYgKzIzMDksMTggQEAgLSAodm9pZClfYXV0b3Njcm9s
bAogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZAor
ICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0xlZnRNb3VzZURyYWdnZWQKLSAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRv
d10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAgICAgICAg
Y29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRF
dmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVy
dmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dOdW1iZXI6W1tzZWxmIHdpbmRv
d10gd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAgZXZlbnRO
dW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisKICAgICBbc2VsZiBtb3VzZURyYWdnZWQ6ZmFrZUV2ZW50XTsKICNlbmRpZgogfQpA
QCAtMzM1NCwxMiArMzMzNSw5IEBAIC0gKEJPT0wpYWNjZXB0c0ZpcnN0UmVzcG9uZGVyCiAgICAg
Ly8gb3IgZnJvbSBjYWxscyBiYWNrIGZyb20gV2ViQ29yZSBvbmNlIHdlIGJlZ2luIG1vdXNlLWRv
d24gZXZlbnQgaGFuZGxpbmcuCiAjaWYgIVBMQVRGT1JNKElPUykgICAgICAgICAgICAKICAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3du
CisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24KICAgICAg
ICAgICAgICYmICFfcHJpdmF0ZS0+aGFuZGxpbmdNb3VzZURvd25FdmVudAogICAgICAgICAgICAg
JiYgTlNQb2ludEluUmVjdChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10sIFtzZWxmIGNvbnZlcnRS
ZWN0OltzZWxmIHZpc2libGVSZWN0XSB0b1ZpZXc6bmlsXSkpIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKICAgICAgICAgcmV0dXJuIE5POwogICAgIH0KICNlbHNlCkBAIC0zNTI4LDEz
ICszNTA2LDEwIEBAIC0gKHZvaWQpdmlld0RpZE1vdmVUb1dpbmRvdwogCiAjaWYgIVBMQVRGT1JN
KElPUykKICAgICAgICAgaWYgKCFfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBfcHJpdmF0
ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9y
RXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2VkTWFzayBoYW5kbGVyOl4oTlNFdmVudCAq
ZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKKyAgICAgICAgICAgIF9wcml2YXRlLT5mbGFnc0NoYW5nZWRF
dmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01h
c2s6TlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgaGFuZGxlcjpeKE5TRXZlbnQgKmZsYWdzQ2hhbmdl
ZEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgW3NlbGYgX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6ZmxhZ3NDaGFuZ2VkRXZlbnRdOwogICAgICAgICAgICAgICAg
IHJldHVybiBmbGFnc0NoYW5nZWRFdmVudDsKICAgICAgICAgICAgIH1dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgW05TRXZl
bnQgcmVtb3ZlTW9uaXRvcjpfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yXTsKQEAg
LTQ1NDAsMTEgKzQ1MTUsMTIgQEAgLSAodm9pZCltb3VzZURvd246KFdlYkV2ZW50ICopZXZlbnQK
ICAgICBOU0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdl
ciBjdXJyZW50SW5wdXRNYW5hZ2VyXTsKIAogICAgIGlmICghW2N1cnJlbnRJbnB1dE1hbmFnZXIg
d2FudHNUb0hhbmRsZU1vdXNlRXZlbnRzXSB8fCAhW2N1cnJlbnRJbnB1dE1hbmFnZXIgaGFuZGxl
TW91c2VFdmVudDpldmVudF0pIHsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAg
ICAgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBlbmRSZXZlcnRpbmdDaGFuZ2U6Tk8g
bW92ZUxlZnQ6Tk9dOwogCiAgICAgICAgIC8vIElmIHRoZSB3ZWIgcGFnZSBoYW5kbGVzIHRoZSBj
b250ZXh0IG1lbnUgZXZlbnQgYW5kIG1lbnVGb3JFdmVudDogcmV0dXJucyBuaWwsIHdlJ2xsIGdl
dCBjb250cm9sIGNsaWNrIGV2ZW50cyBoZXJlLgogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRv
IHBhc3MgdGhlbSBhbG9uZyB0byBLSFRNTCBhIHNlY29uZCB0aW1lLgotICAgICAgICBpZiAoIShb
ZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICBpZiAo
IShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsK
ICAgICAgICAgICAgIF9wcml2YXRlLT5pZ25vcmluZ01vdXNlRHJhZ2dlZEV2ZW50cyA9IE5POwog
CiAgICAgICAgICAgICAvLyBMZXQgV2ViQ29yZSBnZXQgYSBjaGFuY2UgdG8gZGVhbCB3aXRoIHRo
ZSBldmVudC4gVGhpcyB3aWxsIGNhbGwgYmFjayB0byB1cwpAQCAtNDU1Myw3ICs0NTI5LDYgQEAg
LSAodm9pZCltb3VzZURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBjb3Jl
ZnJhbWUtPmV2ZW50SGFuZGxlcigpLm1vdXNlRG93bihldmVudCwgW1tzZWxmIF93ZWJWaWV3XSBf
cHJlc3N1cmVFdmVudF0pOwogICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogI2VuZGlmCiAKICAgICBfcHJpdmF0ZS0+aGFuZGxpbmdNb3VzZURvd25FdmVudCA9
IE5POwpAQCAtNDgxOCwxOSArNDc5MywxMiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxLZXlib2FyZEV2
ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0tleURvd246IHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLQorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7CiAgICAgICAgIFBs
YXRmb3JtS2V5Ym9hcmRFdmVudCBwbGF0Zm9ybUV2ZW50ID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6
OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCk7CiAgICAgICAgIHBsYXRmb3JtRXZl
bnQuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwog
ICAgICAgICByZXR1cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBsYXRmb3JtRXZlbnQsIGNvcmVG
cmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlVcDoKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6CiAgICAgICAgIHJldHVybiBL
ZXlib2FyZEV2ZW50OjpjcmVhdGUoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3Jt
S2V5Ym9hcmRFdmVudChldmVudCksIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXco
KSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIDA7CkBAIC01NTI0LDExICs1NDkyLDgg
QEAgLSAoQk9PTClfaGFuZGxlU3R5bGVLZXlFcXVpdmFsZW50OihOU0V2ZW50ICopZXZlbnQKICAg
ICBpZiAoIVtzZWxmIF9jYW5FZGl0XSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICgoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrKSAhPSBOU0NvbW1hbmRL
ZXlNYXNrKQorICAgIGlmICgoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVy
RmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrKSAhPSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29t
bWFuZCkKICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
CiAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFtldmVudCBjaGFyYWN0ZXJzXTsKICAgICBpZiAoW3N0
cmluZyBjYXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiYiJdID09IE5TT3JkZXJlZFNhbWUpIHsKQEAg
LTY0NDgsMTQgKzY0MTMsMTEgQEAgLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KEtleWJvYXJk
RXZlbnQqKWV2ZW50IHNhdmluZ0NvbW1hbmRzOihCT09MKXNhdmluZ0NvbW0KICAgICAgICAgcmV0
dXJuIE5POwogCiAgICAgTlNFdmVudCAqbWFjRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5tYWNFdmVu
dCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbbWFjRXZl
bnQgdHlwZV0gPT0gTlNLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIg
ZmlsdGVyS2V5RG93bjptYWNFdmVudF0pCisgICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBOU0V2
ZW50VHlwZUtleURvd24gJiYgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBmaWx0ZXJL
ZXlEb3duOm1hY0V2ZW50XSkKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICAKLSAgICBpZiAoW21h
Y0V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQorICAgIGlmIChbbWFjRXZlbnQgdHlwZV0g
PT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAKICAgICBwYXJhbWV0ZXJzLmV2ZW50ID0gZXZlbnQ7
CiAgICAgX3ByaXZhdGUtPmludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgPSAmcGFyYW1ldGVy
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCA3OGY1NmU0OTFl
MDg2YWFlOTgzYjM4MDY5OWE1NTE1N2NkOThmZGJhLi45NjBjNjM3OWQxYWNlNjAwN2JlMTIwNTJh
ZTI4NDc0NzM1NDdkODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1t
CkBAIC02NSw2ICs2NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYk5TQXR0cmlidXRlZFN0cmlu
Z0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9DdXJy
ZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8QXBwbGljYXRp
b25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzUHJpdi5oPgpAQCAtMzIxLDEwICszMjIsNyBA
QCAtIChOU1ZpZXcgKiloaXRUZXN0OihOU1BvaW50KXBvaW50CiAgICAgLy8gT3ZlcnJpZGUgaGl0
VGVzdCBzbyB3ZSBjYW4gb3ZlcnJpZGUgbWVudUZvckV2ZW50LgogICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TQXBwIGN1cnJlbnRFdmVudF07CiAgICAgTlNFdmVudFR5cGUgdHlwZSA9IFtldmVudCB0
eXBlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAodHlwZSA9
PSBOU1JpZ2h0TW91c2VEb3duIHx8ICh0eXBlID09IE5TTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykpKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIGlmICh0eXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gfHwg
KHR5cGUgPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpKQogICAgICAgICByZXR1cm4gc2VsZjsK
IAogICAgIHJldHVybiBbc3VwZXIgaGl0VGVzdDpwb2ludF07CkBAIC0xMDA5LDM5ICsxMDA3LDMz
IEBAIC0gKHZvaWQpUERGVmlld1dpbGxDbGlja09uTGluazooUERGVmlldyAqKXNlbmRlciB3aXRo
VVJMOihOU1VSTCAqKVVSTAogICAgIGludCBidXR0b24gPSBub0J1dHRvbjsKICAgICBSZWZQdHI8
RXZlbnQ+IGV2ZW50OwogICAgIHN3aXRjaCAoW25zRXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAg
ICAgICAgICAgYnV0dG9uID0gMDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5T
UmlnaHRNb3VzZVVwOgotICAgICAgICAgICAgYnV0dG9uID0gMTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgYnV0dG9uID0gW25z
RXZlbnQgYnV0dG9uTnVtYmVyXTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5T
S2V5RG93bjogewotICAgICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZv
cm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKLSAg
ICAgICAgICAgIHBlLmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdL
ZXlEb3duKTsKLSAgICAgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCAw
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgICAgIGJ1dHRvbiA9IDA7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgICAgIGJ1dHRvbiA9IDE7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
ICAgIGJ1dHRvbiA9IFtuc0V2ZW50IGJ1dHRvbk51bWJlcl07CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7CisgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dCBwZSA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQo
bnNFdmVudCk7CisgICAgICAgIHBlLmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2
ZW50OjpSYXdLZXlEb3duKTsKKyAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUo
cGUsIDApOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGlmIChidXR0b24gIT0gbm9CdXR0b24pIHsKICAgICAgICAgZXZlbnQg
PSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUs
IGN1cnJlbnRUaW1lKCksIDAsIFtuc0V2ZW50IGNsaWNrQ291bnRdLCAwLCAwLCAwLCAwLAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAwLCAwLAogI2VuZGlmCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBbbnNFdmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlm
aWVyRmxhZ3NdICYgTlNTaGlmdEtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2ssCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZs
YWdDb250cm9sLAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50
TW9kaWZpZXJGbGFnT3B0aW9uLAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQsCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kLAogICAgICAgICAgICAgYnV0dG9u
LCAwLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIDAsIDAsIHRydWUpOwogICAgIH0KIApAQCAtMTE0
OSw5ICsxMTQxLDcgQEAgLSAoTlNFdmVudCAqKV9mYWtlS2V5RXZlbnRXaXRoRnVuY3Rpb25LZXk6
KHVuaWNoYXIpZnVuY3Rpb25LZXkKICAgICAvLyBGSVhNRSA0NDAwNDgwOiB3aGVuIFBERlZpZXcg
aW1wbGVtZW50cyB0aGUgc3RhbmRhcmQgc2Nyb2xsaW5nIHNlbGVjdG9ycyB0aGF0IHRoaXMKICAg
ICAvLyBtZXRob2QgaXMgdXNlZCB0byBtaW1pYywgd2UgY2FuIGVsaW1pbmF0ZSB0aGlzIG1ldGhv
ZCBhbmQgY2FsbCB0aGVtIGRpcmVjdGx5LgogICAgIE5TU3RyaW5nICprZXlBc1N0cmluZyA9IFtO
U1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczomZnVuY3Rpb25LZXkgbGVuZ3RoOjFdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHJldHVybiBbTlNFdmVudCBrZXlF
dmVudFdpdGhUeXBlOk5TS2V5RG93bgorICAgIHJldHVybiBbTlNFdmVudCBrZXlFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlS2V5RG93bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0
aW9uOk5TWmVyb1BvaW50CiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTExNjEsNyArMTE1MSw2
IEBAIC0gKE5TRXZlbnQgKilfZmFrZUtleUV2ZW50V2l0aEZ1bmN0aW9uS2V5Oih1bmljaGFyKWZ1
bmN0aW9uS2V5CiAgICAgICAgICBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6a2V5QXNTdHJp
bmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQVJlcGVhdDpOTwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBrZXlDb2RlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogfQogCiAtICh2b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlGcm9tTWVudTooaWQpc2VuZGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25D
b250cm9sbGVyLm1tCmluZGV4IDQzODJiMDQ0NzRlNjBjOGMyMzczMzA0N2I4MTM5NjRhNGY3ODQy
NjMuLjdiOWU1ZGJjZjQ4YzIxNmI2YzU2NjMxMGMxNzRlNDMxMmM1NjI4ZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9s
bGVyLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJXZWJUeXBlc0ludGVybmFsLmgiCiAj
aW1wb3J0ICJXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CisjaW1wb3J0IDx3
dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBO
U1dpbmRvdyAoV2ViTlNXaW5kb3dEZXRhaWxzKQogLSAodm9pZClfc2V0Rm9yY2VBY3RpdmVDb250
cm9sczooQk9PTClmbGFnOwpAQCAtMTEyLDEwICsxMTMsNyBAQCAtICh2b2lkKV9idWlsZFVJCiAg
ICAgW3Njcm9sbFZpZXcgc2V0RG9jdW1lbnRWaWV3Ol90YWJsZVZpZXddOwogICAgIFtfdGFibGVW
aWV3IHJlbGVhc2VdOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIF9wb3B1cFdpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
c2Nyb2xsRnJhbWUgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBfcG9wdXBXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRS
ZWN0OnNjcm9sbEZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFj
a2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbX3BvcHVwV2luZG93
IHNldEFscGhhVmFsdWU6MC44OGZdOwogICAgIFtfcG9wdXBXaW5kb3cgc2V0Q29udGVudFZpZXc6
c2Nyb2xsVmlld107CiAgICAgW3Njcm9sbFZpZXcgcmVsZWFzZV07CkBAIC0xNTUsOCArMTUzLDgg
QEAgLSAodm9pZClfcGxhY2VQb3B1cFdpbmRvdzooTlNQb2ludCl0b3BMZWZ0CiAjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TU2Ny
b2xsVmlldyBmcmFtZVNpemVGb3JDb250ZW50U2l6ZTpOU01ha2VTaXplKG1heFdpZHRoLCAxMDAu
MGYpIGhhc0hvcml6b250YWxTY3JvbGxlcjpOTyBoYXNWZXJ0aWNhbFNjcm9sbGVyOllFUyBib3Jk
ZXJUeXBlOk5TTm9Cb3JkZXJdLndpZHRoKTsKLSAgICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNX
aW5kb3cgZnJhbWVSZWN0Rm9yQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLjBmLCAwLjBmLCBtYXhX
aWR0aCwgMTAwLjBmKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFza10uc2l6ZS53aWR0
aCk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIG1heFdpZHRoID0gY2Vp
bGYoW05TV2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4w
ZiwgbWF4V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVz
c10uc2l6ZS53aWR0aCk7CiAgICAgICAgIG1heFdpZHRoICs9IDUuMGY7CiAgICAgICAgIHdpbmRv
d0ZyYW1lLnNpemUud2lkdGggPSBzdGQ6Om1heChtYXhXaWR0aCwgd2luZG93RnJhbWUuc2l6ZS53
aWR0aCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDdjZmFh
ODdiNTU2ZWI0NzZiZjNjNWZlZDVlMDNlNjhmYmEyZGU0YmYuLmJlMzI2ZTdmOGU3MzI3Njk5NmRk
Y2U1YzkzMzJhZjQ2YjlhZjcxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
QEAgLTIxMyw2ICsyMTMsNyBAQAogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3NwaS9k
YXJ3aW4vZHlsZFNQSS5oPgogCiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTYwOTUsMTAgKzYwOTYs
NyBAQCAtIChEcmFnQXBwbGljYXRpb25GbGFncylhcHBsaWNhdGlvbkZsYWdzOihpZCA8TlNEcmFn
Z2luZ0luZm8+KWRyYWdnaW5nSW5mbwogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25I
YXNBdHRhY2hlZFNoZWV0OwogICAgIGlmIChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlXSA9
PSBzZWxmKQogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1tOU0FwcCBjdXJyZW50RXZl
bnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIGlmIChbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBmbGFncyB8PSBEcmFnQXBw
bGljYXRpb25Jc0NvcHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEcmFnQXBwbGlj
YXRpb25GbGFncz4oZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxk
UHJvY2Vzc01hYy5tbQppbmRleCAyZTY1ODA2ZGI1ZDY4ZjBhNGEyODJkMzgzYjk2ZTdiNDUxNmI5
MDQwLi5iMGM1NTRkNGRhNjIzZDk5YjAxNDM1ODY3YjIwNzcyNWI4Njc0NTM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtMzksNiArMzksNyBA
QAogI2ltcG9ydCA8cHdkLmg+CiAjaW1wb3J0IDxzdGRsaWIuaD4KICNpbXBvcnQgPHN5c2V4aXRz
Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KIAogI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCkBAIC0xOTcsMTAgKzE5OCw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjpzdG9w
TlNBcHBSdW5Mb29wKCkKICAgICBBU1NFUlQoW05TQXBwIGlzUnVubmluZ10pOwogICAgIFtOU0Fw
cCBzdG9wOm5pbF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0aW9u
RGVmaW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0
YW1wOjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBkYXRh
MjowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50ICpldmVudCA9
IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5l
ZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAu
MCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBkYXRhMjowXTsK
ICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07CiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggYTg1ZWZj
YWVlOWE1MmQ4YzA0NTY2NmQ5NGM0OTE4NzBjYTY4YTdkMy4uMmYxNThjMDNlM2JlMzgzOGMwNjNi
MjFiMjBmYzlmNjdjNzJiOWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJF
dmVudEZhY3RvcnkubW0KQEAgLTYzLDc4ICs2Myw2OSBAQCBzdGF0aWMgV2ViTW91c2VFdmVudDo6
QnV0dG9uIGN1cnJlbnRNb3VzZUJ1dHRvbigpCiAKIHN0YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0
b24gbW91c2VCdXR0b25Gb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3Vz
ZUV2ZW50OjpMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dl
ZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjsKLSAgICAg
ICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2Vi
TW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRC
dXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFn
Z2VkOgorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b247CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1v
dXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICBy
ZXR1cm4gV2ViTW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOwogI2lmIGRlZmluZWQoX19MUDY0X18p
Ci0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBl
UHJlc3N1cmU6CiAjZW5kaWYKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAg
Y2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRNb3VzZUJ1dHRv
bigpOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6
Ok5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBO
U0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgICAgICByZXR1cm4gY3VycmVudE1vdXNlQnV0dG9u
KCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9u
OwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KIAogc3RhdGljIFdlYkV2
ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0p
IHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3Vz
ZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01v
dXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2Fz
ZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3Vz
ZU1vdmU7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmln
aHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAg
IHJldHVybiBXZWJFdmVudDo6TW91c2VEb3duOwotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6
Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
VXA6Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlVXA7Ci0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRl
cmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gV2Vi
RXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEb3duOgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlRG93bjsKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAgICByZXR1cm4g
V2ViRXZlbnQ6Ok1vdXNlVXA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50
OjpNb3VzZU1vdmU7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBz
dGF0aWMgaW50IGNsaWNrQ291bnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewot
ICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVw
OgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5T
UmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAg
ICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsKLSAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246
CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
UmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKIH0KIAogc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50
ICpldmVudCkKQEAgLTE0MywyMiArMTM0LDE5IEBAIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBvaW50
Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAjaWYgZGVmaW5lZChfX0xQNjRfXykKICAgICBjYXNl
IE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICBjYXNlIE5TTGVmdE1vdXNl
RHJhZ2dlZDoKLSAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgY2FzZSBOU01vdXNlRW50ZXJl
ZDoKLSAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAg
Y2FzZSBOU090aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAg
ICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICBj
YXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICBj
YXNlIE5TU2Nyb2xsV2hlZWw6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdo
ZWVsOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6Z2xvYmFsUG9pbnQoW2V2ZW50IGxvY2F0aW9u
SW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJu
IE5TWmVyb1BvaW50OwpAQCAtMTcxLDIyICsxNTksMTkgQEAgc3RhdGljIE5TUG9pbnQgcG9pbnRG
b3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KQogI2lmIGRlZmluZWQo
X19MUDY0X18pCiAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0g
ICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAg
IGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgIGNhc2Ug
TlNNb3VzZU1vdmVkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICBjYXNlIE5TUmln
aHRNb3VzZURvd246Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNS
aWdodE1vdXNlVXA6Ci0gICAgY2FzZSBOU1Njcm9sbFdoZWVsOiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VE
cmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAg
IGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsOiB7CiAgICAgICAgIC8vIE5vdGU6IFRoaXMgd2lsbCBo
YXZlIGl0cyBvcmlnaW4gYXQgdGhlIGJvdHRvbSBsZWZ0IG9mIHRoZSB3aW5kb3cgdW5sZXNzIHdp
bmRvd1ZpZXcgaXMgZmxpcHBlZC4KICAgICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNv
b3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2lu
ZG93LgogICAgICAgICBOU1BvaW50IGxvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
OwpAQCAtMjQwLDEwICsyMjUsNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyB0ZXh0RnJvbUV2ZW50
KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxhY2VzU29mdFNwYWNlKQogewogICAgIGlmIChyZXBs
YWNlc1NvZnRTcGFjZSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0ZsYWdz
Q2hhbmdlZCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKICAgICByZXR1cm4gU3RyaW5nKFtldmVudCBjaGFyYWN0ZXJzXSk7CiB9CkBAIC0yNTIs
MTAgKzIzNCw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHVubW9kaWZpZWRUZXh0RnJvbUV2ZW50
KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxhY2VzU29mdFNwCiB7CiAgICAgaWYgKHJlcGxhY2Vz
U29mdFNwYWNlKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFu
Z2VkKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbZXZlbnQgdHlwZV0g
PT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygp
OwogICAgIHJldHVybiBTdHJpbmcoW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10p
OwogfQpAQCAtMjY0LDc0ICsyNDMsNjggQEAgc3RhdGljIGJvb2wgaXNLZXlwYWRFdmVudChOU0V2
ZW50KiBldmVudCkKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgaXMgdGhlIHR5cGUgb2YgZXZl
bnQgdGhhdCBoYXMgYSBrZXlDb2RlLgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNLZXlEb3duOgot
ICAgICAgICBjYXNlIE5TS2V5VXA6Ci0gICAgICAgIGNhc2UgTlNGbGFnc0NoYW5nZWQ6Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUZs
YWdzQ2hhbmdlZDoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAg
IGNhc2UgNzE6IC8vIENsZWFyCi0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3
NTogLy8gLwotICAgICAgICBjYXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAg
ICAgICAgY2FzZSA2OTogLy8gKwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBj
YXNlIDY1OiAvLyAuCi0gICAgICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8g
MQotICAgICAgICBjYXNlIDg0OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAg
Y2FzZSA4NjogLy8gNAotICAgICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8v
IDYKLSAgICAgICAgY2FzZSA4OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAg
IGNhc2UgOTI6IC8vIDkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2Fz
ZSA3MTogLy8gQ2xlYXIKKyAgICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAg
IGNhc2UgNjc6IC8vICoKKyAgICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAg
IGNhc2UgNzY6IC8vIEVudGVyCisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAK
KyAgICBjYXNlIDgzOiAvLyAxCisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMK
KyAgICBjYXNlIDg2OiAvLyA0CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYK
KyAgICBjYXNlIDg5OiAvLyA3CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwog
fQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNLZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0g
IT0gTlNGbGFnc0NoYW5nZWQpCi0gICAgICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNLZXlV
cDsKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQorICAg
ICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgLy8gRklY
TUU6IFRoaXMgbG9naWMgZmFpbHMgaWYgdGhlIHVzZXIgcHJlc3NlcyBib3RoIFNoaWZ0IGtleXMg
YXQgb25jZSwgZm9yIGV4YW1wbGU6CiAgICAgLy8gd2UgdHJlYXQgcmVsZWFzaW5nIG9uZSBvZiB0
aGVtIGFzIGtleURvd24uCiAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAg
Y2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAotICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1h
bmQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5k
S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU3OiAvLyBDYXBzbG9j
awotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FscGhhU2hp
ZnRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTY6IC8vIExlZnQg
U2hpZnQKLSAgICAgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgIHJldHVy
biAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKLSAgICAgICAgY2FzZSA2MTogLy8g
UmlnaHQgQWx0Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5T
QWx0ZXJuYXRlS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU5OiAv
LyBMZWZ0IEN0cmwKLSAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAgICAg
cmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSA9PSAwOwot
ICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNjM6IC8vIEZ1bmN0aW9uCi0gICAgICAgICAgICBy
ZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRnVuY3Rpb25LZXlNYXNrKSA9PSAwOwor
ICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1h
bmQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQpOworCisgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAgICAgcmV0
dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2Nr
KTsKKworICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKKyAgICBjYXNlIDYwOiAvLyBSaWdodCBT
aGlmdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnU2hpZnQpOworCisgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKKyAgICBjYXNlIDYx
OiAvLyBSaWdodCBBbHQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYg
TlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbik7CisKKyAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwK
KyAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKTsKKworICAgIGNhc2UgNjM6
IC8vIEZ1bmN0aW9uCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5T
RXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbik7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtNDg0LDEwICs0NTcsNyBAQCBXZWJL
ZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2
ZW50ICpldmVudCwgYm9vbCBoYQogICAgIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUgICAgICAg
PSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKICAgICBpbnQgbmF0aXZlVmlydHVh
bEtleUNvZGUgICAgICAgID0gW2V2ZW50IGtleUNvZGVdOwogICAgIGludCBtYWNDaGFyQ29kZSAg
ICAgICAgICAgICAgICAgPSBXS0dldE5TRXZlbnRLZXlDaGFyKGV2ZW50KTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBib29sIGF1dG9SZXBlYXQgICAgICAgICAgICAg
ICAgID0gKFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkgJiYgW2V2ZW50IGlzQVJlcGVh
dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgYm9vbCBhdXRvUmVwZWF0ICAg
ICAgICAgICAgICAgICA9IFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCAm
JiBbZXZlbnQgaXNBUmVwZWF0XTsKICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAg
ID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAg
ICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2
ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpp
bmRleCAzMmU2MzljNGQ5MTlhZDE2ZTlhOTQ4MmI5MzVjZWYwNDYzNzcxZmJhLi43NjNkOTA2MDU3
NTk5M2Q4Y2IwNzNjNmFhNGUwOTVjMGRiYjRhODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC05Myw2ICs5Myw3IEBACiAjaW1wb3J0IDxX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHN5cy9zdGF0Lmg+CiAjaW1wb3J0IDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQg
PFdlYktpdEFkZGl0aW9ucy9XZWJWaWV3SW1wbEluY2x1ZGVzLmg+CkBAIC02MjAsMTEgKzYyMSw4
IEBAIGJvb2wgV2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKCkKICAgICBpZiAoZGly
ZWN0aW9uICE9IE5TRGlyZWN0U2VsZWN0aW9uKSB7CiAgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0g
W05TQXBwIGN1cnJlbnRFdmVudF07CiAgICAgICAgIE5TRXZlbnQgKmtleWJvYXJkRXZlbnQgPSBu
aWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGlmIChbZXZl
bnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKQorICAgICAg
ICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8fCBbZXZlbnQgdHlwZV0g
PT0gTlNFdmVudFR5cGVLZXlVcCkKICAgICAgICAgICAgIGtleWJvYXJkRXZlbnQgPSBldmVudDsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbV9wYWdlLT5zZXRJbml0aWFs
Rm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4dCwga2V5Ym9hcmRFdmVudCAhPSBuaWws
IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCwgZmFsc2UsIGZhbHNlLCB7IH0p
LCBbXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsgfSk7CiAgICAgfQogICAgIHJldHVy
biB0cnVlOwpAQCAtODQ4LDEwICs4NDYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVDb250
ZW50SW5zZXRzSWZBdXRvbWF0aWMoKQogICAgICAgICByZXR1cm47CiAKICAgICBOU1dpbmRvdyAq
d2luZG93ID0gbV92aWV3LndpbmRvdzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBpZiAoKHdpbmRvdy5zdHlsZU1hc2sgJiBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5k
b3dNYXNrKSAmJiAhd2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50ICYmICFbbV92aWV3
IGVuY2xvc2luZ1Njcm9sbFZpZXddKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgaWYgKCh3aW5kb3cuc3R5bGVNYXNrICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRl
bnRWaWV3KSAmJiAhd2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50ICYmICFbbV92aWV3
IGVuY2xvc2luZ1Njcm9sbFZpZXddKSB7CiAgICAgICAgIE5TUmVjdCBjb250ZW50TGF5b3V0UmVj
dCA9IFttX3ZpZXcgY29udmVydFJlY3Q6d2luZG93LmNvbnRlbnRMYXlvdXRSZWN0IGZyb21WaWV3
Om5pbF07CiAgICAgICAgIENHRmxvYXQgbmV3VG9wQ29udGVudEluc2V0ID0gTlNNYXhZKGNvbnRl
bnRMYXlvdXRSZWN0KSAtIE5TSGVpZ2h0KGNvbnRlbnRMYXlvdXRSZWN0KTsKICAgICAgICAgaWYg
KG1fdG9wQ29udGVudEluc2V0ICE9IG5ld1RvcENvbnRlbnRJbnNldCkKQEAgLTEyMjgsMTAgKzEy
MjMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93KCkKIAogICAgICAg
ICBpZiAoIW1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7CiAgICAgICAgICAgICBhdXRvIHdl
YWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBh
ZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhh
bmRsZXI6W3dlYWtUaGlzXSAoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25p
dG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRXZl
bnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6W3dlYWtUaGlzXSAoTlNFdmVudCAqZmxhZ3NDaGFu
Z2VkRXZlbnQpIHsKICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAg
ICAgICAgIHdlYWtUaGlzLT5wb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2
ZW50KGZsYWdzQ2hhbmdlZEV2ZW50KTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmxhZ3NDaGFu
Z2VkRXZlbnQ7CkBAIC0xMzAyLDEyICsxMjk0LDkgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6aGl0
VGVzdChDR1BvaW50IHBvaW50KQogCiB2b2lkIFdlYlZpZXdJbXBsOjpwb3N0RmFrZU1vdXNlTW92
ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50KE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246
ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVh
bQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1v
dXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQogICAgICAgICBtb2RpZmllckZsYWdzOmZs
YWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1wOmZsYWdzQ2hhbmdlZEV2ZW50
LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93TnVtYmVyCiAg
ICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3Vy
ZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBOYXRpdmVXZWJNb3VzZUV2
ZW50IHdlYkV2ZW50KGZha2VFdmVudCwgbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgbV92aWV3
KTsKICAgICBtX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOwogfQpAQCAtMTY1Niwx
MCArMTY0NSw3IEBAIE5TVmlldyAqV2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5QbGFjZWhvbGRlclZp
ZXcoKQogTlNXaW5kb3cgKldlYlZpZXdJbXBsOjpjcmVhdGVGdWxsU2NyZWVuV2luZG93KCkKIHsK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgcmV0dXJuIFtbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazoo
TlNCb3JkZXJsZXNzV2luZG93TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzaykgYmFja2luZzpO
U0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSBhdXRvcmVsZWFzZV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIFtbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVd
IHN0eWxlTWFzazooTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIHwgTlNXaW5kb3dTdHlsZU1h
c2tSZXNpemFibGUpIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0
b3JlbGVhc2VdOwogI2Vsc2UKICAgICByZXR1cm4gbmlsOwogI2VuZGlmCkBAIC0yNjMxLDkgKzI2
MTcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZW1vdmVUcmFja2luZ1JlY3RzKE5TVHJhY2tpbmdS
ZWN0VGFnICp0YWdzLCBpbnQgY291bnQpCiB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1v
dXNlRXhpdGVkKCkKIHsKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJh
Y2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdp
dGhUeXBlOk5TTW91c2VFeGl0ZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBl
bnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFeGl0ZWQKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50
KDAsIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZp
ZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRpbWVzdGFtcDowCkBAIC0yNjQyLDE2ICsyNjI2LDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNl
bmRUb29sVGlwTW91c2VFeGl0ZWQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhOm1fdHJhY2tpbmdS
ZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFttX3RyYWNr
aW5nUmVjdE93bmVyIG1vdXNlRXhpdGVkOmZha2VFdmVudF07CiB9CiAKIHZvaWQgV2ViVmlld0lt
cGw6OnNlbmRUb29sVGlwTW91c2VFbnRlcmVkKCkKIHsKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMg
ZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVu
dCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFbnRlcmVkCisgICAgTlNFdmVudCAqZmFr
ZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNl
RW50ZXJlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTI2NjAsNyArMjY0MSw2IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFbnRlcmVkKCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JF
Q1RfVEFHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
c2VyRGF0YTptX3RyYWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKICAgICBbbV90cmFja2luZ1JlY3RPd25lciBtb3VzZUVudGVyZWQ6ZmFrZUV2ZW50XTsK
IH0KIApAQCAtMjgxNiwxMCArMjc5Niw3IEBAIHN0YXRpYyBXZWJDb3JlOjpEcmFnQXBwbGljYXRp
b25GbGFncyBhcHBsaWNhdGlvbkZsYWdzRm9yRHJhZyhOU1ZpZXcgKnZpZXcsIGlkIDxOCiAgICAg
ICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkhhc0F0dGFjaGVkU2hlZXQ7CiAg
ICAgaWYgKGRyYWdnaW5nSW5mby5kcmFnZ2luZ1NvdXJjZSA9PSB2aWV3KQogICAgICAgICBmbGFn
cyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW05TQXBwIGN1cnJlbnRFdmVudF0ubW9kaWZpZXJG
bGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBpZiAoW05TQXBwIGN1cnJlbnRFdmVudF0ubW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24pCiAgICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlv
bklzQ29weUtleURvd247CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkRyYWdBcHBs
aWNhdGlvbkZsYWdzPihmbGFncyk7CiAKQEAgLTMzNTksMTAgKzMzMzYsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzbWFydE1hZ25pZnlXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldExhc3RNb3VzZURvd25FdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50
LnR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNSaWdodE1vdXNlRG93
biB8fCBldmVudC50eXBlID09IE5TT3RoZXJNb3VzZURvd24pOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3du
IHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bik7CiAKICAgICBpZiAo
ZXZlbnQgPT0gbV9sYXN0TW91c2VEb3duRXZlbnQuZ2V0KCkpCiAgICAgICAgIHJldHVybjsKQEAg
LTMzOTksMTEgKzMzNzMsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9z
aXRpb24oKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpkb25lV2l0aEtleUV2ZW50KE5TRXZlbnQgKmV2
ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2
ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgaWYgKHRyeVBvc3RQcm9jZXNzUGx1Z2luQ29t
cGxleFRleHRJbnB1dEtleURvd24oZXZlbnQpKQogICAgICAgICByZXR1cm47CkBAIC0zNDc5LDEx
ICszNDUwLDggQEAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gV2ViVmlld0ltcGw6
OmNvbGxlY3RLZXlib2FyZExheW91dENvbW1hbmRzRm9yRXYKIHsKICAgICBWZWN0b3I8V2ViQ29y
ZTo6S2V5cHJlc3NDb21tYW5kPiBjb21tYW5kczsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChb
ZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1cm4gY29tbWFu
ZHM7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBBU1NFUlQoIW1fY29sbGVj
dGVkS2V5cHJlc3NDb21tYW5kcyk7CiAgICAgbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzID0g
JmNvbW1hbmRzOwpAQCAtMzg1OCwxMSArMzgyNiw4IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZv
cm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIC8vIFdlIGdldCBFc2Mga2V5IGhl
cmUgYWZ0ZXIgcHJvY2Vzc2luZyBlaXRoZXIgRXNjIG9yIENtZCtwZXJpb2QuIFRoZSBmb3JtZXIg
c3RhcnRzIGFzIGEga2V5RG93biwgYW5kIHRoZSBsYXR0ZXIgc3RhcnRzIGFzIGEga2V5IGVxdWl2
YWxlbnQsCiAgICAgLy8gYnV0IGJvdGggZ2V0IHRyYW5zZm9ybWVkIHRvIGEgY2FuY2VsT3BlcmF0
aW9uOiBjb21tYW5kLCBleGVjdXRpbmcgd2hpY2ggcGFzc2VzIGFuIEVzYyBrZXkgZXZlbnQgdG8g
LXBlcmZvcm1LZXlFcXVpdmFsZW50Oi4KICAgICAvLyBEb24ndCBpbnRlcnByZXQgdGhpcyBldmVu
dCBhZ2FpbiwgYXZvaWRpbmcgcmUtZW50cmFuY3kgYW5kIGluZmluaXRlIGxvb3BzLgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNJ
Z25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykpCisgICAg
aWYgKFtbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6
QCJcZSJdICYmICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Rl
dmljZUluZGVwZW5kZW50RmxhZ3NNYXNrKSkKICAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3dlYl9z
dXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKIAogICAgIGlmIChtX2tleURvd25FdmVudEJlaW5nUmVzZW50KSB7CiAgICAgICAgIC8v
IFdlYkNvcmUgaGFzIGFscmVhZHkgc2VlbiB0aGUgZXZlbnQsIG5vIG5lZWQgZm9yIGN1c3RvbSBw
cm9jZXNzaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KaW5kZXggZjA3ZDI3OWQ2MzdkMzBm
OGY1MDUzMTdkOGYwOTYwNTU3YTExZDJkMi4uOGYzN2Q0MjYxNTJiNjE3ZDU1YzkxNDg4MTUxMTRm
OGMzMzllN2M1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC0zOSw2ICszOSw3IEBA
CiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5oPgogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBv
cnQgPHNwYXduLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJh
dGlvbnMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogQGludGVyZmFjZSBXS1Bs
YWNlaG9sZGVyTW9kYWxXaW5kb3cgOiBOU1dpbmRvdyAKQEAgLTIzMSwxMCArMjMyLDcgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmJlZ2luTW9kYWwoKQogICAgIEFTU0VSVCghbV9wbGFjZWhv
bGRlcldpbmRvdyk7CiAgICAgQVNTRVJUKCFtX2FjdGl2YXRpb25PYnNlcnZlcik7CiAgICAgCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgbV9wbGFjZWhvbGRlcldpbmRv
dyA9IGFkb3B0TlMoW1tXS1BsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2lu
ZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgbV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0
TlMoW1tXS1BsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJs
ZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKICAgICBbbV9w
bGFjZWhvbGRlcldpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOwogICAgIAogICAgIG1f
YWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSBhZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVBY3RpdmVOb3RpZmlj
YXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IGE0ODM5NjRkOGYx
ZjIyNmQ0YWVjYzI3Y2NiMGYwNzYwNzFiN2JiZDEuLmJiNWFkN2MyMWU4MTBjYTM2NTY1ZWNjNzc3
ZDA2YWYzMWJiMDI4NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvTlNTaGFyaW5nU2VydmljZVNQSS5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50
ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTQ2MywxMCArNDY0LDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFjOjpz
aG93Q29udGV4dE1lbnVXaXRoSXRlbXMoY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW4KICAgICBb
W1dLTWVudVRhcmdldCBzaGFyZWRNZW51VGFyZ2V0XSBzZXRNZW51UHJveHk6dGhpc107CiAKICAg
ICBOU1BvaW50IG1lbnVMb2NhdGlvbiA9IFttX3dlYlZpZXcgY29udmVydFBvaW50Om1fY29udGV4
dC5tZW51TG9jYXRpb24oKSB0b1ZpZXc6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU1JpZ2h0TW91c2VVcCBsb2NhdGlvbjptZW51TG9jYXRpb24gbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDowIHdpbmRvd051bWJlcjptX3dlYlZpZXcud2luZG93LndpbmRvd051bWJlciBjb250
ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcCBsb2NhdGlvbjptZW51TG9jYXRp
b24gbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjptX3dlYlZpZXcud2lu
ZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBw
cmVzc3VyZTowXTsKICAgICBbTlNNZW51IHBvcFVwQ29udGV4dE1lbnU6bV9tZW51LmdldCgpIHdp
dGhFdmVudDpldmVudCBmb3JWaWV3Om1fd2ViVmlld107CiAKICAgICBpZiAobV9jb250ZXh0TWVu
dUxpc3RlbmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
Ykluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJ
bnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCAwYTc5OTEzNDZkMTVjY2ZhYzc3NDM1ZWYzMGVmOGRm
ODIyYWZhZTIzLi5mMDZiNTg0MmFjZDUzNGRmZTI0MTBmZWNhOWExYWRmYjZlYTk3Nzk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlN
YWMubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENv
bXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgog
CiBTT0ZUX0xJTktfU1RBR0VEX0ZSQU1FV09SSyhXZWJJbnNwZWN0b3JVSSwgUHJpdmF0ZUZyYW1l
d29ya3MsIEEpCkBAIC00OCwxMCArNDksNyBAQCBTT0ZUX0xJTktfU1RBR0VEX0ZSQU1FV09SSyhX
ZWJJbnNwZWN0b3JVSSwgUHJpdmF0ZUZyYW1ld29ya3MsIEEpCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLXN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHdpbmRvd1N0eWxlTWFzayA9IE5T
VGl0bGVkV2luZG93TWFzayB8IE5TQ2xvc2FibGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6YWJs
ZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVudFZp
ZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorc3RhdGljIGNvbnN0
IE5TVUludGVnZXIgd2luZG93U3R5bGVNYXNrID0gTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgfCBO
U1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6YWJs
ZSB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6
ZUNvbnRlbnRWaWV3OwogCiAvLyBUaGUgdGltZSB3ZSBrZWVwIG91ciBXZWJWaWV3IGFsaXZlIGJl
Zm9yZSBjbG9zaW5nIGl0IGFuZCBpdHMgcHJvY2Vzcy4KIC8vIFJldXNpbmcgdGhlIFdlYlZpZXcg
aW1wcm92ZXMgc3RhcnQgdXAgdGltZSBmb3IgcGVvcGxlIHRoYXQganVtcCBpbiBhbmQgb3V0IG9m
IHRoZSBJbnNwZWN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJQb3B1cE1lbnVQcm94eU1hYy5tbQppbmRleCBkMjlkMDg5MDUyYzg4N2FmYjg2NDIzODQ1NWFh
MTg4NGI0ZGQ0NjVjLi5jMjI5ZmJkMGI4YmViYmFmMTE1YzM1M2U4M2M3ZTA4NDY1MDYwMzQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJv
eHlNYWMubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgog
I2ltcG9ydCAiV2ViUG9wdXBJdGVtLmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNzQsMTkgKzc1LDEzIEBAIHZvaWQgV2Vi
UG9wdXBNZW51UHJveHlNYWM6OnBvcHVsYXRlKGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBp
dGVtcywgTlNGb250ICpmCiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlUGFyYWdyYXBo
U3R5bGU+IHBhcmFncmFwaFN0eWxlID0gYWRvcHROUyhbW05TUGFyYWdyYXBoU3R5bGUgZGVmYXVs
dFBhcmFncmFwaFN0eWxlXSBtdXRhYmxlQ29weV0pOwogICAgICAgICAgICAgTlNXcml0aW5nRGly
ZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24gPSBpdGVtc1tpXS5tX3RleHREaXJlY3Rpb24gPT0gTFRS
ID8gTlNXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1dyaXRpbmdEaXJlY3Rpb25SaWdo
dFRvTGVmdDsKICAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRCYXNlV3JpdGluZ0RpcmVj
dGlvbjp3cml0aW5nRGlyZWN0aW9uXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJl
Y3Rpb24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmlnaHRUZXh0QWxpZ25tZW50
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIFtwYXJhZ3JhcGhT
dHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNUZXh0QWxpZ25t
ZW50TGVmdCA6IE5TVGV4dEFsaWdubWVudFJpZ2h0XTsKICAgICAgICAgICAgIFJldGFpblB0cjxO
U011dGFibGVEaWN0aW9uYXJ5PiBhdHRyaWJ1dGVzID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRXaXRoT2JqZWN0c0FuZEtleXM6CiAgICAgICAgICAgICAgICAgcGFy
YWdyYXBoU3R5bGUuZ2V0KCksIE5TUGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lLAogICAgICAg
ICAgICAgICAgIGZvbnQsIE5TRm9udEF0dHJpYnV0ZU5hbWUsCiAgICAgICAgICAgICBuaWxdKTsK
ICAgICAgICAgICAgIGlmIChpdGVtc1tpXS5tX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgIFJldGFp
blB0cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVy
IGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TVGV4dFdyaXRpbmdE
aXJlY3Rpb25PdmVycmlkZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICAgICAgICAgIFJldGFpblB0cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRv
cHROUyhbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiAr
IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7CiAgICAgICAgICAgICAgICAgUmV0YWluUHRy
PE5TQXJyYXk+IHdyaXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0TlMoW1tOU0FycmF5IGFsbG9j
XSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxdKTsKICAg
ICAgICAgICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFycmF5
LmdldCgpIGZvcktleTpOU1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1lXTsKICAgICAgICAg
ICAgIH0KQEAgLTE1NCwxOCArMTQ5LDE1IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNo
b3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAKICAg
ICBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplOwogICAgIHN3aXRjaCAoZGF0YS5tZW51U2l6ZSkg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGNhc2UgV2ViQ29yZTo6
UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw6Ci0gICAgICAgIGNvbnRyb2xTaXpl
ID0gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9s
U2l6ZVJlZ3VsYXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51
U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1NtYWxs
Q29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVNtYWxsOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1l
bnVTaXplTWluaToKLSAgICAgICAgY29udHJvbFNpemUgPSBOU01pbmlDb250cm9sU2l6ZTsKKyAg
ICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplTWluaTsKICAgICAgICAgYnJlYWs7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAgICAgUmVmPFdlYlBvcHVwTWVu
dVByb3h5TWFjPiBwcm90ZWN0KCp0aGlzKTsKQEAgLTE4MywxMyArMTc1LDExIEBAIHZvaWQgV2Vi
UG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4
dERpcmVjdGlvbiB0ZXh0CiAgICAgaWYgKCFtX2NsaWVudC0+Y3VycmVudGx5UHJvY2Vzc2VkTW91
c2VEb3duRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIE5TRXZlbnQqIGluaXRpYXRpbmdOU0V2ZW50ID0gbV9jbGll
bnQtPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCktPm5hdGl2ZUV2ZW50KCk7Ci0g
ICAgaWYgKFtpbml0aWF0aW5nTlNFdmVudCB0eXBlXSAhPSBOU0xlZnRNb3VzZURvd24pCisgICAg
aWYgKFtpbml0aWF0aW5nTlNFdmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24p
CiAgICAgICAgIHJldHVybjsKIAotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W2luaXRpYXRp
bmdOU0V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nTlNFdmVudCBtb2RpZmllckZsYWdz
XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpb
aW5pdGlhdGluZ05TRXZlbnQgdGltZXN0YW1wXQpAQCAtMTk4LDEzICsxODgsMTQgQEAgdm9pZCBX
ZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBU
ZXh0RGlyZWN0aW9uIHRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXZlbnROdW1iZXI6W2luaXRpYXRpbmdOU0V2ZW50IGV2ZW50TnVtYmVyXQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDpbaW5pdGlhdGluZ05T
RXZlbnQgY2xpY2tDb3VudF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJlc3N1cmU6W2luaXRpYXRpbmdOU0V2ZW50IHByZXNzdXJlXV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0
YXJ0OllFU107CisgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
b2NhdGlvbjpbW21fd2ViVmlldyB3aW5kb3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91
c2VNb3ZlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW21f
d2ViVmlldyB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlv
bl1dCisgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50
IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ05TRXZlbnQgbW9k
aWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6
W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aW5kb3dOdW1iZXI6W2luaXRpYXRpbmdOU0V2ZW50IHdpbmRvd051bWJlcl0KQEAgLTIx
Miw3ICsyMDMsNiBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNv
bnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGlja0NvdW50OjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJl
c3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW05TQXBwIHBvc3RF
dmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0K
aW5kZXggNWVkZTU2ZWVlNDBhY2ZkYjk5MDExOWRlN2FjZTkxOGU2NzhiYzY2Ni4uMTI1MThkZjMz
NGNmM2ZkZDY1OGRmODkxOWMzMzYxYjA4NDJlMmRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5t
bQpAQCAtODAsNiArODAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XaGVlbEV2ZW50VGVzdFRyaWdn
ZXIuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL0N1
cnJlbnRUaW1lLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJh
dGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEyNzgsMzMgKzEyNzks
MjggQEAgdm9pZCBQREZQbHVnaW46OmRpZEV2YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRfdCwgY29u
c3QgV1RGOjpTdHJpbmcmKQogICAgIAogc3RhdGljIE5TVUludGVnZXIgbW9kaWZpZXJGbGFnc0Zy
b21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNTaGlmdEtl
eU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0NvbnRyb2xLZXlN
YXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQuYWx0S2V5KCkgPyBOU0FsdGVybmF0ZUtleU1hc2sg
OiAwKQotICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0NvbW1hbmRLZXlNYXNrIDogMCk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIChldmVudC5zaGlmdEtl
eSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IDogMCkKKyAgICAgICAgfCAoZXZlbnQuY29u
dHJvbEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgOiAwKQorICAgICAgICB8IChl
dmVudC5hbHRLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gOiAwKQorICAgICAgICB8
IChldmVudC5tZXRhS2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCA6IDApOwogfQog
ICAgIAogc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50
JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHlwZSkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUoKSkgewogICAgIGNhc2UgV2Vi
RXZlbnQ6OktleURvd246Ci0gICAgICAgIGV2ZW50VHlwZSA9IE5TS2V5RG93bjsKKyAgICAgICAg
ZXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlEb3duOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICBjYXNlIFdlYkV2ZW50OjpLZXlVcDoKLSAgICAgICAgZXZlbnRUeXBlID0gTlNLZXlVcDsKKyAg
ICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlVcDsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VEb3duOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19j
YXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2Fz
ZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNM
ZWZ0TW91c2VEb3duOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91
c2VEb3duOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VF
dmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VE
b3duOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMTMxMiwxMCArMTMwOCwxMCBAQCBzdGF0aWMgYm9vbCBnZXRFdmVu
dFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZl
bnRUeQogICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlVXA6CiAgICAgICAgIHN3aXRjaCAoc3RhdGlj
X2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBj
YXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBO
U0xlZnRNb3VzZVVwOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91
c2VVcDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZl
bnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlVXA7
CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTMyMywxMyArMTMxOSwxMyBAQCBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVG
cm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQog
ICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlTW92ZToKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2Fz
dDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2Ug
V2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVm
dE1vdXNlRHJhZ2dlZDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1v
dXNlRHJhZ2dlZDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1v
dXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1v
dXNlRHJhZ2dlZDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpOb0J1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTW91c2VNb3ZlZDsK
KyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTW91c2VNb3ZlZDsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMTMzNyw3ICsxMzMzLDYgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdl
YkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBk
ZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogfQogICAgIAogTlNFdmVudCAqUERGUGx1Z2luOjpuc0V2ZW50Rm9yV2ViTW91
c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5v
dGF0aW9uLm1tCmluZGV4IDZjNjBiZGRlOTVmZGQzMTdmNmI3MTRlMWY0NGY2ZWViMmYzM2QzMGIu
LjYwMzFjNTkwZGMyMzFlY2NmZWVhMjBhMDQ3Zjg1Njk2Y2E1ZDhhM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW5UZXh0QW5ub3RhdGlvbi5tbQpAQCAtNDQsNiArNDQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9I
VE1MVGV4dEFyZWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRp
YmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01
MywyMSArNTQsMTggQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogc3RhdGljIGNvbnN0
IFN0cmluZyBjc3NBbGlnbm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudChOU1RleHRBbGlnbm1l
bnQgYWxpZ25tZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IHN3aXRjaCAoYWxpZ25tZW50KSB7Ci0gICAgY2FzZSBOU0xlZnRUZXh0QWxpZ25tZW50OgorICAg
IGNhc2UgTlNUZXh0QWxpZ25tZW50TGVmdDoKICAgICAgICAgcmV0dXJuICJsZWZ0IjsKLSAgICBj
YXNlIE5TUmlnaHRUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50UmlnaHQ6
CiAgICAgICAgIHJldHVybiAicmlnaHQiOwotICAgIGNhc2UgTlNDZW50ZXJUZXh0QWxpZ25tZW50
OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50Q2VudGVyOgogICAgICAgICByZXR1cm4gImNlbnRl
ciI7Ci0gICAgY2FzZSBOU0p1c3RpZmllZFRleHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRB
bGlnbm1lbnRKdXN0aWZpZWQ6CiAgICAgICAgIHJldHVybiAianVzdGlmeSI7Ci0gICAgY2FzZSBO
U05hdHVyYWxUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50TmF0dXJhbDoK
ICAgICAgICAgcmV0dXJuICItd2Via2l0LXN0YXJ0IjsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFN0cmlu
ZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXggYTM2ZjNiMzIzYWI5
MTY1MTQ3N2JkM2M3YmUyOGM2YTIzZGU5YjE3ZC4uNjI2ZTQzNmM2YWM0ZmU2YjlhN2ViNTNjMmQz
NTZiZjc5NmZmNDQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC00Niw2
ICs0Niw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1N0cmluZ1RydW5jYXRvci5oPgogI2ltcG9ydCA8
V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNjMsMTAg
KzY0LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBjb252ZXJ0SW1hZ2VU
b0JpdG1hcChOU0ltYWdlICppbWFnZSwgY29uc3QgSW4KICAgICBSZXRhaW5QdHI8TlNHcmFwaGlj
c0NvbnRleHQ+IHNhdmVkQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4
dF07CiAKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3JhcGhp
Y3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Z3JhcGhpY3NDb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOllFU11dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgYml0
bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFwLT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0Ok5T
WmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3Bl
Y3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCkud2lk
dGgoKSwgYml0bWFwLT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0
aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEgcmVzcGVjdEZs
aXBwZWQ6WUVTIGhpbnRzOm5pbF07CiAKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVu
dENvbnRleHQ6c2F2ZWRDb250ZXh0LmdldCgpXTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294118</attachid>
            <date>2016-11-07 19:06:38 -0800</date>
            <delta_ts>2016-11-07 19:11:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107190230.patch</filename>
            <type>text/plain</type>
            <size>159012</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KaW5kZXggYTZkNzgz
MjhlOWZlNjI3ZWYxNGFmYzljMGJkMGY2NjllYjI1NGQwYy4uNzI4ZDM0NGE5NDUwMzRiOWM3YTIw
ODVmNDU2M2RjMWJiNjk2NGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29y
TWFjLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgiCiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL1N0
ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgV2ViQ29yZUN1cnNvckJ1bmRsZSA6IE5TT2JqZWN0IHsg
fQogQGVuZApAQCAtNjQsMTAgKzY1LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0N1cnNvcj4gY3Jl
YXRlQ3VzdG9tQ3Vyc29yKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGhvdFMKICAgICAg
ICAgTlNSZWN0IGZyb21SZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBpbWFnZS0+d2lkdGgoKSwgaW1h
Z2UtPmhlaWdodCgpKTsKIAogICAgICAgICBbZXhwYW5kZWRJbWFnZSBsb2NrRm9jdXNdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbnNJbWFnZSBkcmF3SW5S
ZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VP
dmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
bnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07CiAgICAgICAgIFtleHBh
bmRlZEltYWdlIHVubG9ja0ZvY3VzXTsKIAogICAgICAgICByZXR1cm4gYWRvcHROUyhbW05TQ3Vy
c29yIGFsbG9jXSBpbml0V2l0aEltYWdlOmV4cGFuZGVkSW1hZ2UuZ2V0KCkgaG90U3BvdDpob3RT
cG90XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRl
eCA2ODI0NmJlZmE1MjNlZGZmM2I2MDVjNjAxMTg3MTlkNDcyOThkMDliLi4wZmY0MjAyMDBjYzhi
ZDM0ODdlNDU2Zjc3OTBlZGVlOTVlOGY1NDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgIlN0cmluZ1Ry
dW5jYXRvci5oIgogI2ltcG9ydCAiVGV4dFJ1bi5oIgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03NSwxMCArNzYsNyBAQCBSZXRhaW5QdHI8
TlNJbWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0cjxOU0ltYWdlPiBp
bWFnZSwgZmxvYXQgZAogICAgIFJldGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2ZWRJbWFnZSA9IGFk
b3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W2ltYWdlLmdldCgpIHNpemVdXSk7
CiAgICAgCiAgICAgW2Rpc3NvbHZlZEltYWdlLmdldCgpIGxvY2tGb2N1c107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5T
WmVyb1BvaW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBb
aW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGVDb3B5IGZyYWN0aW9uOmRl
bHRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbaW1hZ2UuZ2V0KCkgZHJh
d0F0UG9pbnQ6TlNaZXJvUG9pbnQgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbaW1hZ2Ugc2l6
ZV0ud2lkdGgsIFtpbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3Bl
cmF0aW9uQ29weSBmcmFjdGlvbjpkZWx0YV07CiAgICAgW2Rpc3NvbHZlZEltYWdlLmdldCgpIHVu
bG9ja0ZvY3VzXTsKIAogICAgIHJldHVybiBkaXNzb2x2ZWRJbWFnZTsKQEAgLTExOSwxMCArMTE3
LDggQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSog
aW1hZ2UsIEltYWdlT3JpZW50YXRpb25EZXNjcmkKICAgICAgICAgICAgIFtjb2NvYVRyYW5zZm9y
bS5nZXQoKSBzZXRUcmFuc2Zvcm1TdHJ1Y3Q6KihOU0FmZmluZVRyYW5zZm9ybVN0cnVjdCopJnRy
YW5zZm9ybV07CiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgY29uY2F0XTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW2ltYWdlLT5z
bmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3Qo
MCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3NpdGVT
b3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6ZGVzdFJlY3Qg
ZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIG9w
ZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBdOwor
CiAgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICAgICAgICAgIHJldHVybiByb3RhdGVkRHJhZ0ltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9FdmVudExvb3BNYWMubW0KaW5kZXggYWYwYTM5OTJiNjZlOWQ2ZmZjMDE3NzEyNDg1
NzYyNmEwMDVhNWU5MC4uYjljYzU0NWE5ODQ5MzRkNTQ2MGRkYmRmNWJkNGVjM2VhNzE1OTIyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tCkBAIC0yNSwx
NiArMjUsMTQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5o
IgorI2luY2x1ZGUgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRXZlbnRMb29wOjpjeWNsZSgpCiB7CiAgICAg
W05TQXBwIHNldFdpbmRvd3NOZWVkVXBkYXRlOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgW05TQXBwIHNlbmRFdmVudDpbTlNBcHAgbmV4dEV2ZW50TWF0Y2hp
bmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVy
dmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVT
XV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW05TQXBwIHNlbmRFdmVudDpb
TlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrQW55IHVudGlsRGF0ZTpbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1
bkxvb3BNb2RlIGRlcXVldWU6WUVTXV07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggYTVkZjM0
NzRjMzExYzZhNzU2MWQ3ZjRkNDQ1NTMxNGFhMDRkMDA3MC4uMWM0ZTNjMTk4MDMxY2ZmYTZmYTli
NjY1MjcxYWJmYTQ3MzJkNzYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW0KQEAgLTU1LDYgKzU1LDcgQEAKICNpbXBvcnQgIm1hcmt1cC5oIgogI2lt
cG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW1wb3J0IDx3dGYvdW5pY29kZS9DaGFyYWN0
ZXJOYW1lcy5oPgogCkBAIC02NTMsMTEgKzY1NCw4IEBAIHZvaWQgUGFzdGVib2FyZDo6c2V0RHJh
Z0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGxvY2F0aW9uKQogICAg
IC8vIEhhY2s6IFdlIG11c3QgcG9zdCBhbiBldmVudCB0byB3YWtlIHVwIHRoZSBOU0RyYWdNYW5h
Z2VyLCB3aGljaCBpcyBzaXR0aW5nIGluIGEgbmV4dEV2ZW50IGNhbGwKICAgICAvLyB1cCB0aGUg
c3RhY2sgZnJvbSB1cyBiZWNhdXNlIHRoZSBDb3JlRm91bmRhdGlvbiBkcmFnIG1hbmFnZXIgZG9l
cyBub3QgdXNlIHRoZSBydW4gbG9vcCBieSBpdHNlbGYuCiAgICAgLy8gVGhpcyBpcyB0aGUgbW9z
dCBpbm5vY3VvdXMgZXZlbnQgdG8gdXNlLCBwZXIgS3Jpc3RlbiBGb3JzdGVyLgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpOU1plcm9Qb2ludAorICAg
IE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TW91c2VNb3ZlZCBsb2NhdGlvbjpOU1plcm9Qb2ludAogICAgICAgICBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
W05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OllFU107CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bQppbmRleCBkMzRkNmVhZTk0OGY3YWZjYmFiMzMwMzE0ZmRjYmE3OGU5ZTQwMGI4Li4wZDJlMzE4
ZWNkZmIxMzA0MjM4NzdhNzMyZDgyZjg2OTE5NzY5N2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCkBAIC01Miwy
NyArNTIsMjQgQEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpl
dmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewogI2lmIGRlZmluZWQoX19MUDY0
X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEwMDMKLSAgICAgICAg
Y2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToK
ICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNl
IE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAg
ICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAg
ICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURy
YWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TU2Nyb2xsV2hlZWw6Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gZ2xvYmFsUG9pbnQoW2V2
ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICByZXR1cm4geyAwLCAwIH07CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVy
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsOgorICAgICAgICByZXR1
cm4gZ2xvYmFsUG9pbnQoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHsgMCwgMCB9OwogICAgIH0KIH0KIApAQCAt
ODAsMzMgKzc3LDMwIEBAIHN0YXRpYyBJbnRQb2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2
ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsK
ICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQg
Pj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAgICBjYXNlIE5T
RXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2Fz
ZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAg
Y2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Nj
cm9sbFdoZWVsOiB7Ci0gICAgICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBpdHMgb3Jp
Z2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dWaWV3IGlz
IGZsaXBwZWQuCi0gICAgICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0
ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCi0g
ICAgICAgICAgICBOU1BvaW50IGxvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOwot
ICAgICAgICAgICAgaWYgKHdpbmRvd1ZpZXcpCi0gICAgICAgICAgICAgICAgbG9jYXRpb24gPSBb
d2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9jYXRpb24gZnJvbVZpZXc6bmlsXTsKLSAgICAgICAg
ICAgIHJldHVybiBJbnRQb2ludChsb2NhdGlvbik7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBJbnRQ
b2ludCgpOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVTY3JvbGxXaGVlbDogeworICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBp
dHMgb3JpZ2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dW
aWV3IGlzIGZsaXBwZWQuCisgICAgICAgIC8vIEluIHRob3NlIGNhc2VzLCB0aGUgWSBjb29yZGlu
YXRlIGdldHMgZmxpcHBlZCBieSBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdy4K
KyAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKKyAg
ICAgICAgaWYgKHdpbmRvd1ZpZXcpCisgICAgICAgICAgICBsb2NhdGlvbiA9IFt3aW5kb3dWaWV3
IGNvbnZlcnRQb2ludDpsb2NhdGlvbiBmcm9tVmlldzpuaWxdOworICAgICAgICByZXR1cm4gSW50
UG9pbnQobG9jYXRpb24pOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gSW50
UG9pbnQoKTsKICAgICB9CiB9CiAKQEAgLTExNCw3MiArMTA4LDYzIEBAIHN0YXRpYyBNb3VzZUJ1
dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1
cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgcmV0dXJuIExlZnRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFJpZ2h0QnV0dG9uOwotICAgICAg
ICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBNaWRk
bGVCdXR0b247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICByZXR1cm4gTm9CdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gTGVmdEJ1dHRvbjsKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJp
Z2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAg
ICAgIHJldHVybiBSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURv
d246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBNaWRkbGVCdXR0b247CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIE5vQnV0dG9uOwogICAgIH0KIH0KIAogc3RhdGljIFBs
YXRmb3JtRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVGb3JFdmVudChOU0V2ZW50KiBldmVudCkK
IHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2Fz
ZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBj
YXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAg
ICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZDsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3du
OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUmVsZWFzZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgICAgICByZXR1cm4gUGxhdGZvcm1F
dmVudDo6TW91c2VQcmVzc2VkOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlVXA6CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOwog
ICAgIH0KIH0KIAogc3RhdGljIGludCBjbGlja0NvdW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQp
CiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRHJhZ2dlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAg
IHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURy
YWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dl
ZDoKKyAgICAgICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiB9CiAKQEAgLTQ5NywyOCArNDgyLDI4IEBAIFN0cmluZyBr
ZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkgewogICAgICAgICBzd2l0Y2ggKFtl
dmVudCBrZXlDb2RlXSkgewotICAgICAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAot
ICAgICAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFN0cmluZygiTWV0YSIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1
NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDYXBzTG9jayIp
OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAot
ICAgICAgICAgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgICAgICByZXR1
cm4gU3RyaW5nKCJTaGlmdCIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1
ODogLy8gTGVmdCBBbHQKLSAgICAgICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAg
ICAgICAgICAgIHJldHVybiBTdHJpbmcoIkFsdCIpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgICAgICBjYXNlIDYyOiAvLyBSaWdo
dCBDdHJsCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ29udHJvbCIpOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAg
ICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAorICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0
IENvbW1hbmQKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEiKTsKKworICAgICAgICBj
YXNlIDU3OiAvLyBDYXBzbG9jaworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2si
KTsKKworICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgICAgIGNhc2UgNjA6IC8v
IFJpZ2h0IFNoaWZ0CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJTaGlmdCIpOworCisgICAg
ICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAor
ICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisKKyAgICAgICAgY2FzZSA1OTogLy8g
TGVmdCBDdHJsCisgICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKKyAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
ICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTUzNCw0NCArNTE5LDM4IEBAIHN0YXRpYyBib29s
IGlzS2V5cGFkRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlz
IGlzIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIGEga2V5Q29kZS4KICAgICBzd2l0Y2ggKFtl
dmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBjYXNlIE5TS2V5RG93bjoKLSAgICAgICAgY2FzZSBOU0tleVVwOgotICAgICAgICBjYXNlIE5T
RmxhZ3NDaGFuZ2VkOgotICAgICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUtleURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQ6CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNOdW1lcmlj
UGFkS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAg
Y2FzZSA3MTogLy8gQ2xlYXIKLSAgICAgICAgY2FzZSA4MTogLy8gPQotICAgICAgICBjYXNlIDc1
OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6IC8vICoKLSAgICAgICAgY2FzZSA3ODogLy8gLQotICAg
ICAgICBjYXNlIDY5OiAvLyArCi0gICAgICAgIGNhc2UgNzY6IC8vIEVudGVyCi0gICAgICAgIGNh
c2UgNjU6IC8vIC4KLSAgICAgICAgY2FzZSA4MjogLy8gMAotICAgICAgICBjYXNlIDgzOiAvLyAx
Ci0gICAgICAgIGNhc2UgODQ6IC8vIDIKLSAgICAgICAgY2FzZSA4NTogLy8gMwotICAgICAgICBj
YXNlIDg2OiAvLyA0Ci0gICAgICAgIGNhc2UgODc6IC8vIDUKLSAgICAgICAgY2FzZSA4ODogLy8g
NgotICAgICAgICBjYXNlIDg5OiAvLyA3Ci0gICAgICAgIGNhc2UgOTE6IC8vIDgKLSAgICAgICAg
Y2FzZSA5MjogLy8gOQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIH0KKyAgICBjYXNl
IDcxOiAvLyBDbGVhcgorICAgIGNhc2UgODE6IC8vID0KKyAgICBjYXNlIDc1OiAvLyAvCisgICAg
Y2FzZSA2NzogLy8gKgorICAgIGNhc2UgNzg6IC8vIC0KKyAgICBjYXNlIDY5OiAvLyArCisgICAg
Y2FzZSA3NjogLy8gRW50ZXIKKyAgICBjYXNlIDY1OiAvLyAuCisgICAgY2FzZSA4MjogLy8gMAor
ICAgIGNhc2UgODM6IC8vIDEKKyAgICBjYXNlIDg0OiAvLyAyCisgICAgY2FzZSA4NTogLy8gMwor
ICAgIGNhc2UgODY6IC8vIDQKKyAgICBjYXNlIDg3OiAvLyA1CisgICAgY2FzZSA4ODogLy8gNgor
ICAgIGNhc2UgODk6IC8vIDcKKyAgICBjYXNlIDkxOiAvLyA4CisgICAgY2FzZSA5MjogLy8gOQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiB9
CkBAIC01ODUsMTAgKzU2NCw3IEBAIGludCB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KE5TRXZl
bnQqIGV2ZW50KQogICAgIC8vIDIuIEtleXMgZm9yIHdoaWNoIHRoZXJlIGlzIG5vIGtub3duIE1h
YyB2aXJ0dWFsIGtleSBjb2RlcywgbGlrZSBQcmludFNjcmVlbi4KICAgICAvLyAzLiBDZXJ0YWlu
IHB1bmN0dWF0aW9uIGtleXMuIE9uIFdpbmRvd3MsIHRoZXNlIGFyZSBhbHNvIHJlbWFwcGVkIGRl
cGVuZGluZyBvbiBjdXJyZW50IGtleWJvYXJkIGxheW91dCwKICAgICAvLyAgICBidXQgc2VlIGNv
bW1lbnQgaW4gd2luZG93c0tleUNvZGVGb3JDaGFyQ29kZSgpLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVu
dCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKCFpc0tleXBhZEV2ZW50KGV2ZW50KSAm
JiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNFdmVudFR5cGVLZXlVcCkpIHsKICAgICAgICAgLy8gQ21kIHN3aXRjaGVzIFJvbWFuIGxldHRl
cnMgZm9yIER2b3Jhay1RV0VSVFkgbGF5b3V0LCBzbyB0cnkgbW9kaWZpZWQgY2hhcmFjdGVycyBm
aXJzdC4KICAgICAgICAgTlNTdHJpbmcqIHMgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAgICAgICAg
IGNvZGUgPSBbcyBsZW5ndGhdID4gMCA/IHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoW3MgY2hh
cmFjdGVyQXRJbmRleDowXSkgOiAwOwpAQCAtNjQ2LDM1ICs2MjIsMzIgQEAgZG91YmxlIGV2ZW50
VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2ZW50KQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
aXNLZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpCi0gICAg
ICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcDsKKyAgICBpZiAoW2V2ZW50IHR5cGVd
ICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgLy8gRklYTUU6IFRoaXMgbG9naWMgZmFpbHMgaWYg
dGhlIHVzZXIgcHJlc3NlcyBib3RoIFNoaWZ0IGtleXMgYXQgb25jZSwgZm9yIGV4YW1wbGU6CiAg
ICAgLy8gd2UgdHJlYXQgcmVsZWFzaW5nIG9uZSBvZiB0aGVtIGFzIGtleURvd24uCiAgICAgc3dp
dGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFu
ZAotICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAgICAgICAgICAgIHJldHVybiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykgPT0gMDsKLSAgICAgICAg
ICAgIAotICAgICAgICBjYXNlIDU3OiAvLyBDYXBzbG9jawotICAgICAgICAgICAgcmV0dXJuIChb
ZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FscGhhU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgY2FzZSA2MDog
Ly8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1ODog
Ly8gTGVmdCBBbHQKLSAgICAgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0gICAgICAgICAgICBy
ZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgPT0gMDsK
LSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKLSAgICAgICAgY2Fz
ZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgNjM6IC8vIEZ1bmN0aW9uCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRnVuY3Rpb25LZXlNYXNrKSA9PSAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAgICBjYXNlIDU1OiAvLyBMZWZ0
IENvbW1hbmQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQpOworCisgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Nh
cHNMb2NrKTsKKworICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKKyAgICBjYXNlIDYwOiAvLyBS
aWdodCBTaGlmdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnU2hpZnQpOworCisgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKKyAgICBj
YXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbik7CisKKyAgICBjYXNlIDU5OiAvLyBMZWZ0
IEN0cmwKKyAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKTsKKworICAgIGNh
c2UgNjM6IC8vIEZ1bmN0aW9uCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbik7CiAgICAgfQogICAgIHJldHVybiBmYWxz
ZTsKIH0KQEAgLTgxOCwxMCArNzkxLDcgQEAgcHVibGljOgogICAgICAgICBtX2tleSA9IGtleUZv
cktleUV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9jb2RlID0gY29kZUZvcktleUV2ZW50KGV2ZW50
KTsKICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktl
eUV2ZW50KGV2ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkICYmIFtldmVu
dCBpc0FSZXBlYXRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBtX2F1
dG9SZXBlYXQgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgJiYgW2V2
ZW50IGlzQVJlcGVhdF07CiAgICAgICAgIG1faXNLZXlwYWQgPSBpc0tleXBhZEV2ZW50KGV2ZW50
KTsKICAgICAgICAgbV9pc1N5c3RlbUtleSA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlz
IGZhbHNlIG9uIHRoZSBNYWMuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCA5MWNiZWRkMGNkYTA3MDY1YjNiZjNmMTcwMTU4ZjFk
NjI3NzMxODNmLi42NGQ4NTRhOGU4NGM4NjJhOTBhYmQ0NTc1Y2U2M2ViZWU0ZDJlZTMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBA
IC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4K
KyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAog
Ly8gRklYTUU6IFRoZXJlIGFyZSByZXBhaW50aW5nIHByb2JsZW1zIGR1ZSB0byBBcXVhIHNjcm9s
bCBiYXIgYnV0dG9ucycgdmlzdWFsIG92ZXJmbG93LgogCkBAIC0xMzksMTggKzE0MCwxNSBAQCBz
dGF0aWMgU2Nyb2xsYmFyQnV0dG9uc1BsYWNlbWVudCBnQnV0dG9uUGxhY2VtZW50ID0gU2Nyb2xs
YmFyQnV0dG9uc0RvdWJsZUVuZDsKIAogc3RhdGljIE5TQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29u
dHJvbFNpemVUb05TQ29udHJvbFNpemUoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUp
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChjb250
cm9sU2l6ZSkgewogICAgIGNhc2UgUmVndWxhclNjcm9sbGJhcjoKLSAgICAgICAgcmV0dXJuIE5T
UmVndWxhckNvbnRyb2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7
CiAgICAgY2FzZSBTbWFsbFNjcm9sbGJhcjoKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1
bGFyOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpkaWRDcmVhdGVTY3JvbGxlckltcChT
Y3JvbGxiYXImIHNjcm9sbGJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9UaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQppbmRleCAwMjQ3MmM5YTY5MDhjNmZkYjAzODI4MWZhYWE4MzhkZmI1MTVlNGQ1Li5iMTAwNDFi
NWViMTcyZjQzNzJjNDAwNTViMTY5OTdjMTM5NGMyM2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tP
YmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0
IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogc3RhdGljIE5TUmVjdCBmb2N1c1JpbmdDbGlwUmVjdDsKIHN0
YXRpYyBCT09MIHRoZW1lV2luZG93SGFzS2V5QXBwZWFyYW5jZTsKQEAgLTY3LDExICs2OCw4IEBA
IC0gKE5TV2luZG93ICopd2luZG93CiB7CiAgICAgLy8gVXNpbmcgZGVmZXI6WUVTIHByZXZlbnRz
IHVzIGZyb20gd2FzdGluZyBhbnkgd2luZG93IHNlcnZlciByZXNvdXJjZXMgZm9yIHRoaXMgd2lu
ZG93LCBzaW5jZSB3ZSdyZSBub3QgYWN0dWFsbHkKICAgICAvLyBnb2luZyB0byBkcmF3IGludG8g
aXQuIFRoZSBvdGhlciBhcmd1bWVudHMgbWF0Y2ggd2hhdCB5b3UgZ2V0IHdoZW4gY2FsbGluZyAt
W05TV2luZG93IGluaXRdLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IHN0YXRpYyBXZWJDb3JlVGhlbWVXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZVRoZW1lV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMTAwLCAxMDAsIDEwMCwgMTAw
KQotICAgICAgICBzdHlsZU1hc2s6TlNUaXRsZWRXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CiAgICAgcmV0dXJuIHdpbmRvdzsKIH0KIApAQCAt
MTQ0LDE1ICsxNDIsMTIgQEAgVGhlbWUqIHBsYXRmb3JtVGhlbWUoKQogCiBzdGF0aWMgTlNDb250
cm9sU2l6ZSBjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgRm9udENhc2NhZGUmIGZvbnQpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50IGZvbnRTaXplID0gZm9u
dC5waXhlbFNpemUoKTsKICAgICBpZiAoZm9udFNpemUgPj0gMTYpCi0gICAgICAgIHJldHVybiBO
U1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFy
OwogICAgIGlmIChmb250U2l6ZSA+PSAxMSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJu
IE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbU5TQ29u
dHJvbFNpemUoTlNDb250cm9sU2l6ZSBuc0NvbnRyb2xTaXplLCBjb25zdCBMZW5ndGhTaXplJiB6
b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yLCBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+
JiBzaXplcykKQEAgLTE3NSwxNiArMTcwLDEzIEBAIHN0YXRpYyBMZW5ndGhTaXplIHNpemVGcm9t
Rm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkCiAK
IHN0YXRpYyBDb250cm9sU2l6ZSBjb250cm9sU2l6ZUZyb21QaXhlbFNpemUoY29uc3Qgc3RkOjph
cnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNpemUmIG1pblpvb21lZFNpemUsIGZs
b2F0IHpvb21GYWN0b3IpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05T
UmVndWxhckNvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUZhY3RvcikgJiYKLSAgICAgICAgbWlu
Wm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNv
bnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNSZWd1
bGFyQ29udHJvbFNpemU7Ci0gICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3Ip
ICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50Pihz
aXplc1tOU1NtYWxsQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUZhY3RvcikpCi0gICAgICAg
IHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXpl
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChtaW5ab29tZWRTaXplLndp
ZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0ud2lk
dGgoKSAqIHpvb21GYWN0b3IpCisgICAgICAgICYmIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0g
c3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6
b29tRmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOworICAgIGlm
IChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRy
b2xTaXplU21hbGxdLndpZHRoKCkgKiB6b29tRmFjdG9yKQorICAgICAgICAmJiBtaW5ab29tZWRT
aXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxs
XS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNt
YWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgc2V0
Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBz
aXplcywgY29uc3QgSW50U2l6ZSYgbWluWm9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikKQEAg
LTQ4MCwxMCArNDcyLDcgQEAgc3RhdGljIHZvaWQgc2V0VXBCdXR0b25DZWxsKE5TQnV0dG9uQ2Vs
bCAqY2VsbCwgQ29udHJvbFBhcnQgcGFydCwgY29uc3QgQ29udHJvbFMKIHsKICAgICAvLyBTZXQg
dGhlIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYgdGhlIHJlY3RhbmdsZSB3ZSdyZSBwYWludGluZyBp
bnRvLgogICAgIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzID0gYnV0dG9uU2l6
ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAocGFydCA9
PSBTcXVhcmVCdXR0b25QYXJ0IHx8IHpvb21lZFNpemUuaGVpZ2h0KCkgPiBidXR0b25TaXplcygp
W05TUmVndWxhckNvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAocGFydCA9PSBTcXVhcmVCdXR0b25QYXJ0IHx8
IHpvb21lZFNpemUuaGVpZ2h0KCkgPiBidXR0b25TaXplcygpW05TQ29udHJvbFNpemVSZWd1bGFy
XS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpIHsKICAgICAgICAgLy8gVXNlIHRoZSBzcXVhcmUgYnV0
dG9uCiAgICAgICAgIGlmIChbY2VsbCBiZXplbFN0eWxlXSAhPSBOU1NoYWRvd2xlc3NTcXVhcmVC
ZXplbFN0eWxlKQogICAgICAgICAgICAgW2NlbGwgc2V0QmV6ZWxTdHlsZTpOU1NoYWRvd2xlc3NT
cXVhcmVCZXplbFN0eWxlXTsKQEAgLTU3OSwxNSArNTY4LDEyIEBAIHN0YXRpYyBjb25zdCBzdGQ6
OmFycmF5PEludFNpemUsIDM+JiBzdGVwcGVyU2l6ZXMoKQogLy8gc2hvdWxkIGJlIGVxdWFsIHRv
IG9yIGxlc3MgdGhhbiB0aGUgY29ycmVzcG9uZGluZyB0ZXh0IGZpZWxkIGhlaWdodCwKIHN0YXRp
YyBOU0NvbnRyb2xTaXplIHN0ZXBwZXJDb250cm9sU2l6ZUZvckZvbnQoY29uc3QgRm9udENhc2Nh
ZGUmIGZvbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50
IGZvbnRTaXplID0gZm9udC5waXhlbFNpemUoKTsKICAgICBpZiAoZm9udFNpemUgPj0gMTgpCi0g
ICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29u
dHJvbFNpemVSZWd1bGFyOwogICAgIGlmIChmb250U2l6ZSA+PSAxMykKLSAgICAgICAgcmV0dXJu
IE5TU21hbGxDb250cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21h
bGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0aWMgdm9pZCBwYWlu
dFN0ZXBwZXIoQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmll
dyopCkBAIC02MDAsMTUgKzU4NiwxMiBAQCBzdGF0aWMgdm9pZCBwYWludFN0ZXBwZXIoQ29udHJv
bFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiAgICAgZHJh
d0luZm8uc3RhdGUgPSBjb252ZXJ0Q29udHJvbFN0YXRlc1RvVGhlbWVEcmF3U3RhdGUoa1RoZW1l
SW5jRGVjQnV0dG9uLCBzdGF0ZXMpOwogICAgIGRyYXdJbmZvLmFkb3JubWVudCA9IGtUaGVtZUFk
b3JubWVudERlZmF1bHQ7CiAgICAgQ29udHJvbFNpemUgY29udHJvbFNpemUgPSBjb250cm9sU2l6
ZUZyb21QaXhlbFNpemUoc3RlcHBlclNpemVzKCksIEludFNpemUoem9vbWVkUmVjdC5zaXplKCkp
LCB6b29tRmFjdG9yKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoY29udHJvbFNpemUgPT0gTlNTbWFsbENvbnRyb2xTaXplKQorICAgIGlmIChjb250cm9sU2l6
ZSA9PSBOU0NvbnRyb2xTaXplU21hbGwpCiAgICAgICAgIGRyYXdJbmZvLmtpbmQgPSBrVGhlbWVJ
bmNEZWNCdXR0b25TbWFsbDsKLSAgICBlbHNlIGlmIChjb250cm9sU2l6ZSA9PSBOU01pbmlDb250
cm9sU2l6ZSkKKyAgICBlbHNlIGlmIChjb250cm9sU2l6ZSA9PSBOU0NvbnRyb2xTaXplTWluaSkK
ICAgICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbk1pbmk7CiAgICAgZWxz
ZQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgSW50UmVjdCByZWN0KHpvb21lZFJlY3QpOwogICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKQEAgLTc0OSwx
MiArNzMyLDkgQEAgTGVuZ3RoU2l6ZSBUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKENvbnRy
b2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb24KICAgICAgICAgY2FzZSBCdXR0b25Q
YXJ0OgogICAgICAgICAgICAgcmV0dXJuIExlbmd0aFNpemUoTGVuZ3RoKDAsIEZpeGVkKSwgTGVu
Z3RoKHN0YXRpY19jYXN0PGludD4oMTUgKiB6b29tRmFjdG9yKSwgRml4ZWQpKTsKICAgICAgICAg
Y2FzZSBJbm5lclNwaW5CdXR0b25QYXJ0OnsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgICAgIEludFNpemUgYmFzZSA9IHN0ZXBwZXJTaXplcygpW05TTWluaUNv
bnRyb2xTaXplXTsKKyAgICAgICAgICAgIEludFNpemUgYmFzZSA9IHN0ZXBwZXJTaXplcygpW05T
Q29udHJvbFNpemVNaW5pXTsKICAgICAgICAgICAgIHJldHVybiBMZW5ndGhTaXplKExlbmd0aChz
dGF0aWNfY2FzdDxpbnQ+KGJhc2Uud2lkdGgoKSAqIHpvb21GYWN0b3IpLCBGaXhlZCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihiYXNlLmhl
aWdodCgpICogem9vbUZhY3RvciksIEZpeGVkKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBUaGVt
ZTo6bWluaW11bUNvbnRyb2xTaXplKHBhcnQsIGZvbnQsIHpvb21GYWN0b3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRv
d0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQppbmRleCBkM2I5ZWU5OGRmOTQyMGNjZDcxMTZi
MDQwMzU2MzgzY2ZjNzQ2ZjkwLi5iNDg2MDZjYjVhNzQ0ZDg3MGI4NjE5MzQzNjYyODk4YmE5ZmY0
ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQpAQCAtMzMsNiAr
MzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSFRNTFZpZGVvRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03MywxMCArNzQsNyBAQCBAaW1wbGVt
ZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93CiAtIChpZClpbml0V2l0aENvbnRl
bnRSZWN0OihOU1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihOU1VJbnRlZ2VyKWFTdHlsZSBi
YWNraW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlwZSBkZWZlcjooQk9PTClmbGFn
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGFTdHlsZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRS
ZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6YnVmZmVyaW5nVHlw
ZSBkZWZlcjpmbGFnXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBzZWxmID0g
W3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107CiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC0xMjIsMTUgKzEyMCwxMiBA
QCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2
YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgogICAgIC8vIEJsb2NrIGFsbCBjb21tYW5kIGtleSBldmVudHMgd2hpbGUgdGhlIGZ1bGxz
Y3JlZW4gd2luZG93IGlzIHVwLgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQor
ICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1
cm4gTk87CiAgICAgCi0gICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5k
S2V5TWFzaykpCisgICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQpKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCiAgICAgcmV0dXJuIFlFUzsKIH0KIApAQCAtMTQ1LDExICsxNDAsNyBAQCBAaW1w
bGVtZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlcgogCiAtIChp
ZClpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNXaW5k
b3cgKndpbmRvdyA9IFtbV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93
TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAs
IDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFz
a0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dpbmRvdyBzZXRE
ZWxlZ2F0ZTpzZWxmXTsKICAgICBbd2luZG93IHJlbGVhc2VdOwpAQCAtMTg4LDIwICsxNzksMTcg
QEAgLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopZXZlbnQKICAgICAgICAgICAgIGNhc2UgJyAn
OgogICAgICAgICAgICAgICAgIFtzZWxmIHRvZ2dsZVBsYXlpbmc6bmlsXTsKICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAg
ICAgICBjYXNlIE5TVXBBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAg
aWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAg
ICAgICAgICAgICAgICAgICAgIFtzZWxmIHNldFZvbHVtZTpbc2VsZiBtYXhWb2x1bWVdXTsKICAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIGluY3JlbWVudFZv
bHVtZV07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25B
cnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAgaWYgKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIHNldFZvbHVtZTowXTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIFtzZWxmIGRlY3JlbWVudFZvbHVtZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgICAgICBicmVhazsKQEAgLTM3OCwxNyArMzY2LDExIEBAIC0gKHZvaWQpd2luZG93
RGlkTG9hZAogICAgIFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Ol90aW1lbGluZV07CiAKICAgICBf
ZWxhcHNlZFRpbWVUZXh0ID0gY3JlYXRlVGltZVRleHRGaWVsZChOU01ha2VSZWN0KHRpbWVUZXh0
RmllbGRIb3Jpem9udGFsTWFyZ2luLCB0aW1lbGluZUJvdHRvbU1hcmdpbiwgdGltZVRleHRGaWVs
ZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgW19lbGFwc2VkVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TTGVmdFRleHRB
bGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtfZWxhcHNlZFRp
bWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0XTsKICAgICBbY29udGVudFZp
ZXcgYWRkU3VidmlldzpfZWxhcHNlZFRpbWVUZXh0XTsKIAogICAgIF9yZW1haW5pbmdUaW1lVGV4
dCA9IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh3aW5kb3dXaWR0aCAtIHRpbWVUZXh0
RmllbGRIb3Jpem9udGFsTWFyZ2luIC0gdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lbGluZUJvdHRv
bU1hcmdpbiwgdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW19yZW1haW5pbmdUaW1lVGV4dCBz
ZXRBbGlnbm1lbnQ6TlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdu
bWVudFJpZ2h0XTsKICAgICBbY29udGVudFZpZXcgYWRkU3VidmlldzpfcmVtYWluaW5nVGltZVRl
eHRdOwogCiAgICAgW3dpbmRvdyByZWNhbGN1bGF0ZUtleVZpZXdMb29wXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tCmluZGV4IDQ1OThh
MDNlZDJmYTMyMTUwZTY0YWY5Y2JiNjQ1OTk0NjlmZGRmNzcuLjdkZTVlYjUzN2M3ZmEwMjM1MjJi
Y2VmNjgzMzIzYjI1ODRlY2M1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBv
cnQgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTM4LDEw
ICszOSw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHNsb3dNb3Rpb25GYWN0b3IgPSAxMDsKIAog
c3RhdGljIE5TVGltZUludGVydmFsIFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0
aW9uKE5TVGltZUludGVydmFsIGR1cmF0aW9uKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxh
Z3NdICYgTlNTaGlmdEtleU1hc2spID8gZHVyYXRpb24gKiBzbG93TW90aW9uRmFjdG9yIDogZHVy
YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIChbW05TQXBw
IGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQp
ID8gZHVyYXRpb24gKiBzbG93TW90aW9uRmFjdG9yIDogZHVyYXRpb247CiB9CiAKIHN0YXRpYyBO
U1JlY3Qgc2NhbGVkUmVjdChOU1JlY3QgX2luaXRpYWxGcmFtZSwgTlNSZWN0IF9maW5hbEZyYW1l
LCBDR0Zsb2F0IGZhY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQppbmRleCAzZWRkYzAzZTRkOGU5ZjYzNTE3YzUyNzFmMjAxYjU2NzgyMmI5MDI4Li44NTc2
NDIzNTIzYTkwYzhhNTI1MTgwNTRhZDkyYjUxNDRmNDE5Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC04MSw2ICs4MSw3IEBACiAjaW1wb3J0IDxD
YXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgogI2ltcG9ydCA8bWF0aC5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
ICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKICNpbXBvcnQgIlJlbmRlck1ldGVyLmgiCkBAIC0z
NzksMjIgKzM4MCwxMyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjp1cGRhdGVDYWNoZWRTeXN0ZW1G
b250RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBGbwogICAgICAgICAgICAgZm9u
dE5hbWUgPSBBdG9taWNTdHJpbmcoIi1hcHBsZS1zdGF0dXMtYmFyIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
U1NWYWx1ZVdlYmtpdE1pbmlDb250cm9sOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250
IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNNaW5pQ29udHJvbFNpemVdXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3Rl
bUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJv
bFNpemVNaW5pXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1ZVdl
YmtpdFNtYWxsQ29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1G
b250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9m
U2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENv
bnRyb2w6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBm
b250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JD
b250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNG
b250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVJlZ3VsYXJdXTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZm9udCA9
IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplXV07CkBAIC03
NzcsMzAgKzc2OSwyNCBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU3VwcG9ydHNUaW50
cyhjb25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1l
TWFjOjpjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAog
ewogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1
cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVn
dWxhcjsKICAgICBpZiAoZm9udFNpemUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29u
dHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1h
Yzo6Y29udHJvbFNpemVGb3JDZWxsKE5TQ2VsbCosIGNvbnN0IEludFNpemUqIHNpemVzLCBjb25z
dCBJbnRTaXplJiBtaW5TaXplLCBmbG9hdCB6b29tTGV2ZWwpIGNvbnN0CiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxl
dmVsKQotICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6
ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUxldmVsKSkKLSAgICAgICAg
cmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOworICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0g
c3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0ud2lkdGgoKSAqIHpv
b21MZXZlbCkKKyAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+
KHNpemVzW05TQ29udHJvbFNpemVSZWd1bGFyXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIAotICAgIGlmIChtaW5TaXplLndpZHRo
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkg
KiB6b29tTGV2ZWwpCi0gICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8
aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUxldmVsKSkKLSAg
ICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgp
ID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0aCgpICog
em9vbUxldmVsKQorICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGlu
dD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAKLSAgICByZXR1cm4gTlNNaW5pQ29udHJv
bFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIE5TQ29udHJv
bFNpemVNaW5pOwogfQogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjpzZXRDb250cm9sU2l6ZShOU0Nl
bGwqIGNlbGwsIGNvbnN0IEludFNpemUqIHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5TaXplLCBm
bG9hdCB6b29tTGV2ZWwpCkBAIC04NTcsMTUgKzg0MywxMiBAQCB2b2lkIFJlbmRlclRoZW1lTWFj
OjpzZXRGb250RnJvbUNvbnRyb2xTaXplKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYgc3R5
bGUsCiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yU3lzdGVt
Rm9udChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50IGZvbnRTaXplID0gc3R5bGUuZm9udFNpemUoKTsK
LSAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXpl
Ok5TUmVndWxhckNvbnRyb2xTaXplXSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xT
aXplOwotICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJv
bFNpemU6TlNTbWFsbENvbnRyb2xTaXplXSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JD
b250cm9sU2l6ZTpOU0NvbnRyb2xTaXplUmVndWxhcl0pCisgICAgICAgIHJldHVybiBOU0NvbnRy
b2xTaXplUmVndWxhcjsKKyAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF0pCisgICAgICAgIHJldHVybiBOU0Nv
bnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBib29s
IFJlbmRlclRoZW1lTWFjOjpwYWludFRleHRGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmIG8sIGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QmIHIpCkBAIC0xMTQ3LDEw
ICsxMTMwLDcgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRQcm9ncmVzc0Jhcihjb25zdCBS
ZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGEKICAgICBjb25zdCBhdXRvJiByZW5k
ZXJQcm9ncmVzcyA9IGRvd25jYXN0PFJlbmRlclByb2dyZXNzPihyZW5kZXJPYmplY3QpOwogICAg
IEhJVGhlbWVUcmFja0RyYXdJbmZvIHRyYWNrSW5mbzsKICAgICB0cmFja0luZm8udmVyc2lvbiA9
IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xT
aXplID09IE5TUmVndWxhckNvbnRyb2xTaXplKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU0NvbnRyb2xTaXplUmVndWxhcikKICAgICAgICAg
dHJhY2tJbmZvLmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZUxh
cmdlSW5kZXRlcm1pbmF0ZUJhciA6IGtUaGVtZUxhcmdlUHJvZ3Jlc3NCYXI7CiAgICAgZWxzZQog
ICAgICAgICB0cmFja0luZm8ua2luZCA9IHJlbmRlclByb2dyZXNzLnBvc2l0aW9uKCkgPCAwID8g
a1RoZW1lTWVkaXVtSW5kZXRlcm1pbmF0ZUJhciA6IGtUaGVtZU1lZGl1bVByb2dyZXNzQmFyOwpA
QCAtMTQzOCwxNSArMTQxOCwxMiBAQCBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZSBSZW5k
ZXJUaGVtZU1hYzo6cG9wdXBNZW51U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYgcwogICAgIE5TUG9w
VXBCdXR0b25DZWxsKiBwb3B1cEJ1dHRvbiA9IHRoaXMtPnBvcHVwQnV0dG9uKCk7CiAgICAgTlND
b250cm9sU2l6ZSBzaXplID0gY29udHJvbFNpemVGb3JDZWxsKHBvcHVwQnV0dG9uLCBwb3B1cEJ1
dHRvblNpemVzKCksIHJlY3Quc2l6ZSgpLCBzdHlsZS5lZmZlY3RpdmVab29tKCkpOwogICAgIHN3
aXRjaCAoc2l6ZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNh
c2UgTlNSZWd1bGFyQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplUmVndWxhcjoK
ICAgICAgICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOwotICAg
IGNhc2UgTlNTbWFsbENvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVNtYWxsOgog
ICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDsKLSAgICBj
YXNlIE5TTWluaUNvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZU1pbmk6CiAgICAg
ICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIFBvcHVwTWVu
dVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOwogICAgIH0KQEAgLTIwNTUsMTIgKzIwMzIsOSBA
QCBOU1NsaWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwoKSBj
b25zdAogewogICAgIGlmICghbV9zbGlkZXJUaHVtYkhvcml6b250YWwpIHsKICAgICAgICAgbV9z
bGlkZXJUaHVtYkhvcml6b250YWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRl
clRodW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TTGluZWFyU2xpZGVyXTsKLSAg
ICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldENvbnRyb2xTaXplOk5TU21h
bGxDb250cm9sU2l6ZV07CisgICAgICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKSBz
ZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFttX3NsaWRlclRodW1i
SG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplU21hbGxdOwogICAg
ICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Rm9jdXNSaW5nVHlwZTpOU0Zv
Y3VzUmluZ1R5cGVFeHRlcmlvcl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
fQogCiAgICAgcmV0dXJuIG1fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpOwpAQCAtMjA3MCwx
MSArMjA0NCw4IEBAIE5TU2xpZGVyQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVy
dGljYWwoKSBjb25zdAogewogICAgIGlmICghbV9zbGlkZXJUaHVtYlZlcnRpY2FsKSB7CiAgICAg
ICAgIG1fc2xpZGVyVGh1bWJWZXJ0aWNhbCA9IGFkb3B0TlMoW1tOU1NsaWRlckNlbGwgYWxsb2Nd
IGluaXRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW21f
c2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TTGluZWFyU2xpZGVyXTsK
LSAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1Nt
YWxsQ29udHJvbFNpemVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
bV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldFNsaWRlclR5cGU6TlNTbGlkZXJUeXBlTGlu
ZWFyXTsKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRDb250cm9sU2l6
ZTpOU0NvbnRyb2xTaXplU21hbGxdOwogICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdl
dCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJpb3JdOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRl
eCBmMmEzNTk3M2E3MWUwNjgyNjBhOTFjOTY3ZDI5MDUwZDJlZGU3NjBkLi5hNjlmNmYxZmE1MGE5
YTRhZGQ4NjNmNDc5NWJjMWQ3MTJmMGJhMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
YXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzYsNiArNzYsNyBAQAogI2ltcG9ydCA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5o
PgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1w
b3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgpAQCAtMTczLDEzICsxNzQsMTQgQEAgLSAoaWQpaW5p
dFdpdGhDYXJib25XaW5kb3dSZWY6KFdpbmRvd1JlZilpbldpbmRvd1JlZiB0YWtpbmdPd25lcnNo
aXA6KEJPT0wpaW5XaW4KIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1h
c2suCiAgICAgc3R5bGVNYXNrID0gV0tDYXJib25XaW5kb3dNYXNrKCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93
Q2xvc2VCb3hBdHRyaWJ1dGUpIHN0eWxlTWFzayB8PSBOU0Nsb3NhYmxlV2luZG93TWFzazsKLSAg
ICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpIHN0eWxl
TWFzayB8PSBOU1Jlc2l6YWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYg
a1dpbmRvd0NhbkNvbGxhcHNlKSBzdHlsZU1hc2sgfD0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01h
c2s7Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0hhc1RpdGxlQmFyKSBzdHlsZU1h
c2sgfD0gTlNUaXRsZWRXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRlKQorICAg
ICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZTsKKyAgICBpZiAod2lu
ZG93QXR0cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpCisgICAgICAgIHN0eWxl
TWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVy
ZXMgJiBrV2luZG93Q2FuQ29sbGFwc2UpCisgICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0
eWxlTWFza01pbmlhdHVyaXphYmxlOworICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dI
YXNUaXRsZUJhcikKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVk
OwogCiAgICAgb3NTdGF0dXMgPSBHZXRXaW5kb3dNb2RhbGl0eShfd2luZG93UmVmLCAmd2luZG93
TW9kYWxpdHksIE5VTEwpOwogICAgIGlmIChvc1N0YXR1cyAhPSBub0VycikgewpAQCAtMzkzLDE4
ICszOTUsMTIgQEAgLSAodm9pZClzZW5kU3VwZXJFdmVudDooTlNFdmVudCAqKWluRXZlbnQgewog
ICAgIC8vIElnbm9yZSBzb21lIHVua25vd24gZXZlbnQgdGhhdCBnZXRzIHNlbnQgd2hlbiBOU1Rl
eHRWaWV3cyBpbiBwcmludGluZyBhY2Nlc3Nvcnkgdmlld3MgYXJlIGZvY3VzZWQuICBNLlAuIE5v
dGljZSAtIDEyLzcvMDAKICAgICBCT09MIGlnbm9yZUV2ZW50ID0gTk87CiAgICAgTlNFdmVudFR5
cGUgZXZlbnRUeXBlID0gW2luRXZlbnQgdHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgaWYgKGV2ZW50VHlwZT09TlNTeXN0ZW1EZWZpbmVkKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZVN5
c3RlbURlZmluZWQpIHsKICAgICAgICAgc2hvcnQgZXZlbnRTdWJ0eXBlID0gW2luRXZlbnQgc3Vi
dHlwZV07Ci0gICAgICAgIGlmIChldmVudFN1YnR5cGU9PTcpIHsKKyAgICAgICAgaWYgKGV2ZW50
U3VidHlwZSA9PSA3KSB7CiAgICAgICAgICAgICBpZ25vcmVFdmVudCA9IFlFUzsKICAgICAgICAg
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIH0gZWxzZSBpZiAoZXZl
bnRUeXBlID09IE5TS2V5RG93bikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlS2V5RG93bikgewogICAgICAgICAv
LyBIYW5kbGUgY29tbWFuZC1zcGFjZSBhcyBbTlNBcHAgc2VuZEV2ZW50Ol0gZG9lcy4KICAgICAg
ICAgaWYgKFtOU0lucHV0Q29udGV4dCBwcm9jZXNzSW5wdXRLZXlCaW5kaW5nczppbkV2ZW50XSkg
ewogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYWQ1OTM2
OTZkNGI5YTk3NjZhM2NiY2UwM2VhZDZlYWZkMDc5NTc5Li42ZDA2YzcwMTBjNTJiODFkNTMxNTFl
MTg1MmQ0MTQ0MWI5MTI5ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtNDEsNiArNDEs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIGV4dGVy
biAiQyIgewogI2ltcG9ydCAiV2ViS2l0UGx1Z2luSG9zdC5oIgpAQCAtMjMwLDEwICsyMzEsNyBA
QCB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQo
IW1fcGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIp
OwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vo
b2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZ
RVNdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2lu
ZG93ID0gYWRvcHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHls
ZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNd
KTsKIAogICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVB
Y3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3Rp
dmUoKTsgfV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlh
ZTdhMTc3ZTQ1MTJmNDU2NDFkYWEyNDM3ZDRjOS4uYWEwZGY1NDI0YTQyNmZkM2FkNzgzNDM0NmNk
N2IyYWQ0YzI5NTUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtNjYsNiAr
NjYsNyBAQAogI2ltcG9ydCA8dXRpbGl0eT4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2ltcG9ydCA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKIGV4dGVybiAiQyIgewpAQCAtNDY1LDE1ICs0NjYsMTIgQEAgdm9pZCBOZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlm
aWVyKGludCBrZXlDb2QKIHsKICAgICBOU0RhdGEgKmNoYXJhY3RlcnNEYXRhID0gW05TRGF0YSBk
YXRhV2l0aEJ5dGVzOiZjaGFyYWN0ZXIgbGVuZ3RoOjFdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCiAgICAgX1dLUEhQbHVnaW5JbnN0YW5jZUtleWJvYXJkRXZlbnQobV9w
bHVnaW5Ib3N0UHJveHktPnBvcnQoKSwgbV9wbHVnaW5JRCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0s
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtleURv
d24sIE5TQ29tbWFuZEtleU1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlBDb2NvYUV2ZW50S2V5RG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFj
dGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3Rl
cnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIGtleUNvZGUsIGNoYXJhY3Rlcik7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5OjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdp
blZpZXcubW0KaW5kZXggMzc2NjcyYjY4NjczN2M3NzNlZGM2ZGY2ODRiMjg3OTgyOTY0ZjU0MS4u
ZGZjOGNjYTcyODI0OGE4OTZhODEzZTZmNzkyNDJjMDk0MmIyNWM5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldy5tbQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1
bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CkBAIC00NDMsMTAgKzQ0NCw3IEBAIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0CiB7CiAg
ICAgaWYgKF9jYWNoZWRTbmFwc2hvdCkgewogICAgICAgICBOU1JlY3Qgc291cmNlUmVjdCA9IHsg
TlNaZXJvUG9pbnQsIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgc2l6ZV0gfTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBk
cmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBbX2NhY2hlZFNuYXBzaG90LmdldCgpIGRyYXdJblJlY3Q6W3NlbGYgYm91
bmRzXSBmcm9tUmVjdDpzb3VyY2VSZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9u
U291cmNlT3ZlciBmcmFjdGlvbjoxXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
bkV2ZW50SGFuZGxlckNvY29hLm1tCmluZGV4IGExZDE1OWFmOTRlMTQ4OWE0OGIwOTkyMTA4ZDAz
ZjM5ODA1ZjI5OTYuLjljNTIwMWZlNjJkMjYzYmQzNWViNWU3MWQ0YTM3MDFhYWE5MTdlNzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQg
IldlYktpdFN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3
LmgiCiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJD
b2NvYTo6V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYShXZWJOZXRzY2FwZVBsdWdp
blZpZXcqIHBsdWdpblZpZXcpCiAgICAgOiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlcihw
bHVnaW5WaWV3KQpAQCAtMTYxLDEwICsxNjIsNyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZl
bnRIYW5kbGVyQ29jb2E6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludAog
ICAgIAogICAgIE5QQ29jb2FFdmVudCBldmVudDsKICAgICBpbml0aWFsaXplRXZlbnQoJmV2ZW50
LCBOUENvY29hRXZlbnRLZXlEb3duKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBldmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdzID0gTlNDb21tYW5kS2V5TWFzazsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBldmVudC5kYXRhLmtleS5tb2RpZmll
ckZsYWdzID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgZXZlbnQuZGF0YS5rZXku
a2V5Q29kZSA9IGtleUNvZGU7CiAgICAgZXZlbnQuZGF0YS5rZXkuaXNBUmVwZWF0ID0gZmFsc2U7
CiAgICAgZXZlbnQuZGF0YS5rZXkuY2hhcmFjdGVycyA9IChOUE5TU3RyaW5nICopY2hhcmFjdGVy
cy5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1Bv
cHVwTWVudU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dU1hYy5tbQppbmRleCBjNDY2NzBiNGQ3OWQ4Y2U4NGZiZDQxMTU4ZmI3MzA4MGFlODA0NzliLi43
OWYyOGZiODJjYjdmZDkzOWNkMzMyMzRlYzQ3ZWMwMzk2NmVlNTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCkBAIC0zNCw2ICszNCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgogI2ltcG9ydCA8V2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgor
I2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05MCwxNyArOTEsMTEgQEAgdm9pZCBQb3B1cE1l
bnVNYWM6OnBvcHVsYXRlKCkKICAgICAgICAgfQogCiAgICAgICAgIFJldGFpblB0cjxOU011dGFi
bGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhT
dHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11dGFibGVDb3B5XSk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1l
bnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
W3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBO
U1RleHRBbGlnbm1lbnRMZWZ0IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICBOU1dy
aXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiA9IHN0eWxlLnRleHREaXJlY3Rpb24oKSA9
PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlv
blJpZ2h0VG9MZWZ0OwogICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJl
Y3Rpb246d3JpdGluZ0RpcmVjdGlvbl07CiAgICAgICAgIGlmIChzdHlsZS5oYXNUZXh0RGlyZWN0
aW9uT3ZlcnJpZGUoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9w
dE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsg
TlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25W
YWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdE
aXJlY3Rpb24gKyBOU1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgUmV0
YWluUHRyPE5TQXJyYXk+IHdyaXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0TlMoW1tOU0FycmF5
IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxd
KTsKICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJy
YXkuZ2V0KCkgZm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAg
ICB9CkBAIC0yMDYsMTggKzIwMSwxNSBAQCB2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhjb25zdCBJ
bnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIAogICAgIE5TQ29udHJvbFNpemUg
Y29udHJvbFNpemU7CiAgICAgc3dpdGNoIChtX2NsaWVudC0+bWVudVN0eWxlKCkubWVudVNpemUo
KSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGNhc2UgUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVJl
Z3VsYXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVu
dVNpemVTbWFsbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1NtYWxsQ29udHJvbFNpemU7Cisg
ICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVNtYWxsOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaToKLSAgICAgICAgY29u
dHJvbFNpemUgPSBOU01pbmlDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0Nv
bnRyb2xTaXplTWluaTsKICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgfQogCiAgICAgV0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dp
ZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgpLCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xT
aXplLCAhbV9jbGllbnQtPm1lbnVTdHlsZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5tbQppbmRleCA5MTRkOGUwNjNlOGViMGZjYTllYWU5ZDdiYmJjODFmNjFiN2I4OGQ2
Li5hMzliOTNlNzdlMjZhNjQzM2I5Mjg4OGYxOTMzYTA5OTU1MTVjNjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVu
dC5tbQpAQCAtNjAsNiArNjAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdh
Y3kvRE9NUHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yNjksMTAgKzI3
MCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNob3dDb250ZXh0TWVudSgpCiAKICAg
ICBOU1ZpZXcqIHZpZXcgPSBmcmFtZVZpZXctPmRvY3VtZW50VmlldygpOwogICAgIEludFBvaW50
IHBvaW50ID0gZnJhbWVWaWV3LT5jb250ZW50c1RvV2luZG93KHBhZ2UtPmNvbnRleHRNZW51Q29u
dHJvbGxlcigpLmhpdFRlc3RSZXN1bHQoKS5yb3VuZGVkUG9pbnRJbklubmVyTm9kZUZyYW1lKCkp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQqIGV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24gbG9jYXRpb246
cG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbW3ZpZXcgd2lu
ZG93XSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBw
cmVzc3VyZToxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50KiBl
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBj
bGlja0NvdW50OjEgcHJlc3N1cmU6MV07CiAKICAgICAvLyBTaG93IHRoZSBjb250ZXh0dWFsIG1l
bnUgZm9yIHRoaXMgZXZlbnQuCiAgICAgYm9vbCBpc1NlcnZpY2VzTWVudTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KaW5kZXggMTE0NzZhMDMyNzZlZGQ5NGU3NTU1MTM5MzBhYjQ2MTliY2VkZjk1My4uMTYwYjJk
ZjU3NDdmNTNhZWRiMzU5Njg4M2I0MmMwZmM5ZjQzYzIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAg
LTEzMCw2ICsxMzAsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogI2lmIFVTRShQTFVHSU5fSE9TVF9QUk9DRVNTKSAmJiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKQEAgLTE1NjEsMTcgKzE1NjIsMTQgQEAgTlNEaWN0aW9uYXJ5ICpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6YWN0aW9uRGljdGlvbmFyeShjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBhY3QKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IFVJRXZlbnRXaXRoS2V5U3Rh
dGUqIGtleVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUoY29uc3RfY2FzdDxFdmVu
dCo+KGV2ZW50KSk7CiAgICAgaWYgKGtleVN0YXRlRXZlbnQgJiYga2V5U3RhdGVFdmVudC0+aXNU
cnVzdGVkKCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAg
aWYgKGtleVN0YXRlRXZlbnQtPmN0cmxLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNDb250cm9sS2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2w7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXko
KSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAg
ICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAg
ICAgICBpZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFL
ZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgfQogI2Vsc2UKICAgICAvLyBObyBtb2Rp
ZmllciBmbGFncyBvbiBpT1MgcmlnaHQgbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggOTA3ODdkNjIwYjM4
MWU1MzhjN2IxYWRkYzc2ZjJkMjljNTkzMjIwOS4uNzZiMmNkMmNiZjEwYjIwYTM5OTNjMmYzZjdi
NzE5Y2JlN2E1ODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNTMsNiArNTMsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTUV4dGVuc2lv
bnMuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9C
YXNlNjQuaD4KIAogU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFBy
aXZhdGVGcmFtZXdvcmtzLCBBKQpAQCAtMTkxLDEwICsxOTIsNyBAQCB2b2lkIFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50OjphdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wgYXZhaWxhYmxl
KQogCiBib29sIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpjYW5BdHRhY2goKQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW21fZnJvbnRlbmRXaW5k
b3dDb250cm9sbGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TRnVsbFNjcmVlbldpbmRvd01hc2sp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtbbV9mcm9udGVuZFdpbmRv
d0NvbnRyb2xsZXIgd2luZG93XSBzdHlsZU1hc2tdICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2Ny
ZWVuKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gY2FuQXR0YWNoV2luZG93
KCk7CkBAIC00NjUsMTAgKzQ2Myw3IEBAIC0gKE5TV2luZG93ICopd2luZG93CiAgICAgaWYgKHdp
bmRvdykKICAgICAgICAgcmV0dXJuIHdpbmRvdzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNr
IHwgTlNDbG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5T
UmVzaXphYmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNVSW50ZWdlciBzdHlsZU1hc2sgPSBO
U1dpbmRvd1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dp
bmRvd1N0eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUg
fCBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXc7CiAgICAgd2luZG93ID0gW1tO
U1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIGluaXRp
YWxXaW5kb3dXaWR0aCwgaW5pdGlhbFdpbmRvd0hlaWdodCkgc3R5bGVNYXNrOnN0eWxlTWFzayBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0
RGVsZWdhdGU6c2VsZl07CiAgICAgW3dpbmRvdyBzZXRNaW5TaXplOk5TTWFrZVNpemUobWluaW11
bVdpbmRvd1dpZHRoLCBtaW5pbXVtV2luZG93SGVpZ2h0KV07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4IDAyYTc1NmY3Njc3
MzE1YzYyMmRkODFkOTlhMjlmYWMzZmI1YmY5ZTIuLjY2N2IyYzVhNTQ0N2FhZTQ2YTVlNjA3YzU3
NDE0NDAyNzJiNDYyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rv
ci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rv
ci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCkBAIC0zOSw2ICszOSw4IEBACiAjaW1wb3J0ICJXZWJWaWV3
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V0FLV2luZG93Lmg+CisjZWxzZQorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05
MSwxMCArOTMsNyBAQCAtIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZp
ZXcgaW5zcGVjdG9yQ29udHJvbGxlcjooSW5zcGVjdG9yQ29udAogICAgIF9pbnNwZWN0b3JDb250
cm9sbGVyID0gaW5zcGVjdG9yQ29udHJvbGxlcjsKIAogI2lmICFQTEFURk9STShJT1MpCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaW50IHN0eWxlTWFzayA9IE5TQm9y
ZGVybGVzc1dpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaW50
IHN0eWxlTWFzayA9IE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzczsKICAgICBOU1JlY3QgY29u
dGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JGcmFtZVJlY3Q6W3NlbGYgX2NvbXB1
dGVIaWdobGlnaHRXaW5kb3dGcmFtZV0gc3R5bGVNYXNrOnN0eWxlTWFza107CiAgICAgX2hpZ2hs
aWdodFdpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVu
dFJlY3Qgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6Tk9dOwogICAgIFtfaGlnaGxpZ2h0V2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlND
b2xvciBjbGVhckNvbG9yXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3
Lm1tCmluZGV4IDVlYzE5Nzg1ZGE3Mjk3YjFhMjQ0YzU3NjMyMDcwYzRiZGU5NDZiMDUuLjViODY3
MTU0MGU2ZjhhMTIzMWVjZTFmNTQ5NDRiMTU4ODkzNzRiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC04Myw2ICs4Myw3IEBACiAjZWxzZQogI2ltcG9y
dCAiV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJOU1dpbmRvd0V4dHJhcy5o
IgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAj
ZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05MTUsOSArOTE2LDcgQEAgLSAo
dm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgQk9PTCBjYWxsU3VwZXIgPSBZRVM7
CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIEJPT0wgbWFp
bnRhaW5zQmFja0ZvcndhcmRMaXN0ID0gY29yZUZyYW1lICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3
YXJkTGlzdCo+KGNvcmVGcmFtZS0+cGFnZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+ZW5h
YmxlZCgpID8gWUVTIDogTk87Ci0gICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisKICAgICBjb3VudCA9IFtjaGFyYWN0ZXJzIGxlbmd0aF07CiAgICAgZm9yIChpbmRleCA9
IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgc3dpdGNoIChbY2hhcmFjdGVy
cyBjaGFyYWN0ZXJBdEluZGV4OmluZGV4XSkgewpAQCAtOTI4LDcgKzkyNyw3IEBAIC0gKHZvaWQp
a2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAvLyBUaGlzIG9kZCBiZWhhdmlvciBtYXRjaGVzIHNvbWUgZXhpc3RpbmcgYnJvd3NlcnMs
CiAgICAgICAgICAgICAgICAgLy8gaW5jbHVkaW5nIFdpbmRvd3MgSUUKLSAgICAgICAgICAgICAg
ICBpZiAobW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAg
aWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpIHsKICAgICAgICAg
ICAgICAgICAgICAgW3NlbGYgX2dvRm9yd2FyZF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX2dvQmFja107CkBAIC05NDMsNyArOTQyLDcgQEAg
LSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGNh
bGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2sp
IHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZs
YWdTaGlmdCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3Jv
bGxQYWdlRG93bjpuaWxdOwpAQCAtOTg0LDcgKzk4Myw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2Vi
RXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBO
U1VwQXJyb3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUg
c2hpZnRlZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBj
aGFuY2UuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1h
c2sgfCBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZs
YWdzICYgKE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250
cm9sKSkgewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTk5OCw5ICs5OTcsOSBAQCAt
ICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAg
ICAgICBbc2VsZiBzY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VVcDpuaWxd
OwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNj
cm9sbExpbmVVcDpuaWxdOwpAQCAtMTAwOSw3ICsxMDA4LDcgQEAgLSAodm9pZClrZXlEb3duOihX
ZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IE5TRG93bkFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFu
ZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZl
IGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRL
ZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFn
Q29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC0xMDIzLDkgKzEwMjIs
OSBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYg
KG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYg
KG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAg
ICAgICAgICAgICBbc2VsZiBzY3JvbGxUb0VuZE9mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VEb3duOm5p
bF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYg
c2Nyb2xsTGluZURvd246bmlsXTsKQEAgLTEwMzQsMTIgKzEwMzMsMTIgQEAgLSAodm9pZClrZXlE
b3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBjYXNlIE5TTGVmdEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9u
J3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBl
ciBoYXZlIGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5T
U2hpZnRLZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZp
ZXJGbGFnQ29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgLy8gQ2hlY2sgYmFjay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAg
ICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAg
ICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICghbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKQEAgLTEwNTIsNyArMTA1MSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJu
YXRlS2V5TWFzaykgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
RXZlbnRNb2RpZmllckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxm
IF9wYWdlSG9yaXpvbnRhbGx5OllFU107CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfc2Nyb2xsTGluZUhvcml6b250YWxseTpZRVNd
OwpAQCAtMTA2MiwxMiArMTA2MSwxMiBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZl
bnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNSaWdodEFycm93
RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQg
b3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgot
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlND
b250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChO
U0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgYmFj
ay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBj
YWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEwODAs
NyArMTA3OSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAg
ICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdP
cHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdlSG9yaXpvbnRhbGx5
Ok5PXTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIF9zY3JvbGxMaW5lSG9yaXpvbnRhbGx5Ok5PXTsKQEAgLTEwOTAsNyArMTA4OSw2
IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAg
IGlmIChjYWxsU3VwZXIpIHsKICAgICAgICAgW3N1cGVyIGtleURvd246ZXZlbnRdOwogICAgIH0g
ZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3Jl
ZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVu
Q29udHJvbGxlci5tbQppbmRleCA5ZmQ5NTY2MTdmMDdjNmNmNmY0ODU3Y2M5ZTIyMTQwYjIxODhi
MmU0Li5mNTQzNDFmZGJiNGU0ZDNjZWQ5ZGVkMTYzZjE4NDMyYjA0NmQ5YjA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0K
QEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViV2luZG93QW5pbWF0aW9uLmg+
CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtODYsMTEgKzg3LDggQEAgQGltcGxl
bWVudGF0aW9uIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyCiAjcHJhZ21hIG1hcmsgSW5pdGlhbGl6
YXRpb24KIC0gKGlkKWluaXQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
ICAgICAvLyBEbyBub3QgZGVmZXIgd2luZG93IGNyZWF0aW9uLCB0byBtYWtlIHN1cmUgLXdpbmRv
d051bWJlciBpcyBjcmVhdGVkIChuZWVkZWQgYnkgV2ViV2luZG93U2NhbGVBbmltYXRpb24pLgot
ICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TQ2xvc2FibGVXaW5kb3dN
YXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZUZ1bGxT
Y3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1h
c2s6TlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6Tk9dOwogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsK
ICAgICBbd2luZG93IHJlbGVhc2VdOwogICAgIGlmICghc2VsZikKQEAgLTQ2MiwxMCArNDYwLDcg
QEAgLSAodm9pZClfc3dhcFZpZXc6KE5TVmlldyopdmlldyB3aXRoOihOU1ZpZXcqKW90aGVyVmll
dwogCiBzdGF0aWMgUmV0YWluUHRyPE5TV2luZG93PiBjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVl
bldpbmRvdyhOU1JlY3QgZnJhbWUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6ZnJhbWUgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpO
U0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW3dpbmRvdyBzZXRP
cGFxdWU6WUVTXTsKICAgICBbd2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBibGFj
a0NvbG9yXV07CiAgICAgW3dpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNTVmMWFlMmQ0NThmNTYxMzk1
ZmMzMjZhYWNiYzYwZjRkYjMyMTNjNC4uMDg0ZmU0NTU3ZTdhYjg1MzQzN2FjYzUxZTllMjc4N2Fm
ZmE1MGMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0x
NDAsMTIgKzE0MCwxMyBAQAogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogI2lmICFQTEFURk9S
TShJT1MpCisjaW1wb3J0ICJXZWJOU0V2ZW50RXh0cmFzLmgiCisjaW1wb3J0ICJXZWJOU1Bhc3Rl
Ym9hcmRFeHRyYXMuaCIKICNpbXBvcnQgPEFwcEtpdC9OU0FjY2Vzc2liaWxpdHkuaD4KICNpbXBv
cnQgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9OU01lbnVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMuaD4KLSNpbXBvcnQgIldlYk5TRXZlbnRFeHRyYXMuaCIKLSNpbXBvcnQgIldlYk5TUGFz
dGVib2FyZEV4dHJhcy5oIgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAjZW5kaWYKIAogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+
CkBAIC0xMzUxLDEyICsxMzUyLDkgQEAgLSAodm9pZClfcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0
ZWJvYXJkOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkCiAKIC0gKHZvaWQpX3Bvc3RGYWtlTW91
c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6KE5TRXZlbnQgKilmbGFnc0NoYW5nZWRF
dmVudAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQg
KmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9j
YXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVu
dFN0cmVhbQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2lu
ZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQogICAgICAgICBtb2RpZmllckZs
YWdzOmZsYWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1wOmZsYWdzQ2hhbmdl
ZEV2ZW50LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93TnVt
YmVyCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBw
cmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbc2VsZiBtb3Vz
ZU1vdmVkOmZha2VFdmVudF07CiB9CiAKQEAgLTE1MDYsMTAgKzE1MDQsNyBAQCAtICh2b2lkKV9z
ZXRNb3VzZURvd25FdmVudDooV2ViRXZlbnQgKilldmVudAogI2VuZGlmCiB7CiAjaWYgIVBMQVRG
T1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQo
IWV2ZW50IHx8IFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVd
ID09IE5TUmlnaHRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TT3RoZXJNb3VzZURvd24p
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2
ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bik7CiAjZWxzZQogICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9
PSBXZWJFdmVudE1vdXNlRG93bik7CiAjZW5kaWYKQEAgLTE2NjEsMTYgKzE2NTYsMTcgQEAgLSAo
aWQpX2JyaWRnZQogCiAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50CiB7Cisg
ICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlTW91c2VNb3ZlZAorICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQogI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKLSAgICAgICAgbG9jYXRpb246
W1tzZWxmIHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9u
XV0KKyAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05T
QXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1wOltOU0Rh
dGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dOdW1iZXI6
W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0Om51bGxwdHIKICAg
ICAgICAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBbc2VsZiBfdXBkYXRlTW91c2VvdmVyV2l0aEV2ZW50
OmZha2VFdmVudF07CiB9CkBAIC0xODY4LDExICsxODY0LDggQEAgLSAoQk9PTClfaW5zaWRlQW5v
dGhlckhUTUxWaWV3CiAjaWYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBCT09MIGlzUXVpY2tMb29r
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgY29uc3QgaW50IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlv
blJlbGVhc2VkID0gOTsKLSAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TU3lzdGVtRGVmaW5l
ZCAmJiBbZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJp
bmF0aW9uUmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVN5
c3RlbURlZmluZWQgJiYgW2V2ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVI
b3RLZXlDb21iaW5hdGlvblJlbGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0gJ2xrdXAnOwogfQog
I2VuZGlmCiAKQEAgLTE5MjgsMTQgKzE5MjEsMTEgQEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQ
b2ludClwb2ludAogICAgIGVsc2UgewogICAgICAgICAvLyBGSVhNRTogV2h5IGRvZXNuJ3QgdGhp
cyBpbmNsdWRlIG1vdXNlIGVudGVyZWQvZXhpdGVkIGV2ZW50cywgb3Igb3RoZXIgbW91c2UgYnV0
dG9uIGV2ZW50cz8KICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbW3NlbGYgd2luZG93XSBjdXJy
ZW50RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBj
YXB0dXJlSGl0c09uU3Vidmlld3MgPSAhKFtldmVudCB0eXBlXSA9PSBOU01vdXNlTW92ZWQKLSAg
ICAgICAgICAgIHx8IFtldmVudCB0eXBlXSA9PSBOU1JpZ2h0TW91c2VEb3duCi0gICAgICAgICAg
ICB8fCAoW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgIT0gMCkKLSAgICAgICAgICAgIHx8IFtldmVudCB0
eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZAorICAgICAgICBjYXB0dXJlSGl0c09uU3Vidmlld3MgPSAh
KFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgIHx8IFtl
dmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCisgICAgICAgICAgICB8fCAo
W2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiBbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKKyAgICAgICAgICAgIHx8IFtl
dmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZAogICAgICAgICAgICAgfHwgaXNR
dWlja0xvb2tFdmVudChldmVudCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAg
IH0KIAogICAgIGlmICghY2FwdHVyZUhpdHNPblN1YnZpZXdzKSB7CkBAIC0yMDIzLDkgKzIwMTMs
NyBAQCAtICh2b2lkKV9yZW1vdmVUcmFja2luZ1JlY3RzOihOU1RyYWNraW5nUmVjdFRhZyAqKXRh
Z3MgY291bnQ6KGludCljb3VudAogLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogewog
ICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5k
IHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZl
bnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUV4
aXRlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVNb3VzZUV4aXRlZAogICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2lu
dCgwLCAwKQogICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0YW1wOjAKQEAg
LTIwMzQsMTYgKzIwMjIsMTMgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1Rf
VEFHCiAgICAgICAgIHVzZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW19wcml2YXRlLT50cmFja2luZ1JlY3RP
d25lciBtb3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQogCiAtICh2b2lkKV9zZW5kVG9vbFRpcE1v
dXNlRW50ZXJlZAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8v
IE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJE
YXRhLgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0
aFR5cGU6TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBl
bnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVkCiAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAg
ICB0aW1lc3RhbXA6MApAQCAtMjA1Myw3ICsyMDM4LDYgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBN
b3VzZUVudGVyZWQKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAg
ICAgICAgdXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJEYXRhXTsKICAgICBbX3By
aXZhdGUtPnRyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKQEAg
LTIwODksMjEgKzIwNzMsMTggQEAgLSAoTlNTdHJpbmcgKil2aWV3OihOU1ZpZXcgKil2aWV3IHN0
cmluZ0ZvclRvb2xUaXA6KE5TVG9vbFRpcFRhZyl0YWcgcG9pbnQ6KE5TUG8KIHN0YXRpYyBib29s
IG1vdXNlRXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3
aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNl
VXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmln
aHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdn
ZWQ6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
VXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6
CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIH0KIApAQCAt
MjEzNCwxNiArMjExNSwxNCBAQCAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRoRXZlbnQ6KE5T
RXZlbnQgKilldmVudAogICAgICAgICBmbG9hdCB5U2Nyb2xsID0gdmlzaWJsZVJlY3Qub3JpZ2lu
Lnk7CiAgICAgICAgIGZsb2F0IHhTY3JvbGwgPSB2aXNpYmxlUmVjdC5vcmlnaW4ueDsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBOU0V2ZW50ICpldmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKKyAgICAgICAgTlNFdmVu
dCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1v
dmVkCiAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgtMSAtIHhTY3JvbGwsIC0xIC0g
eVNjcm9sbCkKICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRd
IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2
YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W1t2aWV3IHdp
bmRvd10gd2luZG93TnVtYmVyXQogICAgICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAg
ICAgICBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKwogICAgICAgICBpZiAoRnJhbWUqIGxhc3RIaXRDb3JlRnJhbWUg
PSBjb3JlKFtsYXN0SGl0VmlldyBfZnJhbWVdKSkKICAgICAgICAgICAgIGxhc3RIaXRDb3JlRnJh
bWUtPmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoZXZlbnQsIFtbc2VsZiBfd2ViVmlld10gX3By
ZXNzdXJlRXZlbnRdKTsKICAgICB9CkBAIC0yMzMwLDE2ICsyMzA5LDE4IEBAIC0gKHZvaWQpX2F1
dG9zY3JvbGwKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQorICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURy
YWdnZWQKKyAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEcmFnZ2VkCi0gICAgICAgIGxvY2F0aW9uOltbc2Vs
ZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisg
ICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBj
dXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRp
bWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2Vs
ZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAg
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorCiAgICAgW3NlbGYgbW91c2VEcmFnZ2VkOmZha2VFdmVudF07CiAjZW5k
aWYKIH0KQEAgLTMzNTQsMTIgKzMzMzUsOSBAQCAtIChCT09MKWFjY2VwdHNGaXJzdFJlc3BvbmRl
cgogICAgIC8vIG9yIGZyb20gY2FsbHMgYmFjayBmcm9tIFdlYkNvcmUgb25jZSB3ZSBiZWdpbiBt
b3VzZS1kb3duIGV2ZW50IGhhbmRsaW5nLgogI2lmICFQTEFURk9STShJT1MpICAgICAgICAgICAg
CiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TTGVmdE1v
dXNlRG93bgorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3du
CiAgICAgICAgICAgICAmJiAhX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3duRXZlbnQKICAgICAg
ICAgICAgICYmIE5TUG9pbnRJblJlY3QoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbc2VsZiBj
b252ZXJ0UmVjdDpbc2VsZiB2aXNpYmxlUmVjdF0gdG9WaWV3Om5pbF0pKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIHJldHVybiBOTzsKICAgICB9CiAjZWxzZQpAQCAt
MzUyOCwxMyArMzUwNiwxMCBAQCAtICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKIAogI2lmICFQ
TEFURk9STShJT1MpCiAgICAgICAgIGlmICghX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9u
aXRvcikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAg
X3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9u
aXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1hc2sgaGFuZGxlcjpeKE5T
RXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CisgICAgICAgICAgICBfcHJpdmF0ZS0+ZmxhZ3ND
aGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0
Y2hpbmdNYXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6XihOU0V2ZW50ICpmbGFn
c0NoYW5nZWRFdmVudCkgewogICAgICAgICAgICAgICAgIFtzZWxmIF9wb3N0RmFrZU1vdXNlTW92
ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50OmZsYWdzQ2hhbmdlZEV2ZW50XTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CiAgICAgICAgICAgICB9XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAg
IFtOU0V2ZW50IHJlbW92ZU1vbml0b3I6X3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRv
cl07CkBAIC00NTQwLDExICs0NTE1LDEyIEBAIC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAq
KWV2ZW50CiAgICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBbTlNJbnB1
dE1hbmFnZXIgY3VycmVudElucHV0TWFuYWdlcl07CiAKICAgICBpZiAoIVtjdXJyZW50SW5wdXRN
YW5hZ2VyIHdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gfHwgIVtjdXJyZW50SW5wdXRNYW5hZ2Vy
IGhhbmRsZU1vdXNlRXZlbnQ6ZXZlbnRdKSB7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAgICAgICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hh
bmdlOk5PIG1vdmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUgd2ViIHBhZ2UgaGFuZGxl
cyB0aGUgY29udGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6IHJldHVybnMgbmlsLCB3
ZSdsbCBnZXQgY29udHJvbCBjbGljayBldmVudHMgaGVyZS4KICAgICAgICAgLy8gV2UgZG9uJ3Qg
d2FudCB0byBwYXNzIHRoZW0gYWxvbmcgdG8gS0hUTUwgYSBzZWNvbmQgdGltZS4KLSAgICAgICAg
aWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAg
ICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRy
b2wpKSB7CiAgICAgICAgICAgICBfcHJpdmF0ZS0+aWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMg
PSBOTzsKIAogICAgICAgICAgICAgLy8gTGV0IFdlYkNvcmUgZ2V0IGEgY2hhbmNlIHRvIGRlYWwg
d2l0aCB0aGUgZXZlbnQuIFRoaXMgd2lsbCBjYWxsIGJhY2sgdG8gdXMKQEAgLTQ1NTMsNyArNDUy
OSw2IEBAIC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAg
ICAgY29yZWZyYW1lLT5ldmVudEhhbmRsZXIoKS5tb3VzZURvd24oZXZlbnQsIFtbc2VsZiBfd2Vi
Vmlld10gX3ByZXNzdXJlRXZlbnRdKTsKICAgICAgICAgfQogICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKICNlbmRpZgogCiAgICAgX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3du
RXZlbnQgPSBOTzsKQEAgLTQ4MTgsMTkgKzQ3OTMsMTIgQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5
Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlEb3duOiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCi0KKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogewogICAg
ICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1FdmVudCA9IFBsYXRmb3JtRXZlbnRG
YWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBwbGF0
Zm9ybUV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlE
b3duKTsKICAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwbGF0Zm9ybUV2ZW50
LCBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAgIH0KLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5VXA6Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgogICAgICAgICBy
ZXR1cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpLCBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmRlZmF1
bHRWaWV3KCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAwOwpAQCAtNTUyNCwxMSAr
NTQ5Miw4IEBAIC0gKEJPT0wpX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2
ZW50CiAgICAgaWYgKCFbc2VsZiBfY2FuRWRpdF0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykgIT0gTlND
b21tYW5kS2V5TWFzaykKKyAgICBpZiAoKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRN
b2RpZmllckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykgIT0gTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbW1hbmQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKIAogICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAgICAg
aWYgKFtzdHJpbmcgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAImIiXSA9PSBOU09yZGVyZWRTYW1l
KSB7CkBAIC02NDQ4LDE0ICs2NDEzLDExIEBAIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihL
ZXlib2FyZEV2ZW50KilldmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdDb21tCiAgICAg
ICAgIHJldHVybiBOTzsKIAogICAgIE5TRXZlbnQgKm1hY0V2ZW50ID0gcGxhdGZvcm1FdmVudC0+
bWFjRXZlbnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAo
W21hY0V2ZW50IHR5cGVdID09IE5TS2V5RG93biAmJiBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250
cm9sbGVyIGZpbHRlcktleURvd246bWFjRXZlbnRdKQorICAgIGlmIChbbWFjRXZlbnQgdHlwZV0g
PT0gTlNFdmVudFR5cGVLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIg
ZmlsdGVyS2V5RG93bjptYWNFdmVudF0pCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgCi0gICAg
aWYgKFttYWNFdmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKKyAgICBpZiAoW21hY0V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICByZXR1cm4gTk87Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgCiAgICAgcGFyYW1ldGVycy5ldmVudCA9
IGV2ZW50OwogICAgIF9wcml2YXRlLT5pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzID0gJnBh
cmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggNzhm
NTZlNDkxZTA4NmFhZTk4M2IzODA2OTlhNTUxNTdjZDk4ZmRiYS4uOTYwYzYzNzlkMWFjZTYwMDdi
ZTEyMDUyYWUyODQ3NDczNTQ3ZDg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERG
Vmlldy5tbQpAQCAtNjUsNiArNjUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJOU0F0dHJpYnV0
ZWRTdHJpbmdFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3
dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURl
Y2xhcmF0aW9ucy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPEFw
cGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlc1ByaXYuaD4KQEAgLTMyMSwxMCAr
MzIyLDcgQEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClwb2ludAogICAgIC8vIE92ZXJy
aWRlIGhpdFRlc3Qgc28gd2UgY2FuIG92ZXJyaWRlIG1lbnVGb3JFdmVudC4KICAgICBOU0V2ZW50
ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAgIE5TRXZlbnRUeXBlIHR5cGUgPSBb
ZXZlbnQgdHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYg
KHR5cGUgPT0gTlNSaWdodE1vdXNlRG93biB8fCAodHlwZSA9PSBOU0xlZnRNb3VzZURvd24gJiYg
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spKSkKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAodHlwZSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duIHx8ICh0eXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlm
aWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSkKICAgICAgICAgcmV0dXJu
IHNlbGY7CiAKICAgICByZXR1cm4gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOwpAQCAtMTAwOSwzOSAr
MTAwNywzMyBAQCAtICh2b2lkKVBERlZpZXdXaWxsQ2xpY2tPbkxpbms6KFBERlZpZXcgKilzZW5k
ZXIgd2l0aFVSTDooTlNVUkwgKilVUkwKICAgICBpbnQgYnV0dG9uID0gbm9CdXR0b247CiAgICAg
UmVmUHRyPEV2ZW50PiBldmVudDsKICAgICBzd2l0Y2ggKFtuc0V2ZW50IHR5cGVdKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VV
cDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IDE7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRv
biA9IFtuc0V2ZW50IGJ1dHRvbk51bWJlcl07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBOU0tleURvd246IHsKLSAgICAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9
IFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVu
dCk7Ci0gICAgICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVu
dDo6UmF3S2V5RG93bik7Ci0gICAgICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0
ZShwZSwgMCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgICAgICBidXR0b24gPSAwOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgICAgICBidXR0
b24gPSAxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVw
OgorICAgICAgICBidXR0b24gPSBbbnNFdmVudCBidXR0b25OdW1iZXJdOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogeworICAgICAgICBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQgcGUgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50KG5zRXZlbnQpOworICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxh
dGZvcm1FdmVudDo6UmF3S2V5RG93bik7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6
Y3JlYXRlKHBlLCAwKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7CiAgICAgICAg
IGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVl
LCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwg
MCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW25zRXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrLAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29udHJvbCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYg
TlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbiwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0LAorICAgICAgICAgICAgW25zRXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCwKICAgICAgICAgICAg
IGJ1dHRvbiwgMCwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCAwLCAwLCB0cnVlKTsKICAgICB9CiAK
QEAgLTExNDksOSArMTE0MSw3IEBAIC0gKE5TRXZlbnQgKilfZmFrZUtleUV2ZW50V2l0aEZ1bmN0
aW9uS2V5Oih1bmljaGFyKWZ1bmN0aW9uS2V5CiAgICAgLy8gRklYTUUgNDQwMDQ4MDogd2hlbiBQ
REZWaWV3IGltcGxlbWVudHMgdGhlIHN0YW5kYXJkIHNjcm9sbGluZyBzZWxlY3RvcnMgdGhhdCB0
aGlzCiAgICAgLy8gbWV0aG9kIGlzIHVzZWQgdG8gbWltaWMsIHdlIGNhbiBlbGltaW5hdGUgdGhp
cyBtZXRob2QgYW5kIGNhbGwgdGhlbSBkaXJlY3RseS4KICAgICBOU1N0cmluZyAqa2V5QXNTdHJp
bmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmZ1bmN0aW9uS2V5IGxlbmd0aDox
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gW05TRXZl
bnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleURvd24KKyAgICByZXR1cm4gW05TRXZlbnQga2V5RXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2NhdGlvbjpOU1plcm9Qb2ludAogICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZs
YWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0xMTYxLDcg
KzExNTEsNiBAQCAtIChOU0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhGdW5jdGlvbktleToodW5p
Y2hhcilmdW5jdGlvbktleQogICAgICAgICAgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmtl
eUFzU3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FSZXBlYXQ6Tk8KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga2V5Q29kZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKIH0KIAogLSAodm9pZClfbG9va1VwSW5EaWN0aW9uYXJ5RnJvbU1lbnU6KGlkKXNl
bmRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxl
dGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21w
bGV0aW9uQ29udHJvbGxlci5tbQppbmRleCA0MzgyYjA0NDc0ZTYwYzhjMjM3MzMwNDdiODEzOTY0
YTRmNzg0MjYzLi43YjllNWRiY2Y0OGMyMTZiNmM1NjYzMTBjMTc0ZTQzMTJjNTYyOGU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5h
bC5oIgogI2ltcG9ydCAiV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRl
cmZhY2UgTlNXaW5kb3cgKFdlYk5TV2luZG93RGV0YWlscykKIC0gKHZvaWQpX3NldEZvcmNlQWN0
aXZlQ29udHJvbHM6KEJPT0wpZmxhZzsKQEAgLTExMiwxMCArMTEzLDcgQEAgLSAodm9pZClfYnVp
bGRVSQogICAgIFtzY3JvbGxWaWV3IHNldERvY3VtZW50VmlldzpfdGFibGVWaWV3XTsKICAgICBb
X3RhYmxlVmlldyByZWxlYXNlXTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICBfcG9wdXBXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRl
bnRSZWN0OnNjcm9sbEZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgX3BvcHVwV2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJs
ZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW19wb3B1
cFdpbmRvdyBzZXRBbHBoYVZhbHVlOjAuODhmXTsKICAgICBbX3BvcHVwV2luZG93IHNldENvbnRl
bnRWaWV3OnNjcm9sbFZpZXddOwogICAgIFtzY3JvbGxWaWV3IHJlbGVhc2VdOwpAQCAtMTU1LDgg
KzE1Myw4IEBAIC0gKHZvaWQpX3BsYWNlUG9wdXBXaW5kb3c6KE5TUG9pbnQpdG9wTGVmdAogI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICBtYXhXaWR0aCA9IGNlaWxm
KFtOU1Njcm9sbFZpZXcgZnJhbWVTaXplRm9yQ29udGVudFNpemU6TlNNYWtlU2l6ZShtYXhXaWR0
aCwgMTAwLjBmKSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZ
RVMgYm9yZGVyVHlwZTpOU05vQm9yZGVyXS53aWR0aCk7Ci0gICAgICAgIG1heFdpZHRoID0gY2Vp
bGYoW05TV2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4w
ZiwgbWF4V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2tdLnNp
emUud2lkdGgpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBtYXhXaWR0
aCA9IGNlaWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAu
MGYsIDAuMGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0Jv
cmRlcmxlc3NdLnNpemUud2lkdGgpOwogICAgICAgICBtYXhXaWR0aCArPSA1LjBmOwogICAgICAg
ICB3aW5kb3dGcmFtZS5zaXplLndpZHRoID0gc3RkOjptYXgobWF4V2lkdGgsIHdpbmRvd0ZyYW1l
LnNpemUud2lkdGgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCA3Y2ZhYTg3YjU1NmViNDc2YmYzYzVmZWQ1ZTAzZTY4ZmJhMmRlNGJmLi5iZTMyNmU3ZjhlNzMy
NzY5OTZkZGNlNWM5MzMyYWY0NmI5YWY3MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCkBAIC0yMTMsNiArMjEzLDcgQEAKICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBv
cnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0
Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KIAogI2lmICFQTEFURk9STShJT1MpCkBAIC02MDk1LDEw
ICs2MDk2LDcgQEAgLSAoRHJhZ0FwcGxpY2F0aW9uRmxhZ3MpYXBwbGljYXRpb25GbGFnczooaWQg
PE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxp
Y2F0aW9uSGFzQXR0YWNoZWRTaGVldDsKICAgICBpZiAoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1Nv
dXJjZV0gPT0gc2VsZikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbTlNBcHAgY3Vy
cmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlm
aWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAgICAgZmxhZ3MgfD0g
RHJhZ0FwcGxpY2F0aW9uSXNDb3B5S2V5RG93bjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RHJh
Z0FwcGxpY2F0aW9uRmxhZ3M+KGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9DaGlsZFByb2Nlc3NNYWMubW0KaW5kZXggMmU2NTgwNmRiNWQ2OGYwYTRhMjgyZDM4M2I5NmU3
YjQ1MTZiOTA0MC4uYjBjNTU0ZDRkYTYyM2Q5OWIwMTQzNTg2N2IyMDc3MjViODY3NDUzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTM5LDYg
KzM5LDcgQEAKICNpbXBvcnQgPHB3ZC5oPgogI2ltcG9ydCA8c3RkbGliLmg+CiAjaW1wb3J0IDxz
eXNleGl0cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAKICNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQpAQCAtMTk3LDEwICsxOTgsNyBAQCB2b2lkIENoaWxkUHJvY2Vz
czo6c3RvcE5TQXBwUnVuTG9vcCgpCiAgICAgQVNTRVJUKFtOU0FwcCBpc1J1bm5pbmddKTsKICAg
ICBbTlNBcHAgc3RvcDpuaWxdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBs
aWNhdGlvbkRlZmluZWQgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJGbGFnczow
IHRpbWVzdGFtcDowLjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTowIGRhdGEx
OjAgZGF0YTI6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAq
ZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVBcHBsaWNhdGlv
bkRlZmluZWQgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJGbGFnczowIHRpbWVz
dGFtcDowLjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTowIGRhdGExOjAgZGF0
YTI6MF07CiAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRydWVdOwogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9y
eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4
IGE4NWVmY2FlZTlhNTJkOGMwNDU2NjZkOTRjNDkxODcwY2E2OGE3ZDMuLjJmMTU4YzAzZTNiZTM4
MzhjMDYzYjIxYjIwZmM5ZjY3YzcyYjljNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC02Myw3OCArNjMsNjkgQEAgc3RhdGljIFdlYk1vdXNl
RXZlbnQ6OkJ1dHRvbiBjdXJyZW50TW91c2VCdXR0b24oKQogCiBzdGF0aWMgV2ViTW91c2VFdmVu
dDo6QnV0dG9uIG1vdXNlQnV0dG9uRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsK
LSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
V2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3du
OgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b247
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0
dXJuIFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVm
dE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50
OjpMZWZ0QnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOwor
ICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
T3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAg
ICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKICNpZiBkZWZpbmVkKF9f
TFA2NF9fKQotICAgICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2
ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0g
ICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgICAgIHJldHVybiBjdXJyZW50TW91
c2VCdXR0b24oKTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3Vz
ZUV2ZW50OjpOb0J1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAg
IGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICAgICAgcmV0dXJuIGN1cnJlbnRNb3Vz
ZUJ1dHRvbigpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpO
b0J1dHRvbjsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRp
YyBXZWJFdmVudDo6VHlwZSBtb3VzZUV2ZW50VHlwZUZvckV2ZW50KE5TRXZlbnQqIGV2ZW50KQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoW2V2ZW50
IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNl
IE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNh
c2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVu
dDo6TW91c2VNb3ZlOwotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2Fz
ZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlRG93bjsKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZVVwOgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOwotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBO
U0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0
dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURv
d246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICAgICAg
cmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBX
ZWJFdmVudDo6TW91c2VNb3ZlOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IH0KIAogc3RhdGljIGludCBjbGlja0NvdW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChbZXZlbnQgdHlw
ZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0
TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2Ug
TlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAg
Y2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVm
dE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNl
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50
XTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQo
TlNFdmVudCAqZXZlbnQpCkBAIC0xNDMsMjIgKzEzNCwxOSBAQCBzdGF0aWMgTlNQb2ludCBnbG9i
YWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogI2lmIGRlZmluZWQoX19MUDY0X18pCiAg
ICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgY2FzZSBOU0xl
ZnRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgIGNhc2UgTlNNb3Vz
ZUVudGVyZWQ6Ci0gICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgIGNhc2UgTlNNb3VzZU1vdmVk
OgotICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdn
ZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246
Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6
Ci0gICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4
aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVT
Y3JvbGxXaGVlbDoKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6Omdsb2JhbFBvaW50KFtldmVudCBs
b2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHJldHVybiBOU1plcm9Qb2ludDsKQEAgLTE3MSwyMiArMTU5LDE5IEBAIHN0YXRpYyBOU1BvaW50
IHBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG93VmlldykKICNpZiBk
ZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNMZWZ0TW91c2VE
b3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNMZWZ0TW91c2VV
cDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAg
ICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgY2Fz
ZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgY2Fz
ZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICBj
YXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2UgTlNTY3JvbGxXaGVlbDogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVm
dE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3Zl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6
CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDogewogICAgICAgICAvLyBOb3RlOiBUaGlz
IHdpbGwgaGF2ZSBpdHMgb3JpZ2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVu
bGVzcyB3aW5kb3dWaWV3IGlzIGZsaXBwZWQuCiAgICAgICAgIC8vIEluIHRob3NlIGNhc2VzLCB0
aGUgWSBjb29yZGluYXRlIGdldHMgZmxpcHBlZCBieSBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFp
bmluZ1dpbmRvdy4KICAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbklu
V2luZG93XTsKQEAgLTI0MCwxMCArMjI1LDcgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgdGV4dEZy
b21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSkKIHsKICAgICBp
ZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0g
TlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtl
dmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmluZyhbZXZlbnQgY2hhcmFjdGVyc10pOwogfQpA
QCAtMjUyLDEwICsyMzQsNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyB1bm1vZGlmaWVkVGV4dEZy
b21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCByZXBsYWNlc1NvZnRTcAogewogICAgIGlmIChy
ZXBsYWNlc1NvZnRTcGFjZSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0Zs
YWdzQ2hhbmdlZCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKICAgICByZXR1cm4gU3RyaW5nKFtldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2Rp
ZmllcnNdKTsKIH0KQEAgLTI2NCw3NCArMjQzLDY4IEBAIHN0YXRpYyBib29sIGlzS2V5cGFkRXZl
bnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIGlzIHRoZSB0eXBl
IG9mIGV2ZW50IHRoYXQgaGFzIGEga2V5Q29kZS4KICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TS2V5
RG93bjoKLSAgICAgICAgY2FzZSBOU0tleVVwOgotICAgICAgICBjYXNlIE5TRmxhZ3NDaGFuZ2Vk
OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUtleURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVGbGFnc0NoYW5nZWQ6CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBzd2l0Y2ggKFtldmVudCBrZXlDb2RlXSkgewot
ICAgICAgICBjYXNlIDcxOiAvLyBDbGVhcgotICAgICAgICBjYXNlIDgxOiAvLyA9Ci0gICAgICAg
IGNhc2UgNzU6IC8vIC8KLSAgICAgICAgY2FzZSA2NzogLy8gKgotICAgICAgICBjYXNlIDc4OiAv
LyAtCi0gICAgICAgIGNhc2UgNjk6IC8vICsKLSAgICAgICAgY2FzZSA3NjogLy8gRW50ZXIKLSAg
ICAgICAgY2FzZSA2NTogLy8gLgotICAgICAgICBjYXNlIDgyOiAvLyAwCi0gICAgICAgIGNhc2Ug
ODM6IC8vIDEKLSAgICAgICAgY2FzZSA4NDogLy8gMgotICAgICAgICBjYXNlIDg1OiAvLyAzCi0g
ICAgICAgIGNhc2UgODY6IC8vIDQKLSAgICAgICAgY2FzZSA4NzogLy8gNQotICAgICAgICBjYXNl
IDg4OiAvLyA2Ci0gICAgICAgIGNhc2UgODk6IC8vIDcKLSAgICAgICAgY2FzZSA5MTogLy8gOAot
ICAgICAgICBjYXNlIDkyOiAvLyA5Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgfQor
ICAgIGNhc2UgNzE6IC8vIENsZWFyCisgICAgY2FzZSA4MTogLy8gPQorICAgIGNhc2UgNzU6IC8v
IC8KKyAgICBjYXNlIDY3OiAvLyAqCisgICAgY2FzZSA3ODogLy8gLQorICAgIGNhc2UgNjk6IC8v
ICsKKyAgICBjYXNlIDc2OiAvLyBFbnRlcgorICAgIGNhc2UgNjU6IC8vIC4KKyAgICBjYXNlIDgy
OiAvLyAwCisgICAgY2FzZSA4MzogLy8gMQorICAgIGNhc2UgODQ6IC8vIDIKKyAgICBjYXNlIDg1
OiAvLyAzCisgICAgY2FzZSA4NjogLy8gNAorICAgIGNhc2UgODc6IC8vIDUKKyAgICBjYXNlIDg4
OiAvLyA2CisgICAgY2FzZSA4OTogLy8gNworICAgIGNhc2UgOTE6IC8vIDgKKyAgICBjYXNlIDky
OiAvLyA5CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KICAgICAgCiAgICAgIHJldHVybiBm
YWxzZTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVu
dCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50
IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09
IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdl
ZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleVVwOwogICAg
IC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNzZXMgYm90aCBTaGlm
dCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0IHJlbGVhc2luZyBv
bmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0g
ICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2FzZSA1NTogLy8gTGVm
dCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5T
Q29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1NzogLy8g
Q2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNB
bHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU2OiAv
LyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAg
ICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKSA9PSAwOwot
ICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAgICAgIGNhc2Ug
NjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2Fz
ZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAg
ICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykg
PT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgotICAgICAg
ICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9uS2V5TWFzaykg
PT0gMDsKKyAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVm
dCBDb21tYW5kCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZl
bnRNb2RpZmllckZsYWdDb21tYW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAg
ICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdD
YXBzTG9jayk7CisKKyAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8g
UmlnaHQgU2hpZnQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNF
dmVudE1vZGlmaWVyRmxhZ1NoaWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAg
Y2FzZSA2MTogLy8gUmlnaHQgQWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTogLy8gTGVm
dCBDdHJsCisgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4gIShbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBj
YXNlIDYzOiAvLyBGdW5jdGlvbgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTQ4NCwxMCArNDU3LDcg
QEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZl
bnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEKICAgICBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
ICAgICAgID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgaW50IG5hdGl2
ZVZpcnR1YWxLZXlDb2RlICAgICAgICA9IFtldmVudCBrZXlDb2RlXTsKICAgICBpbnQgbWFjQ2hh
ckNvZGUgICAgICAgICAgICAgICAgID0gV0tHZXROU0V2ZW50S2V5Q2hhcihldmVudCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgYm9vbCBhdXRvUmVwZWF0ICAgICAg
ICAgICAgICAgICA9IChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpICYmIFtldmVudCBp
c0FSZXBlYXRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGJvb2wgYXV0b1Jl
cGVhdCAgICAgICAgICAgICAgICAgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0No
YW5nZWQgJiYgW2V2ZW50IGlzQVJlcGVhdF07CiAgICAgYm9vbCBpc0tleXBhZCAgICAgICAgICAg
ICAgICAgICA9IGlzS2V5cGFkRXZlbnQoZXZlbnQpOwogICAgIGJvb2wgaXNTeXN0ZW1LZXkgICAg
ICAgICAgICAgICAgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUg
TWFjLgogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JF
dmVudChldmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KaW5kZXggMzJlNjM5YzRkOTE5YWQxNmU5YTk0ODJiOTM1Y2VmMDQ2Mzc3MWZiYS4uNzYz
ZDkwNjA1NzU5OTNkOGNiMDczYzZhYTRlMDk1YzBkYmI0YTgzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtOTMsNiArOTMsNyBAQAogI2lt
cG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxzeXMvc3RhdC5oPgogI2lt
cG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAj
aW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViVmlld0ltcGxJbmNsdWRlcy5oPgpAQCAtNjIwLDEx
ICs2MjEsOCBAQCBib29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcigpCiAgICAg
aWYgKGRpcmVjdGlvbiAhPSBOU0RpcmVjdFNlbGVjdGlvbikgewogICAgICAgICBOU0V2ZW50ICpl
dmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAgICAgICBOU0V2ZW50ICprZXlib2FyZEV2
ZW50ID0gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBp
ZiAoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkK
KyAgICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApCiAgICAgICAgICAgICBrZXlib2FyZEV2ZW50ID0g
ZXZlbnQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1fcGFnZS0+c2V0
SW5pdGlhbEZvY3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJvYXJkRXZlbnQg
IT0gbmlsLCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZhbHNlLCBmYWxz
ZSwgeyB9KSwgW10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7IH0pOwogICAgIH0KICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTg0OCwxMCArODQ2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBk
YXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNX
aW5kb3cgKndpbmRvdyA9IG1fdmlldy53aW5kb3c7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgaWYgKCh3aW5kb3cuc3R5bGVNYXNrICYgTlNGdWxsU2l6ZUNvbnRlbnRW
aWV3V2luZG93TWFzaykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCAmJiAh
W21fdmlldyBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGlmICgod2luZG93LnN0eWxlTWFzayAmIE5TV2luZG93U3R5bGVNYXNrRnVsbFNp
emVDb250ZW50VmlldykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCAmJiAh
W21fdmlldyBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgewogICAgICAgICBOU1JlY3QgY29udGVudExh
eW91dFJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0OndpbmRvdy5jb250ZW50TGF5b3V0UmVjdCBm
cm9tVmlldzpuaWxdOwogICAgICAgICBDR0Zsb2F0IG5ld1RvcENvbnRlbnRJbnNldCA9IE5TTWF4
WShjb250ZW50TGF5b3V0UmVjdCkgLSBOU0hlaWdodChjb250ZW50TGF5b3V0UmVjdCk7CiAgICAg
ICAgIGlmIChtX3RvcENvbnRlbnRJbnNldCAhPSBuZXdUb3BDb250ZW50SW5zZXQpCkBAIC0xMjI4
LDEwICsxMjIzLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdygpCiAK
ICAgICAgICAgaWYgKCFtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikgewogICAgICAgICAgICAg
YXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05T
RXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2Vk
TWFzayBoYW5kbGVyOlt3ZWFrVGhpc10gKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2
ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFz
azpOU0V2ZW50TWFza0ZsYWdzQ2hhbmdlZCBoYW5kbGVyOlt3ZWFrVGhpc10gKE5TRXZlbnQgKmZs
YWdzQ2hhbmdlZEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAg
ICAgICAgICAgICAgICB3ZWFrVGhpcy0+cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0No
YW5nZWRFdmVudChmbGFnc0NoYW5nZWRFdmVudCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZs
YWdzQ2hhbmdlZEV2ZW50OwpAQCAtMTMwMiwxMiArMTI5NCw5IEBAIE5TVmlldyAqV2ViVmlld0lt
cGw6OmhpdFRlc3QoQ0dQb2ludCBwb2ludCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6cG9zdEZha2VN
b3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChOU0V2ZW50ICpmbGFnc0NoYW5nZWRF
dmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50
ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxv
Y2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZl
bnRTdHJlYW0KKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50Lndp
bmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KICAgICAgICAgbW9kaWZpZXJG
bGFnczpmbGFnc0NoYW5nZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5n
ZWRFdmVudC50aW1lc3RhbXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvd051
bWJlcgogICAgICAgICBjb250ZXh0Om51bGxwdHIgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAg
cHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgTmF0aXZlV2Vi
TW91c2VFdmVudCB3ZWJFdmVudChmYWtlRXZlbnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCks
IG1fdmlldyk7CiAgICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsKIH0KQEAg
LTE2NTYsMTAgKzE2NDUsNyBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuUGxhY2Vo
b2xkZXJWaWV3KCkKIE5TV2luZG93ICpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNjcmVlbldpbmRv
dygpCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGZyYW1lXSBzdHls
ZU1hc2s6KE5TQm9yZGVybGVzc1dpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2spIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVhc2VdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVl
bldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5d
IGZyYW1lXSBzdHlsZU1hc2s6KE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyB8IE5TV2luZG93
U3R5bGVNYXNrUmVzaXphYmxlKSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dIGF1dG9yZWxlYXNlXTsKICNlbHNlCiAgICAgcmV0dXJuIG5pbDsKICNlbmRpZgpAQCAtMjYz
MSw5ICsyNjE3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVtb3ZlVHJhY2tpbmdSZWN0cyhOU1Ry
YWNraW5nUmVjdFRhZyAqdGFncywgaW50IGNvdW50KQogdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRv
b2xUaXBNb3VzZUV4aXRlZCgpCiB7CiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5k
b3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0
RXZlbnRXaXRoVHlwZTpOU01vdXNlRXhpdGVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05T
RXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRXhpdGVkCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01h
a2VQb2ludCgwLCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjY0MiwxNiArMjYyNiwxMyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YTptX3Ry
YWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBb
bV90cmFja2luZ1JlY3RPd25lciBtb3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQogCiB2b2lkIFdl
YlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJlZCgpCiB7CiAgICAgLy8gTm90aGluZyBt
YXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRW50ZXJlZAorICAgIE5TRXZl
bnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVNb3VzZUVudGVyZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yNjYwLDcgKzI2NDEs
NiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJlZCgpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjowCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2luZ051bWJlcjpUUkFD
S0lOR19SRUNUX1RBRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXNlckRhdGE6bV90cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgW21fdHJhY2tpbmdSZWN0T3duZXIgbW91c2VFbnRlcmVkOmZha2VF
dmVudF07CiB9CiAKQEAgLTI4MTYsMTAgKzI3OTYsNyBAQCBzdGF0aWMgV2ViQ29yZTo6RHJhZ0Fw
cGxpY2F0aW9uRmxhZ3MgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcoTlNWaWV3ICp2aWV3LCBpZCA8
TgogICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25IYXNBdHRhY2hlZFNo
ZWV0OwogICAgIGlmIChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2UgPT0gdmlldykKICAgICAg
ICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtOU0FwcCBjdXJyZW50RXZlbnRdLm1v
ZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgaWYgKFtOU0FwcCBjdXJyZW50RXZlbnRdLm1vZGlmaWVyRmxhZ3MgJiBOU0V2
ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBw
bGljYXRpb25Jc0NvcHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpE
cmFnQXBwbGljYXRpb25GbGFncz4oZmxhZ3MpOwogCkBAIC0zMzU5LDEwICszMzM2LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogCiB2
b2lkIFdlYlZpZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJUKCFldmVudCB8
fCBldmVudC50eXBlID09IE5TTGVmdE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TUmlnaHRN
b3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU090aGVyTW91c2VEb3duKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gTlNF
dmVudFR5cGVMZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVSaWdodE1v
dXNlRG93biB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24pOwogCiAg
ICAgaWYgKGV2ZW50ID09IG1fbGFzdE1vdXNlRG93bkV2ZW50LmdldCgpKQogICAgICAgICByZXR1
cm47CkBAIC0zMzk5LDExICszMzczLDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlkUmVzdG9yZVNj
cm9sbFBvc2l0aW9uKCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChOU0V2
ZW50ICpldmVudCwgYm9vbCBldmVudFdhc0hhbmRsZWQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCisgICAg
aWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24pCiAgICAgICAgIHJldHVybjsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIGlmICh0cnlQb3N0UHJvY2Vzc1Bs
dWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKGV2ZW50KSkKICAgICAgICAgcmV0dXJuOwpAQCAt
MzQ3OSwxMSArMzQ1MCw4IEBAIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IFdlYlZp
ZXdJbXBsOjpjb2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2CiB7CiAgICAgVmVjdG9y
PFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gY29tbWFuZHM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAg
ICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJu
IGNvbW1hbmRzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKCFt
X2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMpOwogICAgIG1fY29sbGVjdGVkS2V5cHJlc3NDb21t
YW5kcyA9ICZjb21tYW5kczsKQEAgLTM4NTgsMTEgKzM4MjYsOCBAQCBib29sIFdlYlZpZXdJbXBs
OjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVudCkKICAgICAvLyBXZSBnZXQgRXNj
IGtleSBoZXJlIGFmdGVyIHByb2Nlc3NpbmcgZWl0aGVyIEVzYyBvciBDbWQrcGVyaW9kLiBUaGUg
Zm9ybWVyIHN0YXJ0cyBhcyBhIGtleURvd24sIGFuZCB0aGUgbGF0dGVyIHN0YXJ0cyBhcyBhIGtl
eSBlcXVpdmFsZW50LAogICAgIC8vIGJ1dCBib3RoIGdldCB0cmFuc2Zvcm1lZCB0byBhIGNhbmNl
bE9wZXJhdGlvbjogY29tbWFuZCwgZXhlY3V0aW5nIHdoaWNoIHBhc3NlcyBhbiBFc2Mga2V5IGV2
ZW50IHRvIC1wZXJmb3JtS2V5RXF1aXZhbGVudDouCiAgICAgLy8gRG9uJ3QgaW50ZXJwcmV0IHRo
aXMgZXZlbnQgYWdhaW4sIGF2b2lkaW5nIHJlLWVudHJhbmN5IGFuZCBpbmZpbml0ZSBsb29wcy4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1tldmVudCBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0gJiYgIShbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2sp
KQorICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRv
U3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykpCiAgICAgICAgIHJldHVybiBbbV92aWV3
IF93ZWJfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAKICAgICBpZiAobV9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgewogICAg
ICAgICAvLyBXZWJDb3JlIGhhcyBhbHJlYWR5IHNlZW4gdGhlIGV2ZW50LCBubyBuZWVkIGZvciBj
dXN0b20gcHJvY2Vzc2luZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCmluZGV4IGYwN2QyNzlk
NjM3ZDMwZjhmNTA1MzE3ZDhmMDk2MDU1N2ExMWQyZDIuLjhmMzdkNDI2MTUyYjYxN2Q1NWM5MTQ4
ODE1MTE0ZjhjMzM5ZTdjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpAQCAtMzksNiAr
MzksNyBAQAogI2ltcG9ydCA8Y3J0X2V4dGVybnMuaD4KICNpbXBvcnQgPG1hY2gtby9keWxkLmg+
CiAjaW1wb3J0IDxzcGF3bi5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIEBpbnRlcmZh
Y2UgV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IDogTlNXaW5kb3cgCkBAIC0yMzEsMTAgKzIzMiw3
IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1f
cGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwog
ICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xk
ZXJXaW5kb3cgPSBhZG9wdE5TKFtbV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TQm9yZGVy
bGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10p
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cg
PSBhZG9wdE5TKFtbV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRl
bnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNr
Qm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAg
ICAgW21fcGxhY2Vob2xkZXJXaW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKICAgICAK
ICAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25XaWxsQmVjb21lQWN0aXZl
Tm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCBhNDgz
OTY0ZDhmMWYyMjZkNGFlY2MyN2NjYjBmMDc2MDcxYjdiYmQxLi5iYjVhZDdjMjFlODEwY2EzNjU2
NWVjYzc3N2QwNmFmMzFiYjAyODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC00OCw2ICs0OCw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL05TU2hhcmluZ1NlcnZpY2VTUEkuaD4KICNpbXBvcnQgPFdlYktpdFN5
c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC00NjMsMTAgKzQ2NCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94
eU1hYzo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVu
CiAgICAgW1tXS01lbnVUYXJnZXQgc2hhcmVkTWVudVRhcmdldF0gc2V0TWVudVByb3h5OnRoaXNd
OwogCiAgICAgTlNQb2ludCBtZW51TG9jYXRpb24gPSBbbV93ZWJWaWV3IGNvbnZlcnRQb2ludDpt
X2NvbnRleHQubWVudUxvY2F0aW9uKCkgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlmaWVyRmxh
Z3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRvdy53aW5kb3dOdW1i
ZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAgbG9jYXRpb246bWVu
dUxvY2F0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJW
aWV3LndpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0Nv
dW50OjAgcHJlc3N1cmU6MF07CiAgICAgW05TTWVudSBwb3BVcENvbnRleHRNZW51Om1fbWVudS5n
ZXQoKSB3aXRoRXZlbnQ6ZXZlbnQgZm9yVmlldzptX3dlYlZpZXddOwogCiAgICAgaWYgKG1fY29u
dGV4dE1lbnVMaXN0ZW5lcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXggMGE3OTkxMzQ2ZDE1Y2NmYWM3NzQzNWVm
MzBlZjhkZjgyMmFmYWUyMy4uZjA2YjU4NDJhY2Q1MzRkZmUyNDEwZmVjYTlhMWFkZmI2ZWE5Nzc5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQ
cm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3Rv
clByb3h5TWFjLm1tCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5n
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8d3RmL21hYy9B
cHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNl
NjQuaD4KIAogU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZh
dGVGcmFtZXdvcmtzLCBBKQpAQCAtNDgsMTAgKzQ5LDcgQEAgU09GVF9MSU5LX1NUQUdFRF9GUkFN
RVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVGcmFtZXdvcmtzLCBBKQogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi1zdGF0aWMgY29uc3QgTlNVSW50ZWdlciB3aW5kb3dTdHlsZU1h
c2sgPSBOU1RpdGxlZFdpbmRvd01hc2sgfCBOU0Nsb3NhYmxlV2luZG93TWFzayB8IE5TTWluaWF0
dXJpemFibGVXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrIHwgTlNGdWxsU2l6ZUNv
bnRlbnRWaWV3V2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK3N0YXRp
YyBjb25zdCBOU1VJbnRlZ2VyIHdpbmRvd1N0eWxlTWFzayA9IE5TV2luZG93U3R5bGVNYXNrVGl0
bGVkIHwgTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZSB8IE5TV2luZG93U3R5bGVNYXNrTWluaWF0
dXJpemFibGUgfCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNr
RnVsbFNpemVDb250ZW50VmlldzsKIAogLy8gVGhlIHRpbWUgd2Uga2VlcCBvdXIgV2ViVmlldyBh
bGl2ZSBiZWZvcmUgY2xvc2luZyBpdCBhbmQgaXRzIHByb2Nlc3MuCiAvLyBSZXVzaW5nIHRoZSBX
ZWJWaWV3IGltcHJvdmVzIHN0YXJ0IHVwIHRpbWUgZm9yIHBlb3BsZSB0aGF0IGp1bXAgaW4gYW5k
IG91dCBvZiB0aGUgSW5zcGVjdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KaW5kZXggZDI5ZDA4OTA1MmM4ODdhZmI4NjQy
Mzg0NTVhYTE4ODRiNGRkNDY1Yy4uYzIyOWZiZDBiOGJlYmJhZjExNWMzNTNlODNjN2UwODQ2NTA2
MDM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1l
bnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVw
TWVudVByb3h5TWFjLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRp
ZXMuaCIKICNpbXBvcnQgIldlYlBvcHVwSXRlbS5oIgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50
ZXJmYWNlLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTc0LDE5ICs3NSwxMyBAQCB2
b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpwb3B1bGF0ZShjb25zdCBWZWN0b3I8V2ViUG9wdXBJ
dGVtPiYgaXRlbXMsIE5TRm9udCAqZgogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVBh
cmFncmFwaFN0eWxlPiBwYXJhZ3JhcGhTdHlsZSA9IGFkb3B0TlMoW1tOU1BhcmFncmFwaFN0eWxl
IGRlZmF1bHRQYXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNvcHldKTsKICAgICAgICAgICAgIE5TV3Jp
dGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uID0gaXRlbXNbaV0ubV90ZXh0RGlyZWN0aW9u
ID09IExUUiA/IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0
aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRp
bmdEaXJlY3Rpb246d3JpdGluZ0RpcmVjdGlvbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVU
ZXh0RGlyZWN0aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFs
aWdubWVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBbcGFy
YWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVGV4
dEFsaWdubWVudExlZnQgOiBOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAgICAgICAgICBSZXRh
aW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gYXR0cmlidXRlcyA9IGFkb3B0TlMoW1tOU011dGFi
bGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aE9iamVjdHNBbmRLZXlzOgogICAgICAgICAgICAg
ICAgIHBhcmFncmFwaFN0eWxlLmdldCgpLCBOU1BhcmFncmFwaFN0eWxlQXR0cmlidXRlTmFtZSwK
ICAgICAgICAgICAgICAgICBmb250LCBOU0ZvbnRBdHRyaWJ1dGVOYW1lLAogICAgICAgICAgICAg
bmlsXSk7CiAgICAgICAgICAgICBpZiAoaXRlbXNbaV0ubV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJp
ZGUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgICAg
ICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tO
U051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1RleHRX
cml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1
ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJl
Y3Rpb24gKyBOU1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgICAgIFJl
dGFpblB0cjxOU0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9wdE5TKFtbTlNBcnJh
eSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1ZS5nZXQoKSwgbmls
XSk7CiAgICAgICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0OndyaXRpbmdEaXJlY3Rp
b25BcnJheS5nZXQoKSBmb3JLZXk6TlNXcml0aW5nRGlyZWN0aW9uQXR0cmlidXRlTmFtZV07CiAg
ICAgICAgICAgICB9CkBAIC0xNTQsMTggKzE0OSwxNSBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5
TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4
dAogCiAgICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZTsKICAgICBzd2l0Y2ggKGRhdGEubWVu
dVNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjYXNlIFdl
YkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOgotICAgICAgICBjb250
cm9sU2l6ZSA9IE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5T
Q29udHJvbFNpemVSZWd1bGFyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0g
TlNTbWFsbENvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVT
bWFsbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6
UG9wdXBNZW51U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNNaW5pQ29udHJvbFNp
emU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZU1pbmk7CiAgICAgICAgIGJy
ZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIFJlZjxXZWJQ
b3B1cE1lbnVQcm94eU1hYz4gcHJvdGVjdCgqdGhpcyk7CkBAIC0xODMsMTMgKzE3NSwxMSBAQCB2
b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJl
Y3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgIGlmICghbV9jbGllbnQtPmN1cnJlbnRseVByb2Nl
c3NlZE1vdXNlRG93bkV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBOU0V2ZW50KiBpbml0aWF0aW5nTlNFdmVudCA9
IG1fY2xpZW50LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpLT5uYXRpdmVFdmVu
dCgpOwotICAgIGlmIChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0gTlNMZWZ0TW91c2VEb3du
KQorICAgIGlmIChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVMZWZ0TW91
c2VEb3duKQogICAgICAgICByZXR1cm47CiAKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAorICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVw
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltp
bml0aWF0aW5nTlNFdmVudCBsb2NhdGlvbkluV2luZG93XQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ05TRXZlbnQgbW9kaWZp
ZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1l
c3RhbXA6W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KQEAgLTE5OCwxMyArMTg4LDE0IEBA
IHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYg
cmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGV2ZW50TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCBldmVudE51bWJlcl0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrQ291bnQ6W2luaXRp
YXRpbmdOU0V2ZW50IGNsaWNrQ291bnRdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByZXNzdXJlOltpbml0aWF0aW5nTlNFdmVudCBwcmVzc3VyZV1dOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZl
bnQgYXRTdGFydDpZRVNdOworICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9jYXRpb246W1ttX3dlYlZpZXcgd2luZG93XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU01vdXNlTW92ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRp
b246W1ttX3dlYlZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNl
TG9jYXRpb25dXQorICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpb
TlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdOU0V2
ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZXN0YW1wOltpbml0aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2luZG93TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCB3aW5kb3dOdW1iZXJd
CkBAIC0yMTIsNyArMjAzLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVw
TWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0Fw
cCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1
Z2luLm1tCmluZGV4IDVlZGU1NmVlZTQwYWNmZGI5OTAxMTlkZTdhY2U5MThlNjc4YmM2NjYuLjEy
NTE4ZGYzMzRjZjNmZGQ2NThkZjg5MTljMzM2MWIwODQyZTJkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQ
bHVnaW4ubW0KQEAgLTgwLDYgKzgwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2hlZWxFdmVudFRl
c3RUcmlnZ2VyLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQg
PHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMjc4LDMz
ICsxMjc5LDI4IEBAIHZvaWQgUERGUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0
X3QsIGNvbnN0IFdURjo6U3RyaW5nJikKICAgICAKIHN0YXRpYyBOU1VJbnRlZ2VyIG1vZGlmaWVy
RmxhZ3NGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50KQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5T
U2hpZnRLZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNDb250
cm9sS2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNBbHRlcm5hdGVL
ZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQubWV0YUtleSgpID8gTlNDb21tYW5kS2V5TWFz
ayA6IDApOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoZXZlbnQu
c2hpZnRLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCA6IDApCisgICAgICAgIHwgKGV2
ZW50LmNvbnRyb2xLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sIDogMCkKKyAgICAg
ICAgfCAoZXZlbnQuYWx0S2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uIDogMCkKKyAg
ICAgICAgfCAoZXZlbnQubWV0YUtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQgOiAw
KTsKIH0KICAgICAKIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBX
ZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsKICAgICBj
YXNlIFdlYkV2ZW50OjpLZXlEb3duOgotICAgICAgICBldmVudFR5cGUgPSBOU0tleURvd247Cisg
ICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5RG93bjsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgY2FzZSBXZWJFdmVudDo6S2V5VXA6Ci0gICAgICAgIGV2ZW50VHlwZSA9IE5TS2V5
VXA7CisgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlRG93bjoKICAgICAgICAgc3dpdGNoIChz
dGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAg
ICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlw
ZSA9IE5TTGVmdE1vdXNlRG93bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93bjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdl
Yk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdo
dE1vdXNlRG93bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURvd247CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMTIsMTAgKzEzMDgsMTAgQEAgc3RhdGljIGJvb2wg
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5
cGUmIGV2ZW50VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZVVwOgogICAgICAgICBzd2l0Y2gg
KHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAg
ICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRU
eXBlID0gTlNMZWZ0TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBl
TGVmdE1vdXNlVXA7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJN
b3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRN
b3VzZVVwOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTEzMjMsMTMgKzEzMTksMTMgQEAgc3RhdGljIGJvb2wgZ2V0RXZl
bnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2
ZW50VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZU1vdmU6CiAgICAgICAgIHN3aXRjaCAoc3Rh
dGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAg
ICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUg
PSBOU0xlZnRNb3VzZURyYWdnZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2Fz
ZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5T
UmlnaHRNb3VzZURyYWdnZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJp
Z2h0TW91c2VEcmFnZ2VkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2Ug
V2ViTW91c2VFdmVudDo6Tm9CdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU01vdXNl
TW92ZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ7CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTEzMzcsNyArMTMzMyw2IEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlw
ZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5
CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKIH0KICAgICAKIE5TRXZlbnQgKlBERlBsdWdpbjo6bnNFdmVudEZv
cldlYk1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0
aW9uLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5U
ZXh0QW5ub3RhdGlvbi5tbQppbmRleCA2YzYwYmRkZTk1ZmRkMzE3ZjZiNzE0ZTFmNDRmNmVlYjJm
MzNkMzBiLi42MDMxYzU5MGRjMjMxZWNjZmVlYTIwYTA0N2Y4NTY5NmNhNWQ4YTNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRB
bm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvSFRNTFRleHRBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2
ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtNTMsMjEgKzU0LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRp
YyBjb25zdCBTdHJpbmcgY3NzQWxpZ25tZW50VmFsdWVGb3JOU1RleHRBbGlnbm1lbnQoTlNUZXh0
QWxpZ25tZW50IGFsaWdubWVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKICAgICBzd2l0Y2ggKGFsaWdubWVudCkgewotICAgIGNhc2UgTlNMZWZ0VGV4dEFsaWdubWVu
dDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudExlZnQ6CiAgICAgICAgIHJldHVybiAibGVmdCI7
Ci0gICAgY2FzZSBOU1JpZ2h0VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVu
dFJpZ2h0OgogICAgICAgICByZXR1cm4gInJpZ2h0IjsKLSAgICBjYXNlIE5TQ2VudGVyVGV4dEFs
aWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudENlbnRlcjoKICAgICAgICAgcmV0dXJu
ICJjZW50ZXIiOwotICAgIGNhc2UgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50OgorICAgIGNhc2Ug
TlNUZXh0QWxpZ25tZW50SnVzdGlmaWVkOgogICAgICAgICByZXR1cm4gImp1c3RpZnkiOwotICAg
IGNhc2UgTlNOYXR1cmFsVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudE5h
dHVyYWw6CiAgICAgICAgIHJldHVybiAiLXdlYmtpdC1zdGFydCI7CiAgICAgfQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVy
biBTdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IGEzNmYz
YjMyM2FiOTE2NTE0NzdiZDNjN2JlMjhjNmEyM2RlOWIxN2QuLjYyNmU0MzZjNmFjNGZlNmI5YTdl
YjUzYzJkMzU2YmY3OTZmZjQ0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpA
QCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdUcnVuY2F0b3IuaD4KICNp
bXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAg
LTYzLDEwICs2NCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVy
dEltYWdlVG9CaXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEluCiAgICAgUmV0YWluUHRyPE5T
R3JhcGhpY3NDb250ZXh0PiBzYXZlZENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVu
dENvbnRleHRdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltO
U0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNz
Q29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAs
IDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9t
UmVjdDpOU1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246
MSByZXNwZWN0RmxpcHBlZDpZRVMgaGludHM6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6
ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0
IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJl
c3BlY3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNl
dEN1cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294119</attachid>
            <date>2016-11-07 19:11:47 -0800</date>
            <delta_ts>2016-11-07 19:22:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107190738.patch</filename>
            <type>text/plain</type>
            <size>158966</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KaW5kZXggYTZkNzgz
MjhlOWZlNjI3ZWYxNGFmYzljMGJkMGY2NjllYjI1NGQwYy4uNzI4ZDM0NGE5NDUwMzRiOWM3YTIw
ODVmNDU2M2RjMWJiNjk2NGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29y
TWFjLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
LmgiCiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL1N0
ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgV2ViQ29yZUN1cnNvckJ1bmRsZSA6IE5TT2JqZWN0IHsg
fQogQGVuZApAQCAtNjQsMTAgKzY1LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0N1cnNvcj4gY3Jl
YXRlQ3VzdG9tQ3Vyc29yKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGhvdFMKICAgICAg
ICAgTlNSZWN0IGZyb21SZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBpbWFnZS0+d2lkdGgoKSwgaW1h
Z2UtPmhlaWdodCgpKTsKIAogICAgICAgICBbZXhwYW5kZWRJbWFnZSBsb2NrRm9jdXNdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbnNJbWFnZSBkcmF3SW5S
ZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VP
dmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
bnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07CiAgICAgICAgIFtleHBh
bmRlZEltYWdlIHVubG9ja0ZvY3VzXTsKIAogICAgICAgICByZXR1cm4gYWRvcHROUyhbW05TQ3Vy
c29yIGFsbG9jXSBpbml0V2l0aEltYWdlOmV4cGFuZGVkSW1hZ2UuZ2V0KCkgaG90U3BvdDpob3RT
cG90XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRl
eCA2ODI0NmJlZmE1MjNlZGZmM2I2MDVjNjAxMTg3MTlkNDcyOThkMDliLi4wZmY0MjAyMDBjYzhi
ZDM0ODdlNDU2Zjc3OTBlZGVlOTVlOGY1NDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgIlN0cmluZ1Ry
dW5jYXRvci5oIgogI2ltcG9ydCAiVGV4dFJ1bi5oIgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03NSwxMCArNzYsNyBAQCBSZXRhaW5QdHI8
TlNJbWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0cjxOU0ltYWdlPiBp
bWFnZSwgZmxvYXQgZAogICAgIFJldGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2ZWRJbWFnZSA9IGFk
b3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W2ltYWdlLmdldCgpIHNpemVdXSk7
CiAgICAgCiAgICAgW2Rpc3NvbHZlZEltYWdlLmdldCgpIGxvY2tGb2N1c107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5T
WmVyb1BvaW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBb
aW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGVDb3B5IGZyYWN0aW9uOmRl
bHRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbaW1hZ2UuZ2V0KCkgZHJh
d0F0UG9pbnQ6TlNaZXJvUG9pbnQgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbaW1hZ2Ugc2l6
ZV0ud2lkdGgsIFtpbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3Bl
cmF0aW9uQ29weSBmcmFjdGlvbjpkZWx0YV07CiAgICAgW2Rpc3NvbHZlZEltYWdlLmdldCgpIHVu
bG9ja0ZvY3VzXTsKIAogICAgIHJldHVybiBkaXNzb2x2ZWRJbWFnZTsKQEAgLTExOSwxMCArMTE3
LDggQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSog
aW1hZ2UsIEltYWdlT3JpZW50YXRpb25EZXNjcmkKICAgICAgICAgICAgIFtjb2NvYVRyYW5zZm9y
bS5nZXQoKSBzZXRUcmFuc2Zvcm1TdHJ1Y3Q6KihOU0FmZmluZVRyYW5zZm9ybVN0cnVjdCopJnRy
YW5zZm9ybV07CiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgY29uY2F0XTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW2ltYWdlLT5z
bmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3Qo
MCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3NpdGVT
b3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6ZGVzdFJlY3Qg
ZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIG9w
ZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBdOwor
CiAgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICAgICAgICAgIHJldHVybiByb3RhdGVkRHJhZ0ltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9FdmVudExvb3BNYWMubW0KaW5kZXggYWYwYTM5OTJiNjZlOWQ2ZmZjMDE3NzEyNDg1
NzYyNmEwMDVhNWU5MC4uYjljYzU0NWE5ODQ5MzRkNTQ2MGRkYmRmNWJkNGVjM2VhNzE1OTIyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tCkBAIC0yNSwx
NiArMjUsMTQgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV2ZW50TG9vcC5o
IgorI2luY2x1ZGUgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRXZlbnRMb29wOjpjeWNsZSgpCiB7CiAgICAg
W05TQXBwIHNldFdpbmRvd3NOZWVkVXBkYXRlOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgW05TQXBwIHNlbmRFdmVudDpbTlNBcHAgbmV4dEV2ZW50TWF0Y2hp
bmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVy
dmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVT
XV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW05TQXBwIHNlbmRFdmVudDpb
TlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrQW55IHVudGlsRGF0ZTpbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1
bkxvb3BNb2RlIGRlcXVldWU6WUVTXV07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggYTVkZjM0
NzRjMzExYzZhNzU2MWQ3ZjRkNDQ1NTMxNGFhMDRkMDA3MC4uMWM0ZTNjMTk4MDMxY2ZmYTZmYTli
NjY1MjcxYWJmYTQ3MzJkNzYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW0KQEAgLTU1LDYgKzU1LDcgQEAKICNpbXBvcnQgIm1hcmt1cC5oIgogI2lt
cG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW1wb3J0IDx3dGYvdW5pY29kZS9DaGFyYWN0
ZXJOYW1lcy5oPgogCkBAIC02NTMsMTEgKzY1NCw4IEBAIHZvaWQgUGFzdGVib2FyZDo6c2V0RHJh
Z0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGxvY2F0aW9uKQogICAg
IC8vIEhhY2s6IFdlIG11c3QgcG9zdCBhbiBldmVudCB0byB3YWtlIHVwIHRoZSBOU0RyYWdNYW5h
Z2VyLCB3aGljaCBpcyBzaXR0aW5nIGluIGEgbmV4dEV2ZW50IGNhbGwKICAgICAvLyB1cCB0aGUg
c3RhY2sgZnJvbSB1cyBiZWNhdXNlIHRoZSBDb3JlRm91bmRhdGlvbiBkcmFnIG1hbmFnZXIgZG9l
cyBub3QgdXNlIHRoZSBydW4gbG9vcCBieSBpdHNlbGYuCiAgICAgLy8gVGhpcyBpcyB0aGUgbW9z
dCBpbm5vY3VvdXMgZXZlbnQgdG8gdXNlLCBwZXIgS3Jpc3RlbiBGb3JzdGVyLgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpOU1plcm9Qb2ludAorICAg
IE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TW91c2VNb3ZlZCBsb2NhdGlvbjpOU1plcm9Qb2ludAogICAgICAgICBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
W05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OllFU107CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bQppbmRleCBkMzRkNmVhZTk0OGY3YWZjYmFiMzMwMzE0ZmRjYmE3OGU5ZTQwMGI4Li4wZDJlMzE4
ZWNkZmIxMzA0MjM4NzdhNzMyZDgyZjg2OTE5NzY5N2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCkBAIC01Miwy
NyArNTIsMjQgQEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpl
dmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewogI2lmIGRlZmluZWQoX19MUDY0
X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEwMDMKLSAgICAgICAg
Y2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToK
ICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNl
IE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAg
ICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAg
ICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURy
YWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TU2Nyb2xsV2hlZWw6Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gZ2xvYmFsUG9pbnQoW2V2
ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICByZXR1cm4geyAwLCAwIH07CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVy
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsOgorICAgICAgICByZXR1
cm4gZ2xvYmFsUG9pbnQoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHsgMCwgMCB9OwogICAgIH0KIH0KIApAQCAt
ODAsMzMgKzc3LDMwIEBAIHN0YXRpYyBJbnRQb2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2
ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsK
ICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQg
Pj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAgICBjYXNlIE5T
RXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2Fz
ZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAg
Y2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Nj
cm9sbFdoZWVsOiB7Ci0gICAgICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBpdHMgb3Jp
Z2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dWaWV3IGlz
IGZsaXBwZWQuCi0gICAgICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0
ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCi0g
ICAgICAgICAgICBOU1BvaW50IGxvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOwot
ICAgICAgICAgICAgaWYgKHdpbmRvd1ZpZXcpCi0gICAgICAgICAgICAgICAgbG9jYXRpb24gPSBb
d2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9jYXRpb24gZnJvbVZpZXc6bmlsXTsKLSAgICAgICAg
ICAgIHJldHVybiBJbnRQb2ludChsb2NhdGlvbik7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBJbnRQ
b2ludCgpOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVTY3JvbGxXaGVlbDogeworICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBp
dHMgb3JpZ2luIGF0IHRoZSBib3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dW
aWV3IGlzIGZsaXBwZWQuCisgICAgICAgIC8vIEluIHRob3NlIGNhc2VzLCB0aGUgWSBjb29yZGlu
YXRlIGdldHMgZmxpcHBlZCBieSBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdy4K
KyAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKKyAg
ICAgICAgaWYgKHdpbmRvd1ZpZXcpCisgICAgICAgICAgICBsb2NhdGlvbiA9IFt3aW5kb3dWaWV3
IGNvbnZlcnRQb2ludDpsb2NhdGlvbiBmcm9tVmlldzpuaWxdOworICAgICAgICByZXR1cm4gSW50
UG9pbnQobG9jYXRpb24pOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gSW50
UG9pbnQoKTsKICAgICB9CiB9CiAKQEAgLTExNCw3MiArMTA4LDYzIEBAIHN0YXRpYyBNb3VzZUJ1
dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1
cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgcmV0dXJuIExlZnRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFJpZ2h0QnV0dG9uOwotICAgICAg
ICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBNaWRk
bGVCdXR0b247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICByZXR1cm4gTm9CdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gTGVmdEJ1dHRvbjsKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJp
Z2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAg
ICAgIHJldHVybiBSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURv
d246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBNaWRkbGVCdXR0b247CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIE5vQnV0dG9uOwogICAgIH0KIH0KIAogc3RhdGljIFBs
YXRmb3JtRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVGb3JFdmVudChOU0V2ZW50KiBldmVudCkK
IHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2Fz
ZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBj
YXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAg
ICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZDsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3du
OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUmVsZWFzZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgICAgICByZXR1cm4gUGxhdGZvcm1F
dmVudDo6TW91c2VQcmVzc2VkOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlVXA6CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOwog
ICAgIH0KIH0KIAogc3RhdGljIGludCBjbGlja0NvdW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQp
CiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRHJhZ2dlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAg
IHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURy
YWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dl
ZDoKKyAgICAgICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiB9CiAKQEAgLTQ5NywyOCArNDgyLDI4IEBAIFN0cmluZyBr
ZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkgewogICAgICAgICBzd2l0Y2ggKFtl
dmVudCBrZXlDb2RlXSkgewotICAgICAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAot
ICAgICAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFN0cmluZygiTWV0YSIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1
NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDYXBzTG9jayIp
OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAot
ICAgICAgICAgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgICAgICByZXR1
cm4gU3RyaW5nKCJTaGlmdCIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSA1
ODogLy8gTGVmdCBBbHQKLSAgICAgICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAg
ICAgICAgICAgIHJldHVybiBTdHJpbmcoIkFsdCIpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgICAgICBjYXNlIDYyOiAvLyBSaWdo
dCBDdHJsCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ29udHJvbCIpOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKyAg
ICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAorICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0
IENvbW1hbmQKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEiKTsKKworICAgICAgICBj
YXNlIDU3OiAvLyBDYXBzbG9jaworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2si
KTsKKworICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgICAgIGNhc2UgNjA6IC8v
IFJpZ2h0IFNoaWZ0CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJTaGlmdCIpOworCisgICAg
ICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAor
ICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQWx0Iik7CisKKyAgICAgICAgY2FzZSA1OTogLy8g
TGVmdCBDdHJsCisgICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKKyAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
ICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTUzNCw0NCArNTE5LDM4IEBAIHN0YXRpYyBib29s
IGlzS2V5cGFkRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlz
IGlzIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIGEga2V5Q29kZS4KICAgICBzd2l0Y2ggKFtl
dmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBjYXNlIE5TS2V5RG93bjoKLSAgICAgICAgY2FzZSBOU0tleVVwOgotICAgICAgICBjYXNlIE5T
RmxhZ3NDaGFuZ2VkOgotICAgICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUtleURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQ6CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNOdW1lcmlj
UGFkS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAg
Y2FzZSA3MTogLy8gQ2xlYXIKLSAgICAgICAgY2FzZSA4MTogLy8gPQotICAgICAgICBjYXNlIDc1
OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6IC8vICoKLSAgICAgICAgY2FzZSA3ODogLy8gLQotICAg
ICAgICBjYXNlIDY5OiAvLyArCi0gICAgICAgIGNhc2UgNzY6IC8vIEVudGVyCi0gICAgICAgIGNh
c2UgNjU6IC8vIC4KLSAgICAgICAgY2FzZSA4MjogLy8gMAotICAgICAgICBjYXNlIDgzOiAvLyAx
Ci0gICAgICAgIGNhc2UgODQ6IC8vIDIKLSAgICAgICAgY2FzZSA4NTogLy8gMwotICAgICAgICBj
YXNlIDg2OiAvLyA0Ci0gICAgICAgIGNhc2UgODc6IC8vIDUKLSAgICAgICAgY2FzZSA4ODogLy8g
NgotICAgICAgICBjYXNlIDg5OiAvLyA3Ci0gICAgICAgIGNhc2UgOTE6IC8vIDgKLSAgICAgICAg
Y2FzZSA5MjogLy8gOQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIH0KKyAgICBjYXNl
IDcxOiAvLyBDbGVhcgorICAgIGNhc2UgODE6IC8vID0KKyAgICBjYXNlIDc1OiAvLyAvCisgICAg
Y2FzZSA2NzogLy8gKgorICAgIGNhc2UgNzg6IC8vIC0KKyAgICBjYXNlIDY5OiAvLyArCisgICAg
Y2FzZSA3NjogLy8gRW50ZXIKKyAgICBjYXNlIDY1OiAvLyAuCisgICAgY2FzZSA4MjogLy8gMAor
ICAgIGNhc2UgODM6IC8vIDEKKyAgICBjYXNlIDg0OiAvLyAyCisgICAgY2FzZSA4NTogLy8gMwor
ICAgIGNhc2UgODY6IC8vIDQKKyAgICBjYXNlIDg3OiAvLyA1CisgICAgY2FzZSA4ODogLy8gNgor
ICAgIGNhc2UgODk6IC8vIDcKKyAgICBjYXNlIDkxOiAvLyA4CisgICAgY2FzZSA5MjogLy8gOQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiB9
CkBAIC01ODUsMTAgKzU2NCw3IEBAIGludCB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KE5TRXZl
bnQqIGV2ZW50KQogICAgIC8vIDIuIEtleXMgZm9yIHdoaWNoIHRoZXJlIGlzIG5vIGtub3duIE1h
YyB2aXJ0dWFsIGtleSBjb2RlcywgbGlrZSBQcmludFNjcmVlbi4KICAgICAvLyAzLiBDZXJ0YWlu
IHB1bmN0dWF0aW9uIGtleXMuIE9uIFdpbmRvd3MsIHRoZXNlIGFyZSBhbHNvIHJlbWFwcGVkIGRl
cGVuZGluZyBvbiBjdXJyZW50IGtleWJvYXJkIGxheW91dCwKICAgICAvLyAgICBidXQgc2VlIGNv
bW1lbnQgaW4gd2luZG93c0tleUNvZGVGb3JDaGFyQ29kZSgpLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVu
dCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKCFpc0tleXBhZEV2ZW50KGV2ZW50KSAm
JiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNFdmVudFR5cGVLZXlVcCkpIHsKICAgICAgICAgLy8gQ21kIHN3aXRjaGVzIFJvbWFuIGxldHRl
cnMgZm9yIER2b3Jhay1RV0VSVFkgbGF5b3V0LCBzbyB0cnkgbW9kaWZpZWQgY2hhcmFjdGVycyBm
aXJzdC4KICAgICAgICAgTlNTdHJpbmcqIHMgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAgICAgICAg
IGNvZGUgPSBbcyBsZW5ndGhdID4gMCA/IHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoW3MgY2hh
cmFjdGVyQXRJbmRleDowXSkgOiAwOwpAQCAtNjQ2LDM1ICs2MjIsMzIgQEAgZG91YmxlIGV2ZW50
VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2ZW50KQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
aXNLZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpCi0gICAg
ICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcDsKKyAgICBpZiAoW2V2ZW50IHR5cGVd
ICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgLy8gRklYTUU6IFRoaXMgbG9naWMgZmFpbHMgaWYg
dGhlIHVzZXIgcHJlc3NlcyBib3RoIFNoaWZ0IGtleXMgYXQgb25jZSwgZm9yIGV4YW1wbGU6CiAg
ICAgLy8gd2UgdHJlYXQgcmVsZWFzaW5nIG9uZSBvZiB0aGVtIGFzIGtleURvd24uCiAgICAgc3dp
dGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFu
ZAotICAgICAgICBjYXNlIDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAgICAgICAgICAgIHJldHVybiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykgPT0gMDsKLSAgICAgICAg
ICAgIAotICAgICAgICBjYXNlIDU3OiAvLyBDYXBzbG9jawotICAgICAgICAgICAgcmV0dXJuIChb
ZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FscGhhU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgY2FzZSA2MDog
Ly8gUmlnaHQgU2hpZnQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1ODog
Ly8gTGVmdCBBbHQKLSAgICAgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0gICAgICAgICAgICBy
ZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgPT0gMDsK
LSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKLSAgICAgICAgY2Fz
ZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgNjM6IC8vIEZ1bmN0aW9uCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRnVuY3Rpb25LZXlNYXNrKSA9PSAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAgICBjYXNlIDU1OiAvLyBMZWZ0
IENvbW1hbmQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQpOworCisgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Nh
cHNMb2NrKTsKKworICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKKyAgICBjYXNlIDYwOiAvLyBS
aWdodCBTaGlmdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnU2hpZnQpOworCisgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKKyAgICBj
YXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbik7CisKKyAgICBjYXNlIDU5OiAvLyBMZWZ0
IEN0cmwKKyAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKTsKKworICAgIGNh
c2UgNjM6IC8vIEZ1bmN0aW9uCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbik7CiAgICAgfQogICAgIHJldHVybiBmYWxz
ZTsKIH0KQEAgLTgxOCwxMCArNzkxLDcgQEAgcHVibGljOgogICAgICAgICBtX2tleSA9IGtleUZv
cktleUV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9jb2RlID0gY29kZUZvcktleUV2ZW50KGV2ZW50
KTsKICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktl
eUV2ZW50KGV2ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkICYmIFtldmVu
dCBpc0FSZXBlYXRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBtX2F1
dG9SZXBlYXQgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgJiYgW2V2
ZW50IGlzQVJlcGVhdF07CiAgICAgICAgIG1faXNLZXlwYWQgPSBpc0tleXBhZEV2ZW50KGV2ZW50
KTsKICAgICAgICAgbV9pc1N5c3RlbUtleSA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlz
IGZhbHNlIG9uIHRoZSBNYWMuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCA5MWNiZWRkMGNkYTA3MDY1YjNiZjNmMTcwMTU4ZjFk
NjI3NzMxODNmLi42NGQ4NTRhOGU4NGM4NjJhOTBhYmQ0NTc1Y2U2M2ViZWU0ZDJlZTMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBA
IC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4K
KyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAog
Ly8gRklYTUU6IFRoZXJlIGFyZSByZXBhaW50aW5nIHByb2JsZW1zIGR1ZSB0byBBcXVhIHNjcm9s
bCBiYXIgYnV0dG9ucycgdmlzdWFsIG92ZXJmbG93LgogCkBAIC0xMzksMTggKzE0MCwxNSBAQCBz
dGF0aWMgU2Nyb2xsYmFyQnV0dG9uc1BsYWNlbWVudCBnQnV0dG9uUGxhY2VtZW50ID0gU2Nyb2xs
YmFyQnV0dG9uc0RvdWJsZUVuZDsKIAogc3RhdGljIE5TQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29u
dHJvbFNpemVUb05TQ29udHJvbFNpemUoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUp
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChjb250
cm9sU2l6ZSkgewogICAgIGNhc2UgUmVndWxhclNjcm9sbGJhcjoKLSAgICAgICAgcmV0dXJuIE5T
UmVndWxhckNvbnRyb2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7
CiAgICAgY2FzZSBTbWFsbFNjcm9sbGJhcjoKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1
bGFyOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpkaWRDcmVhdGVTY3JvbGxlckltcChT
Y3JvbGxiYXImIHNjcm9sbGJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9UaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQppbmRleCAwMjQ3MmM5YTY5MDhjNmZkYjAzODI4MWZhYWE4MzhkZmI1MTVlNGQ1Li5iMTAwNDFi
NWViMTcyZjQzNzJjNDAwNTViMTY5OTdjMTM5NGMyM2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tP
YmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0
IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogc3RhdGljIE5TUmVjdCBmb2N1c1JpbmdDbGlwUmVjdDsKIHN0
YXRpYyBCT09MIHRoZW1lV2luZG93SGFzS2V5QXBwZWFyYW5jZTsKQEAgLTY3LDExICs2OCw4IEBA
IC0gKE5TV2luZG93ICopd2luZG93CiB7CiAgICAgLy8gVXNpbmcgZGVmZXI6WUVTIHByZXZlbnRz
IHVzIGZyb20gd2FzdGluZyBhbnkgd2luZG93IHNlcnZlciByZXNvdXJjZXMgZm9yIHRoaXMgd2lu
ZG93LCBzaW5jZSB3ZSdyZSBub3QgYWN0dWFsbHkKICAgICAvLyBnb2luZyB0byBkcmF3IGludG8g
aXQuIFRoZSBvdGhlciBhcmd1bWVudHMgbWF0Y2ggd2hhdCB5b3UgZ2V0IHdoZW4gY2FsbGluZyAt
W05TV2luZG93IGluaXRdLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IHN0YXRpYyBXZWJDb3JlVGhlbWVXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZVRoZW1lV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMTAwLCAxMDAsIDEwMCwgMTAw
KQotICAgICAgICBzdHlsZU1hc2s6TlNUaXRsZWRXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CiAgICAgcmV0dXJuIHdpbmRvdzsKIH0KIApAQCAt
MTQ0LDE1ICsxNDIsMTIgQEAgVGhlbWUqIHBsYXRmb3JtVGhlbWUoKQogCiBzdGF0aWMgTlNDb250
cm9sU2l6ZSBjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgRm9udENhc2NhZGUmIGZvbnQpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50IGZvbnRTaXplID0gZm9u
dC5waXhlbFNpemUoKTsKICAgICBpZiAoZm9udFNpemUgPj0gMTYpCi0gICAgICAgIHJldHVybiBO
U1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFy
OwogICAgIGlmIChmb250U2l6ZSA+PSAxMSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJu
IE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbU5TQ29u
dHJvbFNpemUoTlNDb250cm9sU2l6ZSBuc0NvbnRyb2xTaXplLCBjb25zdCBMZW5ndGhTaXplJiB6
b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yLCBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+
JiBzaXplcykKQEAgLTE3NSwxNiArMTcwLDEzIEBAIHN0YXRpYyBMZW5ndGhTaXplIHNpemVGcm9t
Rm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkCiAK
IHN0YXRpYyBDb250cm9sU2l6ZSBjb250cm9sU2l6ZUZyb21QaXhlbFNpemUoY29uc3Qgc3RkOjph
cnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNpemUmIG1pblpvb21lZFNpemUsIGZs
b2F0IHpvb21GYWN0b3IpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05T
UmVndWxhckNvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUZhY3RvcikgJiYKLSAgICAgICAgbWlu
Wm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNv
bnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNSZWd1
bGFyQ29udHJvbFNpemU7Ci0gICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNf
Y2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3Ip
ICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50Pihz
aXplc1tOU1NtYWxsQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUZhY3RvcikpCi0gICAgICAg
IHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXpl
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChtaW5ab29tZWRTaXplLndp
ZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0ud2lk
dGgoKSAqIHpvb21GYWN0b3IpCisgICAgICAgICYmIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0g
c3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6
b29tRmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOworICAgIGlm
IChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRy
b2xTaXplU21hbGxdLndpZHRoKCkgKiB6b29tRmFjdG9yKQorICAgICAgICAmJiBtaW5ab29tZWRT
aXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxs
XS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNt
YWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgc2V0
Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBz
aXplcywgY29uc3QgSW50U2l6ZSYgbWluWm9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikKQEAg
LTQ4MCwxMCArNDcyLDcgQEAgc3RhdGljIHZvaWQgc2V0VXBCdXR0b25DZWxsKE5TQnV0dG9uQ2Vs
bCAqY2VsbCwgQ29udHJvbFBhcnQgcGFydCwgY29uc3QgQ29udHJvbFMKIHsKICAgICAvLyBTZXQg
dGhlIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYgdGhlIHJlY3RhbmdsZSB3ZSdyZSBwYWludGluZyBp
bnRvLgogICAgIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzID0gYnV0dG9uU2l6
ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAocGFydCA9
PSBTcXVhcmVCdXR0b25QYXJ0IHx8IHpvb21lZFNpemUuaGVpZ2h0KCkgPiBidXR0b25TaXplcygp
W05TUmVndWxhckNvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAocGFydCA9PSBTcXVhcmVCdXR0b25QYXJ0IHx8
IHpvb21lZFNpemUuaGVpZ2h0KCkgPiBidXR0b25TaXplcygpW05TQ29udHJvbFNpemVSZWd1bGFy
XS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpIHsKICAgICAgICAgLy8gVXNlIHRoZSBzcXVhcmUgYnV0
dG9uCiAgICAgICAgIGlmIChbY2VsbCBiZXplbFN0eWxlXSAhPSBOU1NoYWRvd2xlc3NTcXVhcmVC
ZXplbFN0eWxlKQogICAgICAgICAgICAgW2NlbGwgc2V0QmV6ZWxTdHlsZTpOU1NoYWRvd2xlc3NT
cXVhcmVCZXplbFN0eWxlXTsKQEAgLTU3OSwxNSArNTY4LDEyIEBAIHN0YXRpYyBjb25zdCBzdGQ6
OmFycmF5PEludFNpemUsIDM+JiBzdGVwcGVyU2l6ZXMoKQogLy8gc2hvdWxkIGJlIGVxdWFsIHRv
IG9yIGxlc3MgdGhhbiB0aGUgY29ycmVzcG9uZGluZyB0ZXh0IGZpZWxkIGhlaWdodCwKIHN0YXRp
YyBOU0NvbnRyb2xTaXplIHN0ZXBwZXJDb250cm9sU2l6ZUZvckZvbnQoY29uc3QgRm9udENhc2Nh
ZGUmIGZvbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50
IGZvbnRTaXplID0gZm9udC5waXhlbFNpemUoKTsKICAgICBpZiAoZm9udFNpemUgPj0gMTgpCi0g
ICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29u
dHJvbFNpemVSZWd1bGFyOwogICAgIGlmIChmb250U2l6ZSA+PSAxMykKLSAgICAgICAgcmV0dXJu
IE5TU21hbGxDb250cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21h
bGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0aWMgdm9pZCBwYWlu
dFN0ZXBwZXIoQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmll
dyopCkBAIC02MDAsMTUgKzU4NiwxMiBAQCBzdGF0aWMgdm9pZCBwYWludFN0ZXBwZXIoQ29udHJv
bFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiAgICAgZHJh
d0luZm8uc3RhdGUgPSBjb252ZXJ0Q29udHJvbFN0YXRlc1RvVGhlbWVEcmF3U3RhdGUoa1RoZW1l
SW5jRGVjQnV0dG9uLCBzdGF0ZXMpOwogICAgIGRyYXdJbmZvLmFkb3JubWVudCA9IGtUaGVtZUFk
b3JubWVudERlZmF1bHQ7CiAgICAgQ29udHJvbFNpemUgY29udHJvbFNpemUgPSBjb250cm9sU2l6
ZUZyb21QaXhlbFNpemUoc3RlcHBlclNpemVzKCksIEludFNpemUoem9vbWVkUmVjdC5zaXplKCkp
LCB6b29tRmFjdG9yKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoY29udHJvbFNpemUgPT0gTlNTbWFsbENvbnRyb2xTaXplKQorICAgIGlmIChjb250cm9sU2l6
ZSA9PSBOU0NvbnRyb2xTaXplU21hbGwpCiAgICAgICAgIGRyYXdJbmZvLmtpbmQgPSBrVGhlbWVJ
bmNEZWNCdXR0b25TbWFsbDsKLSAgICBlbHNlIGlmIChjb250cm9sU2l6ZSA9PSBOU01pbmlDb250
cm9sU2l6ZSkKKyAgICBlbHNlIGlmIChjb250cm9sU2l6ZSA9PSBOU0NvbnRyb2xTaXplTWluaSkK
ICAgICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbk1pbmk7CiAgICAgZWxz
ZQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgSW50UmVjdCByZWN0KHpvb21lZFJlY3QpOwogICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKQEAgLTc0OSwx
MiArNzMyLDkgQEAgTGVuZ3RoU2l6ZSBUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKENvbnRy
b2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb24KICAgICAgICAgY2FzZSBCdXR0b25Q
YXJ0OgogICAgICAgICAgICAgcmV0dXJuIExlbmd0aFNpemUoTGVuZ3RoKDAsIEZpeGVkKSwgTGVu
Z3RoKHN0YXRpY19jYXN0PGludD4oMTUgKiB6b29tRmFjdG9yKSwgRml4ZWQpKTsKICAgICAgICAg
Y2FzZSBJbm5lclNwaW5CdXR0b25QYXJ0OnsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgICAgIEludFNpemUgYmFzZSA9IHN0ZXBwZXJTaXplcygpW05TTWluaUNv
bnRyb2xTaXplXTsKKyAgICAgICAgICAgIEludFNpemUgYmFzZSA9IHN0ZXBwZXJTaXplcygpW05T
Q29udHJvbFNpemVNaW5pXTsKICAgICAgICAgICAgIHJldHVybiBMZW5ndGhTaXplKExlbmd0aChz
dGF0aWNfY2FzdDxpbnQ+KGJhc2Uud2lkdGgoKSAqIHpvb21GYWN0b3IpLCBGaXhlZCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihiYXNlLmhl
aWdodCgpICogem9vbUZhY3RvciksIEZpeGVkKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBUaGVt
ZTo6bWluaW11bUNvbnRyb2xTaXplKHBhcnQsIGZvbnQsIHpvb21GYWN0b3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRv
d0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQppbmRleCBkM2I5ZWU5OGRmOTQyMGNjZDcxMTZi
MDQwMzU2MzgzY2ZjNzQ2ZjkwLi5iNDg2MDZjYjVhNzQ0ZDg3MGI4NjE5MzQzNjYyODk4YmE5ZmY0
ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQpAQCAtMzMsNiAr
MzMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSFRNTFZpZGVvRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03MywxMCArNzQsNyBAQCBAaW1wbGVt
ZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93CiAtIChpZClpbml0V2l0aENvbnRl
bnRSZWN0OihOU1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihOU1VJbnRlZ2VyKWFTdHlsZSBi
YWNraW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlwZSBkZWZlcjooQk9PTClmbGFn
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGFTdHlsZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRS
ZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6YnVmZmVyaW5nVHlw
ZSBkZWZlcjpmbGFnXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBzZWxmID0g
W3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107CiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC0xMjIsMTUgKzEyMCwxMiBA
QCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2
YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgogICAgIC8vIEJsb2NrIGFsbCBjb21tYW5kIGtleSBldmVudHMgd2hpbGUgdGhlIGZ1bGxz
Y3JlZW4gd2luZG93IGlzIHVwLgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQor
ICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1
cm4gTk87CiAgICAgCi0gICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5k
S2V5TWFzaykpCisgICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQpKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCiAgICAgcmV0dXJuIFlFUzsKIH0KIApAQCAtMTQ1LDExICsxNDAsNyBAQCBAaW1w
bGVtZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlcgogCiAtIChp
ZClpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNXaW5k
b3cgKndpbmRvdyA9IFtbV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93
TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAs
IDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFz
a0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dpbmRvdyBzZXRE
ZWxlZ2F0ZTpzZWxmXTsKICAgICBbd2luZG93IHJlbGVhc2VdOwpAQCAtMTg4LDIwICsxNzksMTcg
QEAgLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopZXZlbnQKICAgICAgICAgICAgIGNhc2UgJyAn
OgogICAgICAgICAgICAgICAgIFtzZWxmIHRvZ2dsZVBsYXlpbmc6bmlsXTsKICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAg
ICAgICBjYXNlIE5TVXBBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAg
aWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAg
ICAgICAgICAgICAgICAgICAgIFtzZWxmIHNldFZvbHVtZTpbc2VsZiBtYXhWb2x1bWVdXTsKICAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIGluY3JlbWVudFZv
bHVtZV07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25B
cnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAgaWYgKFtldmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIHNldFZvbHVtZTowXTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIFtzZWxmIGRlY3JlbWVudFZvbHVtZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgICAgICBicmVhazsKQEAgLTM3OCwxNyArMzY2LDExIEBAIC0gKHZvaWQpd2luZG93
RGlkTG9hZAogICAgIFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Ol90aW1lbGluZV07CiAKICAgICBf
ZWxhcHNlZFRpbWVUZXh0ID0gY3JlYXRlVGltZVRleHRGaWVsZChOU01ha2VSZWN0KHRpbWVUZXh0
RmllbGRIb3Jpem9udGFsTWFyZ2luLCB0aW1lbGluZUJvdHRvbU1hcmdpbiwgdGltZVRleHRGaWVs
ZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgW19lbGFwc2VkVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TTGVmdFRleHRB
bGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtfZWxhcHNlZFRp
bWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0XTsKICAgICBbY29udGVudFZp
ZXcgYWRkU3VidmlldzpfZWxhcHNlZFRpbWVUZXh0XTsKIAogICAgIF9yZW1haW5pbmdUaW1lVGV4
dCA9IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh3aW5kb3dXaWR0aCAtIHRpbWVUZXh0
RmllbGRIb3Jpem9udGFsTWFyZ2luIC0gdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lbGluZUJvdHRv
bU1hcmdpbiwgdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW19yZW1haW5pbmdUaW1lVGV4dCBz
ZXRBbGlnbm1lbnQ6TlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdu
bWVudFJpZ2h0XTsKICAgICBbY29udGVudFZpZXcgYWRkU3VidmlldzpfcmVtYWluaW5nVGltZVRl
eHRdOwogCiAgICAgW3dpbmRvdyByZWNhbGN1bGF0ZUtleVZpZXdMb29wXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tCmluZGV4IDQ1OThh
MDNlZDJmYTMyMTUwZTY0YWY5Y2JiNjQ1OTk0NjlmZGRmNzcuLjdkZTVlYjUzN2M3ZmEwMjM1MjJi
Y2VmNjgzMzIzYjI1ODRlY2M1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBv
cnQgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTM4LDEw
ICszOSw3IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHNsb3dNb3Rpb25GYWN0b3IgPSAxMDsKIAog
c3RhdGljIE5TVGltZUludGVydmFsIFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0
aW9uKE5TVGltZUludGVydmFsIGR1cmF0aW9uKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxh
Z3NdICYgTlNTaGlmdEtleU1hc2spID8gZHVyYXRpb24gKiBzbG93TW90aW9uRmFjdG9yIDogZHVy
YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIChbW05TQXBw
IGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQp
ID8gZHVyYXRpb24gKiBzbG93TW90aW9uRmFjdG9yIDogZHVyYXRpb247CiB9CiAKIHN0YXRpYyBO
U1JlY3Qgc2NhbGVkUmVjdChOU1JlY3QgX2luaXRpYWxGcmFtZSwgTlNSZWN0IF9maW5hbEZyYW1l
LCBDR0Zsb2F0IGZhY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQppbmRleCAzZWRkYzAzZTRkOGU5ZjYzNTE3YzUyNzFmMjAxYjU2NzgyMmI5MDI4Li44NTc2
NDIzNTIzYTkwYzhhNTI1MTgwNTRhZDkyYjUxNDRmNDE5Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC04MSw2ICs4MSw3IEBACiAjaW1wb3J0IDxD
YXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgogI2ltcG9ydCA8bWF0aC5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
ICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKICNpbXBvcnQgIlJlbmRlck1ldGVyLmgiCkBAIC0z
NzksMjIgKzM4MCwxMyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjp1cGRhdGVDYWNoZWRTeXN0ZW1G
b250RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCBjc3NWYWx1ZUlkLCBGbwogICAgICAgICAgICAgZm9u
dE5hbWUgPSBBdG9taWNTdHJpbmcoIi1hcHBsZS1zdGF0dXMtYmFyIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
U1NWYWx1ZVdlYmtpdE1pbmlDb250cm9sOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250
IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNNaW5pQ29udHJvbFNpemVdXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3Rl
bUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJv
bFNpemVNaW5pXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1ZVdl
YmtpdFNtYWxsQ29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1G
b250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9m
U2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENv
bnRyb2w6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBm
b250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JD
b250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNG
b250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVJlZ3VsYXJdXTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZm9udCA9
IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplXV07CkBAIC03
NzcsMzAgKzc2OSwyNCBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU3VwcG9ydHNUaW50
cyhjb25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1l
TWFjOjpjb250cm9sU2l6ZUZvckZvbnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAog
ewogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1
cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVn
dWxhcjsKICAgICBpZiAoZm9udFNpemUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29u
dHJvbFNpemU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1h
Yzo6Y29udHJvbFNpemVGb3JDZWxsKE5TQ2VsbCosIGNvbnN0IEludFNpemUqIHNpemVzLCBjb25z
dCBJbnRTaXplJiBtaW5TaXplLCBmbG9hdCB6b29tTGV2ZWwpIGNvbnN0CiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxl
dmVsKQotICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6
ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUxldmVsKSkKLSAgICAgICAg
cmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOworICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0g
c3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplUmVndWxhcl0ud2lkdGgoKSAqIHpv
b21MZXZlbCkKKyAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+
KHNpemVzW05TQ29udHJvbFNpemVSZWd1bGFyXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIAotICAgIGlmIChtaW5TaXplLndpZHRo
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkg
KiB6b29tTGV2ZWwpCi0gICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8
aW50PihzaXplc1tOU1NtYWxsQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUxldmVsKSkKLSAg
ICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgp
ID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0aCgpICog
em9vbUxldmVsKQorICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGlu
dD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAKLSAgICByZXR1cm4gTlNNaW5pQ29udHJv
bFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIE5TQ29udHJv
bFNpemVNaW5pOwogfQogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjpzZXRDb250cm9sU2l6ZShOU0Nl
bGwqIGNlbGwsIGNvbnN0IEludFNpemUqIHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5TaXplLCBm
bG9hdCB6b29tTGV2ZWwpCkBAIC04NTcsMTUgKzg0MywxMiBAQCB2b2lkIFJlbmRlclRoZW1lTWFj
OjpzZXRGb250RnJvbUNvbnRyb2xTaXplKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYgc3R5
bGUsCiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yU3lzdGVt
Rm9udChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaW50IGZvbnRTaXplID0gc3R5bGUuZm9udFNpemUoKTsK
LSAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXpl
Ok5TUmVndWxhckNvbnRyb2xTaXplXSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xT
aXplOwotICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJv
bFNpemU6TlNTbWFsbENvbnRyb2xTaXplXSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9s
U2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JD
b250cm9sU2l6ZTpOU0NvbnRyb2xTaXplUmVndWxhcl0pCisgICAgICAgIHJldHVybiBOU0NvbnRy
b2xTaXplUmVndWxhcjsKKyAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF0pCisgICAgICAgIHJldHVybiBOU0Nv
bnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBib29s
IFJlbmRlclRoZW1lTWFjOjpwYWludFRleHRGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmIG8sIGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QmIHIpCkBAIC0xMTQ3LDEw
ICsxMTMwLDcgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRQcm9ncmVzc0Jhcihjb25zdCBS
ZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGEKICAgICBjb25zdCBhdXRvJiByZW5k
ZXJQcm9ncmVzcyA9IGRvd25jYXN0PFJlbmRlclByb2dyZXNzPihyZW5kZXJPYmplY3QpOwogICAg
IEhJVGhlbWVUcmFja0RyYXdJbmZvIHRyYWNrSW5mbzsKICAgICB0cmFja0luZm8udmVyc2lvbiA9
IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xT
aXplID09IE5TUmVndWxhckNvbnRyb2xTaXplKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU0NvbnRyb2xTaXplUmVndWxhcikKICAgICAgICAg
dHJhY2tJbmZvLmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZUxh
cmdlSW5kZXRlcm1pbmF0ZUJhciA6IGtUaGVtZUxhcmdlUHJvZ3Jlc3NCYXI7CiAgICAgZWxzZQog
ICAgICAgICB0cmFja0luZm8ua2luZCA9IHJlbmRlclByb2dyZXNzLnBvc2l0aW9uKCkgPCAwID8g
a1RoZW1lTWVkaXVtSW5kZXRlcm1pbmF0ZUJhciA6IGtUaGVtZU1lZGl1bVByb2dyZXNzQmFyOwpA
QCAtMTQzOCwxNSArMTQxOCwxMiBAQCBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZSBSZW5k
ZXJUaGVtZU1hYzo6cG9wdXBNZW51U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYgcwogICAgIE5TUG9w
VXBCdXR0b25DZWxsKiBwb3B1cEJ1dHRvbiA9IHRoaXMtPnBvcHVwQnV0dG9uKCk7CiAgICAgTlND
b250cm9sU2l6ZSBzaXplID0gY29udHJvbFNpemVGb3JDZWxsKHBvcHVwQnV0dG9uLCBwb3B1cEJ1
dHRvblNpemVzKCksIHJlY3Quc2l6ZSgpLCBzdHlsZS5lZmZlY3RpdmVab29tKCkpOwogICAgIHN3
aXRjaCAoc2l6ZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNh
c2UgTlNSZWd1bGFyQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplUmVndWxhcjoK
ICAgICAgICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOwotICAg
IGNhc2UgTlNTbWFsbENvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVNtYWxsOgog
ICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDsKLSAgICBj
YXNlIE5TTWluaUNvbnRyb2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZU1pbmk6CiAgICAg
ICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIFBvcHVwTWVu
dVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOwogICAgIH0KQEAgLTIwNTUsMTIgKzIwMzIsOSBA
QCBOU1NsaWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwoKSBj
b25zdAogewogICAgIGlmICghbV9zbGlkZXJUaHVtYkhvcml6b250YWwpIHsKICAgICAgICAgbV9z
bGlkZXJUaHVtYkhvcml6b250YWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRl
clRodW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TTGluZWFyU2xpZGVyXTsKLSAg
ICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldENvbnRyb2xTaXplOk5TU21h
bGxDb250cm9sU2l6ZV07CisgICAgICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKSBz
ZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFttX3NsaWRlclRodW1i
SG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplU21hbGxdOwogICAg
ICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Rm9jdXNSaW5nVHlwZTpOU0Zv
Y3VzUmluZ1R5cGVFeHRlcmlvcl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
fQogCiAgICAgcmV0dXJuIG1fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpOwpAQCAtMjA3MCwx
MSArMjA0NCw4IEBAIE5TU2xpZGVyQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVy
dGljYWwoKSBjb25zdAogewogICAgIGlmICghbV9zbGlkZXJUaHVtYlZlcnRpY2FsKSB7CiAgICAg
ICAgIG1fc2xpZGVyVGh1bWJWZXJ0aWNhbCA9IGFkb3B0TlMoW1tOU1NsaWRlckNlbGwgYWxsb2Nd
IGluaXRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW21f
c2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TTGluZWFyU2xpZGVyXTsK
LSAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1Nt
YWxsQ29udHJvbFNpemVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
bV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldFNsaWRlclR5cGU6TlNTbGlkZXJUeXBlTGlu
ZWFyXTsKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRDb250cm9sU2l6
ZTpOU0NvbnRyb2xTaXplU21hbGxdOwogICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdl
dCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJpb3JdOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRl
eCBmMmEzNTk3M2E3MWUwNjgyNjBhOTFjOTY3ZDI5MDUwZDJlZGU3NjBkLi5hNjlmNmYxZmE1MGE5
YTRhZGQ4NjNmNDc5NWJjMWQ3MTJmMGJhMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
YXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtNzYsNiArNzYsNyBAQAogI2ltcG9ydCA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5o
PgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCiAjaW1w
b3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgpAQCAtMTczLDEzICsxNzQsMTQgQEAgLSAoaWQpaW5p
dFdpdGhDYXJib25XaW5kb3dSZWY6KFdpbmRvd1JlZilpbldpbmRvd1JlZiB0YWtpbmdPd25lcnNo
aXA6KEJPT0wpaW5XaW4KIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1h
c2suCiAgICAgc3R5bGVNYXNrID0gV0tDYXJib25XaW5kb3dNYXNrKCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93
Q2xvc2VCb3hBdHRyaWJ1dGUpIHN0eWxlTWFzayB8PSBOU0Nsb3NhYmxlV2luZG93TWFzazsKLSAg
ICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpIHN0eWxl
TWFzayB8PSBOU1Jlc2l6YWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYg
a1dpbmRvd0NhbkNvbGxhcHNlKSBzdHlsZU1hc2sgfD0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01h
c2s7Ci0gICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0hhc1RpdGxlQmFyKSBzdHlsZU1h
c2sgfD0gTlNUaXRsZWRXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRlKQorICAg
ICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZTsKKyAgICBpZiAod2lu
ZG93QXR0cmlidXRlcyAmIGtXaW5kb3dSZXNpemFibGVBdHRyaWJ1dGUpCisgICAgICAgIHN0eWxl
TWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVy
ZXMgJiBrV2luZG93Q2FuQ29sbGFwc2UpCisgICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0
eWxlTWFza01pbmlhdHVyaXphYmxlOworICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dI
YXNUaXRsZUJhcikKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVk
OwogCiAgICAgb3NTdGF0dXMgPSBHZXRXaW5kb3dNb2RhbGl0eShfd2luZG93UmVmLCAmd2luZG93
TW9kYWxpdHksIE5VTEwpOwogICAgIGlmIChvc1N0YXR1cyAhPSBub0VycikgewpAQCAtMzkzLDE4
ICszOTUsMTIgQEAgLSAodm9pZClzZW5kU3VwZXJFdmVudDooTlNFdmVudCAqKWluRXZlbnQgewog
ICAgIC8vIElnbm9yZSBzb21lIHVua25vd24gZXZlbnQgdGhhdCBnZXRzIHNlbnQgd2hlbiBOU1Rl
eHRWaWV3cyBpbiBwcmludGluZyBhY2Nlc3Nvcnkgdmlld3MgYXJlIGZvY3VzZWQuICBNLlAuIE5v
dGljZSAtIDEyLzcvMDAKICAgICBCT09MIGlnbm9yZUV2ZW50ID0gTk87CiAgICAgTlNFdmVudFR5
cGUgZXZlbnRUeXBlID0gW2luRXZlbnQgdHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgaWYgKGV2ZW50VHlwZT09TlNTeXN0ZW1EZWZpbmVkKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZVN5
c3RlbURlZmluZWQpIHsKICAgICAgICAgc2hvcnQgZXZlbnRTdWJ0eXBlID0gW2luRXZlbnQgc3Vi
dHlwZV07Ci0gICAgICAgIGlmIChldmVudFN1YnR5cGU9PTcpIHsKKyAgICAgICAgaWYgKGV2ZW50
U3VidHlwZSA9PSA3KSB7CiAgICAgICAgICAgICBpZ25vcmVFdmVudCA9IFlFUzsKICAgICAgICAg
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIH0gZWxzZSBpZiAoZXZl
bnRUeXBlID09IE5TS2V5RG93bikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlS2V5RG93bikgewogICAgICAgICAv
LyBIYW5kbGUgY29tbWFuZC1zcGFjZSBhcyBbTlNBcHAgc2VuZEV2ZW50Ol0gZG9lcy4KICAgICAg
ICAgaWYgKFtOU0lucHV0Q29udGV4dCBwcm9jZXNzSW5wdXRLZXlCaW5kaW5nczppbkV2ZW50XSkg
ewogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYWQ1OTM2
OTZkNGI5YTk3NjZhM2NiY2UwM2VhZDZlYWZkMDc5NTc5Li42ZDA2YzcwMTBjNTJiODFkNTMxNTFl
MTg1MmQ0MTQ0MWI5MTI5ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtNDEsNiArNDEs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIGV4dGVy
biAiQyIgewogI2ltcG9ydCAiV2ViS2l0UGx1Z2luSG9zdC5oIgpAQCAtMjMwLDEwICsyMzEsNyBA
QCB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQo
IW1fcGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIp
OwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vo
b2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZ
RVNdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2lu
ZG93ID0gYWRvcHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHls
ZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNd
KTsKIAogICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVB
Y3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3Rp
dmUoKTsgfV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlh
ZTdhMTc3ZTQ1MTJmNDU2NDFkYWEyNDM3ZDRjOS4uYWEwZGY1NDI0YTQyNmZkM2FkNzgzNDM0NmNk
N2IyYWQ0YzI5NTUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtNjYsNiAr
NjYsNyBAQAogI2ltcG9ydCA8dXRpbGl0eT4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2ltcG9ydCA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKIGV4dGVybiAiQyIgewpAQCAtNDY1LDE1ICs0NjYsMTIgQEAgdm9pZCBOZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlm
aWVyKGludCBrZXlDb2QKIHsKICAgICBOU0RhdGEgKmNoYXJhY3RlcnNEYXRhID0gW05TRGF0YSBk
YXRhV2l0aEJ5dGVzOiZjaGFyYWN0ZXIgbGVuZ3RoOjFdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCiAgICAgX1dLUEhQbHVnaW5JbnN0YW5jZUtleWJvYXJkRXZlbnQobV9w
bHVnaW5Ib3N0UHJveHktPnBvcnQoKSwgbV9wbHVnaW5JRCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0s
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtleURv
d24sIE5TQ29tbWFuZEtleU1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlBDb2NvYUV2ZW50S2V5RG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFj
dGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3Rl
cnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIGtleUNvZGUsIGNoYXJhY3Rlcik7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5OjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdp
blZpZXcubW0KaW5kZXggMzc2NjcyYjY4NjczN2M3NzNlZGM2ZGY2ODRiMjg3OTgyOTY0ZjU0MS4u
ZGZjOGNjYTcyODI0OGE4OTZhODEzZTZmNzkyNDJjMDk0MmIyNWM5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldy5tbQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1
bkxvb3AuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CkBAIC00NDMsMTAgKzQ0NCw3IEBAIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0CiB7CiAg
ICAgaWYgKF9jYWNoZWRTbmFwc2hvdCkgewogICAgICAgICBOU1JlY3Qgc291cmNlUmVjdCA9IHsg
TlNaZXJvUG9pbnQsIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgc2l6ZV0gfTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBk
cmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBbX2NhY2hlZFNuYXBzaG90LmdldCgpIGRyYXdJblJlY3Q6W3NlbGYgYm91
bmRzXSBmcm9tUmVjdDpzb3VyY2VSZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9u
U291cmNlT3ZlciBmcmFjdGlvbjoxXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
bkV2ZW50SGFuZGxlckNvY29hLm1tCmluZGV4IGExZDE1OWFmOTRlMTQ4OWE0OGIwOTkyMTA4ZDAz
ZjM5ODA1ZjI5OTYuLjljNTIwMWZlNjJkMjYzYmQzNWViNWU3MWQ0YTM3MDFhYWE5MTdlNzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVu
dEhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQg
IldlYktpdFN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5WaWV3
LmgiCiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJD
b2NvYTo6V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYShXZWJOZXRzY2FwZVBsdWdp
blZpZXcqIHBsdWdpblZpZXcpCiAgICAgOiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlcihw
bHVnaW5WaWV3KQpAQCAtMTYxLDEwICsxNjIsNyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZl
bnRIYW5kbGVyQ29jb2E6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludAog
ICAgIAogICAgIE5QQ29jb2FFdmVudCBldmVudDsKICAgICBpbml0aWFsaXplRXZlbnQoJmV2ZW50
LCBOUENvY29hRXZlbnRLZXlEb3duKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBldmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdzID0gTlNDb21tYW5kS2V5TWFzazsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBldmVudC5kYXRhLmtleS5tb2RpZmll
ckZsYWdzID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgZXZlbnQuZGF0YS5rZXku
a2V5Q29kZSA9IGtleUNvZGU7CiAgICAgZXZlbnQuZGF0YS5rZXkuaXNBUmVwZWF0ID0gZmFsc2U7
CiAgICAgZXZlbnQuZGF0YS5rZXkuY2hhcmFjdGVycyA9IChOUE5TU3RyaW5nICopY2hhcmFjdGVy
cy5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1Bv
cHVwTWVudU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dU1hYy5tbQppbmRleCBjNDY2NzBiNGQ3OWQ4Y2U4NGZiZDQxMTU4ZmI3MzA4MGFlODA0NzliLi43
OWYyOGZiODJjYjdmZDkzOWNkMzMyMzRlYzQ3ZWMwMzk2NmVlNTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCkBAIC0zNCw2ICszNCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BvcHVwTWVudUNsaWVudC5oPgogI2ltcG9ydCA8V2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgor
I2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05MCwxNyArOTEsMTEgQEAgdm9pZCBQb3B1cE1l
bnVNYWM6OnBvcHVsYXRlKCkKICAgICAgICAgfQogCiAgICAgICAgIFJldGFpblB0cjxOU011dGFi
bGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhT
dHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11dGFibGVDb3B5XSk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1l
bnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
W3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBO
U1RleHRBbGlnbm1lbnRMZWZ0IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICBOU1dy
aXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiA9IHN0eWxlLnRleHREaXJlY3Rpb24oKSA9
PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlv
blJpZ2h0VG9MZWZ0OwogICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJl
Y3Rpb246d3JpdGluZ0RpcmVjdGlvbl07CiAgICAgICAgIGlmIChzdHlsZS5oYXNUZXh0RGlyZWN0
aW9uT3ZlcnJpZGUoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9w
dE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsg
TlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25W
YWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdE
aXJlY3Rpb24gKyBOU1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgUmV0
YWluUHRyPE5TQXJyYXk+IHdyaXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0TlMoW1tOU0FycmF5
IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxd
KTsKICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJy
YXkuZ2V0KCkgZm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAg
ICB9CkBAIC0yMDYsMTggKzIwMSwxNSBAQCB2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhjb25zdCBJ
bnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIAogICAgIE5TQ29udHJvbFNpemUg
Y29udHJvbFNpemU7CiAgICAgc3dpdGNoIChtX2NsaWVudC0+bWVudVN0eWxlKCkubWVudVNpemUo
KSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGNhc2UgUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVJl
Z3VsYXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVu
dVNpemVTbWFsbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1NtYWxsQ29udHJvbFNpemU7Cisg
ICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVNtYWxsOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaToKLSAgICAgICAgY29u
dHJvbFNpemUgPSBOU01pbmlDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0Nv
bnRyb2xTaXplTWluaTsKICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgfQogCiAgICAgV0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dp
ZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgpLCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xT
aXplLCAhbV9jbGllbnQtPm1lbnVTdHlsZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5tbQppbmRleCA5MTRkOGUwNjNlOGViMGZjYTllYWU5ZDdiYmJjODFmNjFiN2I4OGQ2
Li5hMzliOTNlNzdlMjZhNjQzM2I5Mjg4OGYxOTMzYTA5OTU1MTVjNjNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVu
dC5tbQpAQCAtNjAsNiArNjAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdh
Y3kvRE9NUHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yNjksMTAgKzI3
MCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNob3dDb250ZXh0TWVudSgpCiAKICAg
ICBOU1ZpZXcqIHZpZXcgPSBmcmFtZVZpZXctPmRvY3VtZW50VmlldygpOwogICAgIEludFBvaW50
IHBvaW50ID0gZnJhbWVWaWV3LT5jb250ZW50c1RvV2luZG93KHBhZ2UtPmNvbnRleHRNZW51Q29u
dHJvbGxlcigpLmhpdFRlc3RSZXN1bHQoKS5yb3VuZGVkUG9pbnRJbklubmVyTm9kZUZyYW1lKCkp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQqIGV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24gbG9jYXRpb246
cG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbW3ZpZXcgd2lu
ZG93XSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBw
cmVzc3VyZToxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50KiBl
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBj
bGlja0NvdW50OjEgcHJlc3N1cmU6MV07CiAKICAgICAvLyBTaG93IHRoZSBjb250ZXh0dWFsIG1l
bnUgZm9yIHRoaXMgZXZlbnQuCiAgICAgYm9vbCBpc1NlcnZpY2VzTWVudTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KaW5kZXggMTE0NzZhMDMyNzZlZGQ5NGU3NTU1MTM5MzBhYjQ2MTliY2VkZjk1My4uMDI3ZTU0
YjczN2VhZWIwNzhhMTZmMGVmZDZlZThkYmVjODNmMzQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAg
LTE0Niw2ICsxNDYsOCBAQAogI2ltcG9ydCAiV2ViS2l0VmVyc2lvbkNoZWNrcy5oIgogI2ltcG9y
dCAiV2ViTWFpbERlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJVSUtpdERlbGVnYXRlLmgiCisjZWxz
ZQorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAj
ZW5kaWYKIAogI2lmIFVTRShRVUlDS19MT09LKQpAQCAtMTU2MSwxNyArMTU2MywxNCBAQCBOU0Rp
Y3Rpb25hcnkgKldlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0aW9uYXJ5KGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mIGFjdAogI2lmICFQTEFURk9STShJT1MpCiAgICAgY29uc3QgVUlFdmVu
dFdpdGhLZXlTdGF0ZSoga2V5U3RhdGVFdmVudCA9IGZpbmRFdmVudFdpdGhLZXlTdGF0ZShjb25z
dF9jYXN0PEV2ZW50Kj4oZXZlbnQpKTsKICAgICBpZiAoa2V5U3RhdGVFdmVudCAmJiBrZXlTdGF0
ZUV2ZW50LT5pc1RydXN0ZWQoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+Y3RybEtleSgpKQotICAgICAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBOU0NvbnRyb2xLZXlNYXNrOworICAgICAgICAgICAgbW9kaWZpZXJGbGFn
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKICAgICAgICAgaWYgKGtleVN0YXRlRXZl
bnQtPmFsdEtleSgpKQotICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0FsdGVybmF0ZUtl
eU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdP
cHRpb247CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5zaGlmdEtleSgpKQotICAgICAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU1NoaWZ0S2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogICAgICAgICBpZiAoa2V5U3RhdGVF
dmVudC0+bWV0YUtleSgpKQotICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0NvbW1hbmRL
ZXlNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgbW9kaWZp
ZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKICAgICB9CiAjZWxzZQogICAg
IC8vIE5vIG1vZGlmaWVyIGZsYWdzIG9uIGlPUyByaWdodCBub3cKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQppbmRleCA5
MDc4N2Q2MjBiMzgxZTUzOGM3YjFhZGRjNzZmMmQyOWM1OTMyMjA5Li43NmIyY2QyY2JmMTBiMjBh
Mzk5M2MyZjNmN2I3MTljYmU3YTU4MTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCkBAIC01Myw2ICs1Myw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kv
RE9NRXh0ZW5zaW9ucy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1w
b3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQg
PHd0Zi90ZXh0L0Jhc2U2NC5oPgogCiBTT0ZUX0xJTktfU1RBR0VEX0ZSQU1FV09SSyhXZWJJbnNw
ZWN0b3JVSSwgUHJpdmF0ZUZyYW1ld29ya3MsIEEpCkBAIC0xOTEsMTAgKzE5Miw3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmF0dGFjaEF2YWlsYWJpbGl0eUNoYW5nZWQoYm9v
bCBhdmFpbGFibGUpCiAKIGJvb2wgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmNhbkF0dGFj
aCgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbbV9m
cm9udGVuZFdpbmRvd0NvbnRyb2xsZXIgd2luZG93XSBzdHlsZU1hc2tdICYgTlNGdWxsU2NyZWVu
V2luZG93TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW1ttX2Zy
b250ZW5kV2luZG93Q29udHJvbGxlciB3aW5kb3ddIHN0eWxlTWFza10gJiBOU1dpbmRvd1N0eWxl
TWFza0Z1bGxTY3JlZW4pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBjYW5B
dHRhY2hXaW5kb3coKTsKQEAgLTQ2NSwxMCArNDYzLDcgQEAgLSAoTlNXaW5kb3cgKil3aW5kb3cK
ICAgICBpZiAod2luZG93KQogICAgICAgICByZXR1cm4gd2luZG93OwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNVSW50ZWdlciBzdHlsZU1hc2sgPSBOU1RpdGxl
ZFdpbmRvd01hc2sgfCBOU0Nsb3NhYmxlV2luZG93TWFzayB8IE5TTWluaWF0dXJpemFibGVXaW5k
b3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrIHwgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2lu
ZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU1VJbnRlZ2VyIHN0
eWxlTWFzayA9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVkIHwgTlNXaW5kb3dTdHlsZU1hc2tDbG9z
YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrTWluaWF0dXJpemFibGUgfCBOU1dpbmRvd1N0eWxlTWFz
a1Jlc2l6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVDb250ZW50VmlldzsKICAgICB3
aW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3Qo
MCwgMCwgaW5pdGlhbFdpbmRvd1dpZHRoLCBpbml0aWFsV2luZG93SGVpZ2h0KSBzdHlsZU1hc2s6
c3R5bGVNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAg
W3dpbmRvdyBzZXREZWxlZ2F0ZTpzZWxmXTsKICAgICBbd2luZG93IHNldE1pblNpemU6TlNNYWtl
U2l6ZShtaW5pbXVtV2luZG93V2lkdGgsIG1pbmltdW1XaW5kb3dIZWlnaHQpXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KaW5kZXgg
MDJhNzU2Zjc2NzczMTVjNjIyZGQ4MWQ5OWEyOWZhYzNmYjViZjllMi4uNjY3YjJjNWE1NDQ3YWFl
NDZhNWU2MDdjNTc0MTQ0MDI3MmI0NjIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KQEAgLTM5LDYgKzM5LDggQEAKICNpbXBv
cnQgIldlYlZpZXcuaCIKICNpbXBvcnQgPFdlYkNvcmUvUXVhcnR6Q29yZVNQSS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9XQUtXaW5kb3cuaD4KKyNlbHNlCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENv
bXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKQEAgLTkxLDEwICs5Myw3IEBAIC0gKGlkKWluaXRXaXRoVGFyZ2V0VmlldzooTlNWaWV3
ICopdGFyZ2V0VmlldyBpbnNwZWN0b3JDb250cm9sbGVyOihJbnNwZWN0b3JDb250CiAgICAgX2lu
c3BlY3RvckNvbnRyb2xsZXIgPSBpbnNwZWN0b3JDb250cm9sbGVyOwogCiAjaWYgIVBMQVRGT1JN
KElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpbnQgc3R5bGVN
YXNrID0gTlNCb3JkZXJsZXNzV2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBpbnQgc3R5bGVNYXNrID0gTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzOwogICAg
IE5TUmVjdCBjb250ZW50UmVjdCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1lUmVjdDpb
c2VsZiBfY29tcHV0ZUhpZ2hsaWdodFdpbmRvd0ZyYW1lXSBzdHlsZU1hc2s6c3R5bGVNYXNrXTsK
ICAgICBfaGlnaGxpZ2h0V2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3Rv
cmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW19oaWdobGlnaHRXaW5kb3cgc2V0QmFja2dyb3Vu
ZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZVZpZXcubW0KaW5kZXggNWVjMTk3ODVkYTcyOTdiMWEyNDRjNTc2MzIwNzBjNGJkZTk0
NmIwNS4uNWI4NjcxNTQwZTZmOGExMjMxZWNlMWY1NDk0NGIxNTg4OTM3NGI3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KQEAgLTgzLDYgKzgzLDcgQEAKICNl
bHNlCiAjaW1wb3J0ICJXZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaCIKICNpbXBvcnQgIldlYk5TV2lu
ZG93RXh0cmFzLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJh
dGlvbnMuaD4KICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTkxNSw5ICs5
MTYsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICBCT09MIGNhbGxT
dXBlciA9IFlFUzsKICAgICBGcmFtZSogY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CiAg
ICAgQk9PTCBtYWludGFpbnNCYWNrRm9yd2FyZExpc3QgPSBjb3JlRnJhbWUgJiYgc3RhdGljX2Nh
c3Q8QmFja0ZvcndhcmRMaXN0Kj4oY29yZUZyYW1lLT5wYWdlKCktPmJhY2tGb3J3YXJkKCkuY2xp
ZW50KCkpLT5lbmFibGVkKCkgPyBZRVMgOiBOTzsKLSAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKwogICAgIGNvdW50ID0gW2NoYXJhY3RlcnMgbGVuZ3RoXTsKICAgICBm
b3IgKGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgKytpbmRleCkgewogICAgICAgICBzd2l0Y2gg
KFtjaGFyYWN0ZXJzIGNoYXJhY3RlckF0SW5kZXg6aW5kZXhdKSB7CkBAIC05MjgsNyArOTI3LDcg
QEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIC8vIFRoaXMgb2RkIGJlaGF2aW9yIG1hdGNoZXMgc29tZSBleGlzdGlu
ZyBicm93c2VycywKICAgICAgICAgICAgICAgICAvLyBpbmNsdWRpbmcgV2luZG93cyBJRQotICAg
ICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spIHsKKyAgICAg
ICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkg
ewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBfZ29Gb3J3YXJkXTsKICAgICAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBfZ29CYWNrXTsKQEAgLTk0Myw3
ICs5NDIsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAg
ICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU1No
aWZ0S2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ1NoaWZ0KSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBh
Z2VVcDpuaWxdOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAg
IFtzZWxmIHNjcm9sbFBhZ2VEb3duOm5pbF07CkBAIC05ODQsNyArOTgzLDcgQEAgLSAodm9pZClr
ZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBjYXNlIE5TVXBBcnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRv
bid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3Vw
ZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChO
U1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYg
KG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAtOTk4LDkg
Kzk5Nyw5IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgICAgICAg
ICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAg
ICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAg
ICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudDpuaWxdOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5
TWFzaykgeworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZl
bnRNb2RpZmllckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xs
UGFnZVVwOm5pbF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAg
ICAgW3NlbGYgc2Nyb2xsTGluZVVwOm5pbF07CkBAIC0xMDA5LDcgKzEwMDgsNyBAQCAtICh2b2lk
KWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBX
ZSBkb24ndCBoYW5kbGUgc2hpZnRlZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0
IHN1cGVyIGhhdmUgYSBjaGFuY2UuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiAoTlNTaGlmdEtleU1hc2sgfCBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAg
IGlmIChtb2RpZmllckZsYWdzICYgKE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRN
b2RpZmllckZsYWdDb250cm9sKSkgewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZ
RVM7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTEw
MjMsOSArMTAyMiw5IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAg
ICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAg
ICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7
CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFRvRW5kT2ZEb2N1bWVudDpuaWxdOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5
TWFzaykgeworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZl
bnRNb2RpZmllckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xs
UGFnZURvd246bmlsXTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICBbc2VsZiBzY3JvbGxMaW5lRG93bjpuaWxdOwpAQCAtMTAzNCwxMiArMTAzMywxMiBAQCAt
ICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGNhc2UgTlNMZWZ0QXJyb3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAg
ICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRlZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwg
c28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2UuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAg
ICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5T
RXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewogICAgICAgICAgICAgICAgICAgICBjYWxsU3Vw
ZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAvLyBDaGVjayBiYWNrL2ZvcndhcmQgcmVsYXRlZCBrZXlzLgotICAg
ICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykgeworICAg
ICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1h
bmQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYWludGFpbnNCYWNrRm9yd2FyZExpc3Qp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA1Miw3ICsxMDUxLDcgQEAgLSAodm9pZClrZXlEb3du
OihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtb2RpZmll
ckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikgewogICAgICAgICAgICAgICAgICAg
ICAgICAgW3NlbGYgX3BhZ2VIb3Jpem9udGFsbHk6WUVTXTsKICAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9zY3JvbGxMaW5lSG9yaXpv
bnRhbGx5OllFU107CkBAIC0xMDYyLDEyICsxMDYxLDEyIEBAIC0gKHZvaWQpa2V5RG93bjooV2Vi
RXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBO
U1JpZ2h0QXJyb3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5k
bGUgc2hpZnRlZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUg
YSBjaGFuY2UuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtl
eU1hc2sgfCBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmll
ckZsYWdzICYgKE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdD
b250cm9sKSkgewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAv
LyBDaGVjayBiYWNrL2ZvcndhcmQgcmVsYXRlZCBrZXlzLgotICAgICAgICAgICAgICAgIGlmICht
b2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmICht
b2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFtYWludGFpbnNCYWNrRm9yd2FyZExpc3QpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMTA4MCw3ICsxMDc5LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50
CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlN
YXNrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ09wdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX3BhZ2VI
b3Jpem9udGFsbHk6Tk9dOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgX3Njcm9sbExpbmVIb3Jpem9udGFsbHk6Tk9dOwpAQCAtMTA5
MCw3ICsxMDg5LDYgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAgICAgaWYgKGNhbGxTdXBlcikgewogICAgICAgICBbc3VwZXIga2V5RG93bjpldmVu
dF07CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDlmZDk1NjYxN2YwN2M2Y2Y2ZjQ4NTdjYzll
MjIxNDBiMjE4OGIyZTQuLmY1NDM0MWZkYmI0ZTRkM2NlZDlkZWQxNjNmMTg0MzJiMDQ2ZDliMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29u
dHJvbGxlci5tbQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJXaW5kb3dB
bmltYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC04NiwxMSArODcs
OCBAQCBAaW1wbGVtZW50YXRpb24gV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIKICNwcmFnbWEgbWFy
ayBJbml0aWFsaXphdGlvbgogLSAoaWQpaW5pdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgogICAgIC8vIERvIG5vdCBkZWZlciB3aW5kb3cgY3JlYXRpb24sIHRvIG1ha2Ug
c3VyZSAtd2luZG93TnVtYmVyIGlzIGNyZWF0ZWQgKG5lZWRlZCBieSBXZWJXaW5kb3dTY2FsZUFu
aW1hdGlvbikuCi0gICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZUZ1bGxTY3JlZW5XaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6TlNDbG9z
YWJsZVdpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tX
ZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU1plcm9S
ZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFdpbmRv
dzp3aW5kb3ddOwogICAgIFt3aW5kb3cgcmVsZWFzZV07CiAgICAgaWYgKCFzZWxmKQpAQCAtNDYy
LDEwICs0NjAsNyBAQCAtICh2b2lkKV9zd2FwVmlldzooTlNWaWV3Kil2aWV3IHdpdGg6KE5TVmll
dyopb3RoZXJWaWV3CiAKIHN0YXRpYyBSZXRhaW5QdHI8TlNXaW5kb3c+IGNyZWF0ZUJhY2tncm91
bmRGdWxsc2NyZWVuV2luZG93KE5TUmVjdCBmcmFtZSkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFz
ayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW05TV2luZG93IGFsbG9j
XSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0Jv
cmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBb
d2luZG93IHNldE9wYXF1ZTpZRVNdOwogICAgIFt3aW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltO
U0NvbG9yIGJsYWNrQ29sb3JdXTsKICAgICBbd2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpO
T107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCA1NWYxYWUy
ZDQ1OGY1NjEzOTVmYzMyNmFhY2JjNjBmNGRiMzIxM2M0Li4wODRmZTQ1NTdlN2FiODUzNDM3YWNj
NTFlOWUyNzg3YWZmYTUwYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KQEAgLTE0MCwxMiArMTQwLDEzIEBACiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiAj
aWYgIVBMQVRGT1JNKElPUykKKyNpbXBvcnQgIldlYk5TRXZlbnRFeHRyYXMuaCIKKyNpbXBvcnQg
IldlYk5TUGFzdGVib2FyZEV4dHJhcy5oIgogI2ltcG9ydCA8QXBwS2l0L05TQWNjZXNzaWJpbGl0
eS5oPgogI2ltcG9ydCA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL05TTWVudVNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5oPgotI2ltcG9ydCAiV2ViTlNFdmVudEV4dHJhcy5oIgotI2ltcG9y
dCAiV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbmRpZgogCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1
YXJ0ekNvcmUuaD4KQEAgLTEzNTEsMTIgKzEzNTIsOSBAQCAtICh2b2lkKV9wYXN0ZUFzUGxhaW5U
ZXh0V2l0aFBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQKIAogLSAodm9pZClf
cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudDooTlNFdmVudCAqKWZs
YWdzQ2hhbmdlZEV2ZW50CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91
c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91
dHNpZGVPZkV2ZW50U3RyZWFtCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5n
ZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCiAgICAgICAg
IG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZlbnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6
ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0YW1wIHdpbmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVu
dC53aW5kb3dOdW1iZXIKICAgICAgICAgY29udGV4dDpudWxscHRyIGV2ZW50TnVtYmVyOjAgY2xp
Y2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAg
IFtzZWxmIG1vdXNlTW92ZWQ6ZmFrZUV2ZW50XTsKIH0KIApAQCAtMTUwNiwxMCArMTUwNCw3IEBA
IC0gKHZvaWQpX3NldE1vdXNlRG93bkV2ZW50OihXZWJFdmVudCAqKWV2ZW50CiAjZW5kaWYKIHsK
ICNpZiAhUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biB8fCBb
ZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNPdGhl
ck1vdXNlRG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQVNTRVJUKCFl
dmVudCB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIHx8IFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBO
U0V2ZW50VHlwZU90aGVyTW91c2VEb3duKTsKICNlbHNlCiAgICAgQVNTRVJUKCFldmVudCB8fCBl
dmVudC50eXBlID09IFdlYkV2ZW50TW91c2VEb3duKTsKICNlbmRpZgpAQCAtMTY2MSwxNiArMTY1
NiwxNyBAQCAtIChpZClfYnJpZGdlCiAKIC0gKHZvaWQpX3VwZGF0ZU1vdXNlb3ZlcldpdGhGYWtl
RXZlbnQKIHsKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5k
b3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFr
ZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAotICAgICAg
ICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1v
dXNlTG9jYXRpb25dXQorICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNl
TG9jYXRpb25dXQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtb2RpZmll
ckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICB0aW1l
c3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdp
bmRvd051bWJlcjpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgIGNvbnRleHQ6
bnVsbHB0cgogICAgICAgICBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIFtzZWxmIF91cGRhdGVNb3VzZW92
ZXJXaXRoRXZlbnQ6ZmFrZUV2ZW50XTsKIH0KQEAgLTE4NjgsMTEgKzE4NjQsOCBAQCAtIChCT09M
KV9pbnNpZGVBbm90aGVySFRNTFZpZXcKICNpZiAhUExBVEZPUk0oSU9TKQogc3RhdGljIEJPT0wg
aXNRdWlja0xvb2tFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICAgICBjb25zdCBpbnQga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtl
eUNvbWJpbmF0aW9uUmVsZWFzZWQgPSA5OwotICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNT
eXN0ZW1EZWZpbmVkICYmIFtldmVudCBzdWJ0eXBlXSA9PSBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBl
SG90S2V5Q29tYmluYXRpb25SZWxlYXNlZCAmJiBbZXZlbnQgZGF0YTFdID09ICdsa3VwJzsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5T
RXZlbnRUeXBlU3lzdGVtRGVmaW5lZCAmJiBbZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lz
dGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9uUmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAn
bGt1cCc7CiB9CiAjZW5kaWYKIApAQCAtMTkyOCwxNCArMTkyMSwxMSBAQCAtIChOU1ZpZXcgKilo
aXRUZXN0OihOU1BvaW50KXBvaW50CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaHkg
ZG9lc24ndCB0aGlzIGluY2x1ZGUgbW91c2UgZW50ZXJlZC9leGl0ZWQgZXZlbnRzLCBvciBvdGhl
ciBtb3VzZSBidXR0b24gZXZlbnRzPwogICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtbc2VsZiB3
aW5kb3ddIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgIGNhcHR1cmVIaXRzT25TdWJ2aWV3cyA9ICEoW2V2ZW50IHR5cGVdID09IE5TTW91
c2VNb3ZlZAotICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TUmlnaHRNb3VzZURvd24K
LSAgICAgICAgICAgIHx8IChbZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSAhPSAwKQotICAgICAgICAgICAg
fHwgW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkCisgICAgICAgIGNhcHR1cmVIaXRzT25T
dWJ2aWV3cyA9ICEoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAg
ICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24KKyAgICAg
ICAgICAgIHx8IChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duICYmIFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKQorICAgICAg
ICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkCiAgICAgICAg
ICAgICB8fCBpc1F1aWNrTG9va0V2ZW50KGV2ZW50KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAgICAgfQogCiAgICAgaWYgKCFjYXB0dXJlSGl0c09uU3Vidmlld3MpIHsKQEAgLTIw
MjMsOSArMjAxMyw3IEBAIC0gKHZvaWQpX3JlbW92ZVRyYWNraW5nUmVjdHM6KE5TVHJhY2tpbmdS
ZWN0VGFnICopdGFncyBjb3VudDooaW50KWNvdW50CiAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNl
RXhpdGVkCiB7CiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5n
TnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlw
ZTpOU01vdXNlRXhpdGVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJF
eGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRXhpdGVkCiAgICAgICAgIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1l
c3RhbXA6MApAQCAtMjAzNCwxNiArMjAyMiwxMyBAQCAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNl
RXhpdGVkCiAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJB
Q0tJTkdfUkVDVF9UQUcKICAgICAgICAgdXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVz
ZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbX3ByaXZhdGUtPnRy
YWNraW5nUmVjdE93bmVyIG1vdXNlRXhpdGVkOmZha2VFdmVudF07CiB9CiAKIC0gKHZvaWQpX3Nl
bmRUb29sVGlwTW91c2VFbnRlcmVkCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVy
LCBhbmQgdXNlckRhdGEuCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJF
eGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRW50ZXJlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9
IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUVudGVyZWQK
ICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgbW9kaWZpZXJGbGFn
czowCiAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yMDUzLDcgKzIwMzgsNiBAQCAtICh2b2lkKV9z
ZW5kVG9vbFRpcE1vdXNlRW50ZXJlZAogICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19S
RUNUX1RBRwogICAgICAgICB1c2VyRGF0YTpfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0VXNlckRhdGFd
OwogICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0T3duZXIgbW91c2VFbnRlcmVkOmZha2VFdmVu
dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JN
KElPUykKIApAQCAtMjA4OSwyMSArMjA3MywxOCBAQCAtIChOU1N0cmluZyAqKXZpZXc6KE5TVmll
dyAqKXZpZXcgc3RyaW5nRm9yVG9vbFRpcDooTlNUb29sVGlwVGFnKXRhZyBwb2ludDooTlNQbwog
c3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQp
CiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRHJhZ2dlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJp
Z2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogfQogCkBAIC0yMTM0LDE2ICsyMTE1LDE0IEBAIC0gKHZvaWQpX3VwZGF0ZU1vdXNlb3Zlcldp
dGhFdmVudDooTlNFdmVudCAqKWV2ZW50CiAgICAgICAgIGZsb2F0IHlTY3JvbGwgPSB2aXNpYmxl
UmVjdC5vcmlnaW4ueTsKICAgICAgICAgZmxvYXQgeFNjcm9sbCA9IHZpc2libGVSZWN0Lm9yaWdp
bi54OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIE5TRXZl
bnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAorICAg
ICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZU1vdXNlTW92ZWQKICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KC0xIC0geFNj
cm9sbCwgLTEgLSB5U2Nyb2xsKQogICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1
cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRl
IHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgICAgIHdpbmRvd051bWJl
cjpbW3ZpZXcgd2luZG93XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgICAgICBjb250ZXh0Om51bGxw
dHIKICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiAgICAgICAgIGlmIChGcmFtZSogbGFzdEhp
dENvcmVGcmFtZSA9IGNvcmUoW2xhc3RIaXRWaWV3IF9mcmFtZV0pKQogICAgICAgICAgICAgbGFz
dEhpdENvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChldmVudCwgW1tzZWxmIF93
ZWJWaWV3XSBfcHJlc3N1cmVFdmVudF0pOwogICAgIH0KQEAgLTIzMzAsMTYgKzIzMDksMTggQEAg
LSAodm9pZClfYXV0b3Njcm9sbAogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCisgICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TGVmdE1vdXNlRHJhZ2dlZAorICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQogI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURyYWdnZWQKLSAgICAgICAgbG9j
YXRpb246W1tzZWxmIHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxv
Y2F0aW9uXV0KKyAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0
aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbW9kaWZpZXJGbGFn
czpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1w
OltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dO
dW1iZXI6W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0Om51bGxw
dHIKICAgICAgICAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAgICBbc2VsZiBtb3VzZURyYWdnZWQ6ZmFrZUV2
ZW50XTsKICNlbmRpZgogfQpAQCAtMzM1NCwxMiArMzMzNSw5IEBAIC0gKEJPT0wpYWNjZXB0c0Zp
cnN0UmVzcG9uZGVyCiAgICAgLy8gb3IgZnJvbSBjYWxscyBiYWNrIGZyb20gV2ViQ29yZSBvbmNl
IHdlIGJlZ2luIG1vdXNlLWRvd24gZXZlbnQgaGFuZGxpbmcuCiAjaWYgIVBMQVRGT1JNKElPUykg
ICAgICAgICAgICAKICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0g
PT0gTlNMZWZ0TW91c2VEb3duCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZURvd24KICAgICAgICAgICAgICYmICFfcHJpdmF0ZS0+aGFuZGxpbmdNb3VzZURvd25F
dmVudAogICAgICAgICAgICAgJiYgTlNQb2ludEluUmVjdChbZXZlbnQgbG9jYXRpb25JbldpbmRv
d10sIFtzZWxmIGNvbnZlcnRSZWN0OltzZWxmIHZpc2libGVSZWN0XSB0b1ZpZXc6bmlsXSkpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgcmV0dXJuIE5POwogICAgIH0K
ICNlbHNlCkBAIC0zNTI4LDEzICszNTA2LDEwIEBAIC0gKHZvaWQpdmlld0RpZE1vdmVUb1dpbmRv
dwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgaWYgKCFfcHJpdmF0ZS0+ZmxhZ3NDaGFu
Z2VkRXZlbnRNb25pdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgICAgICAgICBfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQg
YWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2VkTWFzayBo
YW5kbGVyOl4oTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKKyAgICAgICAgICAgIF9wcml2
YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JG
b3JFdmVudHNNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgaGFuZGxlcjpeKE5T
RXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgW3NlbGYgX3Bvc3RG
YWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6ZmxhZ3NDaGFuZ2VkRXZlbnRd
OwogICAgICAgICAgICAgICAgIHJldHVybiBmbGFnc0NoYW5nZWRFdmVudDsKICAgICAgICAgICAg
IH1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAgICAgfSBlbHNl
IHsKICAgICAgICAgW05TRXZlbnQgcmVtb3ZlTW9uaXRvcjpfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2Vk
RXZlbnRNb25pdG9yXTsKQEAgLTQ1NDAsMTEgKzQ1MTUsMTIgQEAgLSAodm9pZCltb3VzZURvd246
KFdlYkV2ZW50ICopZXZlbnQKICAgICBOU0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdl
ciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXTsKIAogICAgIGlmICghW2N1
cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNlRXZlbnRzXSB8fCAhW2N1cnJlbnRJ
bnB1dE1hbmFnZXIgaGFuZGxlTW91c2VFdmVudDpldmVudF0pIHsKKyNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKICAgICAgICAgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBlbmRS
ZXZlcnRpbmdDaGFuZ2U6Tk8gbW92ZUxlZnQ6Tk9dOwogCiAgICAgICAgIC8vIElmIHRoZSB3ZWIg
cGFnZSBoYW5kbGVzIHRoZSBjb250ZXh0IG1lbnUgZXZlbnQgYW5kIG1lbnVGb3JFdmVudDogcmV0
dXJucyBuaWwsIHdlJ2xsIGdldCBjb250cm9sIGNsaWNrIGV2ZW50cyBoZXJlLgogICAgICAgICAv
LyBXZSBkb24ndCB3YW50IHRvIHBhc3MgdGhlbSBhbG9uZyB0byBLSFRNTCBhIHNlY29uZCB0aW1l
LgotICAgICAgICBpZiAoIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNr
KSkgeworICAgICAgICBpZiAoIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnQ29udHJvbCkpIHsKICAgICAgICAgICAgIF9wcml2YXRlLT5pZ25vcmluZ01vdXNlRHJh
Z2dlZEV2ZW50cyA9IE5POwogCiAgICAgICAgICAgICAvLyBMZXQgV2ViQ29yZSBnZXQgYSBjaGFu
Y2UgdG8gZGVhbCB3aXRoIHRoZSBldmVudC4gVGhpcyB3aWxsIGNhbGwgYmFjayB0byB1cwpAQCAt
NDU1Myw3ICs0NTI5LDYgQEAgLSAodm9pZCltb3VzZURvd246KFdlYkV2ZW50ICopZXZlbnQKICAg
ICAgICAgICAgICAgICBjb3JlZnJhbWUtPmV2ZW50SGFuZGxlcigpLm1vdXNlRG93bihldmVudCwg
W1tzZWxmIF93ZWJWaWV3XSBfcHJlc3N1cmVFdmVudF0pOwogICAgICAgICB9CiAgICAgfQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogI2VuZGlmCiAKICAgICBfcHJpdmF0ZS0+aGFuZGxp
bmdNb3VzZURvd25FdmVudCA9IE5POwpAQCAtNDgxOCwxOSArNDc5MywxMiBAQCBzdGF0aWMgUGFz
c1JlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZy
YW1lKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0tleURvd246IHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlE
b3duOiB7CiAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwbGF0Zm9ybUV2ZW50ID0gUGxh
dGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCk7CiAg
ICAgICAgIHBsYXRmb3JtRXZlbnQuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZl
bnQ6OlJhd0tleURvd24pOwogICAgICAgICByZXR1cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBs
YXRmb3JtRXZlbnQsIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAg
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlVcDoK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6
CiAgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUoUGxhdGZvcm1FdmVudEZhY3Rv
cnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCksIGNvcmVGcmFtZS0+ZG9jdW1l
bnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIDA7CkBA
IC01NTI0LDExICs1NDkyLDggQEAgLSAoQk9PTClfaGFuZGxlU3R5bGVLZXlFcXVpdmFsZW50OihO
U0V2ZW50ICopZXZlbnQKICAgICBpZiAoIVtzZWxmIF9jYW5FZGl0XSkKICAgICAgICAgcmV0dXJu
IE5POwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICgo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NN
YXNrKSAhPSBOU0NvbW1hbmRLZXlNYXNrKQorICAgIGlmICgoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrKSAhPSBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkKICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogCiAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFtldmVudCBjaGFyYWN0
ZXJzXTsKICAgICBpZiAoW3N0cmluZyBjYXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiYiJdID09IE5T
T3JkZXJlZFNhbWUpIHsKQEAgLTY0NDgsMTQgKzY0MTMsMTEgQEAgLSAoQk9PTClfaW50ZXJwcmV0
S2V5RXZlbnQ6KEtleWJvYXJkRXZlbnQqKWV2ZW50IHNhdmluZ0NvbW1hbmRzOihCT09MKXNhdmlu
Z0NvbW0KICAgICAgICAgcmV0dXJuIE5POwogCiAgICAgTlNFdmVudCAqbWFjRXZlbnQgPSBwbGF0
Zm9ybUV2ZW50LT5tYWNFdmVudCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29t
cGxldGlvbkNvbnRyb2xsZXIgZmlsdGVyS2V5RG93bjptYWNFdmVudF0pCisgICAgaWYgKFttYWNF
dmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gJiYgW19wcml2YXRlLT5jb21wbGV0aW9u
Q29udHJvbGxlciBmaWx0ZXJLZXlEb3duOm1hY0V2ZW50XSkKICAgICAgICAgcmV0dXJuIFlFUzsK
ICAgICAKLSAgICBpZiAoW21hY0V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQorICAgIGlm
IChbbWFjRXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCiAgICAgICAgIHJl
dHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAKICAgICBwYXJhbWV0
ZXJzLmV2ZW50ID0gZXZlbnQ7CiAgICAgX3ByaXZhdGUtPmludGVycHJldEtleUV2ZW50c1BhcmFt
ZXRlcnMgPSAmcGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5t
bQppbmRleCA3OGY1NmU0OTFlMDg2YWFlOTgzYjM4MDY5OWE1NTE1N2NkOThmZGJhLi45NjBjNjM3
OWQxYWNlNjAwN2JlMTIwNTJhZTI4NDc0NzM1NDdkODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQREZWaWV3Lm1tCkBAIC02NSw2ICs2NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dl
Yk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQog
I2ltcG9ydCA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzUHJpdi5oPgpA
QCAtMzIxLDEwICszMjIsNyBAQCAtIChOU1ZpZXcgKiloaXRUZXN0OihOU1BvaW50KXBvaW50CiAg
ICAgLy8gT3ZlcnJpZGUgaGl0VGVzdCBzbyB3ZSBjYW4gb3ZlcnJpZGUgbWVudUZvckV2ZW50Lgog
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVudF07CiAgICAgTlNFdmVudFR5
cGUgdHlwZSA9IFtldmVudCB0eXBlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBpZiAodHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duIHx8ICh0eXBlID09IE5TTGVmdE1v
dXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykpKQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICh0eXBlID09IE5TRXZlbnRUeXBl
UmlnaHRNb3VzZURvd24gfHwgKHR5cGUgPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duICYmIChb
ZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpKQogICAg
ICAgICByZXR1cm4gc2VsZjsKIAogICAgIHJldHVybiBbc3VwZXIgaGl0VGVzdDpwb2ludF07CkBA
IC0xMDA5LDM5ICsxMDA3LDMzIEBAIC0gKHZvaWQpUERGVmlld1dpbGxDbGlja09uTGluazooUERG
VmlldyAqKXNlbmRlciB3aXRoVVJMOihOU1VSTCAqKVVSTAogICAgIGludCBidXR0b24gPSBub0J1
dHRvbjsKICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50OwogICAgIHN3aXRjaCAoW25zRXZlbnQgdHlw
ZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBO
U0xlZnRNb3VzZVVwOgotICAgICAgICAgICAgYnV0dG9uID0gMDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICAgICAgYnV0dG9uID0gMTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAg
ICAgICAgYnV0dG9uID0gW25zRXZlbnQgYnV0dG9uTnVtYmVyXTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIE5TS2V5RG93bjogewotICAgICAgICAgICAgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRF
dmVudChuc0V2ZW50KTsKLSAgICAgICAgICAgIHBlLmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQ
bGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKLSAgICAgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRF
dmVudDo6Y3JlYXRlKHBlLCAwKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgICAgIGJ1dHRvbiA9
IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6Cisg
ICAgICAgIGJ1dHRvbiA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlVXA6CisgICAgICAgIGJ1dHRvbiA9IFtuc0V2ZW50IGJ1dHRvbk51bWJlcl07Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7CisgICAgICAgIFBs
YXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0
Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7CisgICAgICAgIHBlLmRpc2FtYmlndWF0ZUtleURv
d25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKKyAgICAgICAgZXZlbnQgPSBLZXli
b2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVm
YXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGlmIChidXR0b24gIT0gbm9CdXR0b24p
IHsKICAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNr
RXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIDAsIFtuc0V2ZW50IGNsaWNrQ291bnRd
LCAwLCAwLCAwLCAwLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAwLCAw
LAogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAg
ICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2ssCi0gICAgICAgICAg
ICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaywKLSAgICAgICAg
ICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1hc2ssCi0gICAgICAgICAg
ICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2ssCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sLAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uLAorICAgICAgICAgICAgW25zRXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQsCisgICAgICAgICAg
ICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kLAog
ICAgICAgICAgICAgYnV0dG9uLCAwLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIDAsIDAsIHRydWUp
OwogICAgIH0KIApAQCAtMTE0OSw5ICsxMTQxLDcgQEAgLSAoTlNFdmVudCAqKV9mYWtlS2V5RXZl
bnRXaXRoRnVuY3Rpb25LZXk6KHVuaWNoYXIpZnVuY3Rpb25LZXkKICAgICAvLyBGSVhNRSA0NDAw
NDgwOiB3aGVuIFBERlZpZXcgaW1wbGVtZW50cyB0aGUgc3RhbmRhcmQgc2Nyb2xsaW5nIHNlbGVj
dG9ycyB0aGF0IHRoaXMKICAgICAvLyBtZXRob2QgaXMgdXNlZCB0byBtaW1pYywgd2UgY2FuIGVs
aW1pbmF0ZSB0aGlzIG1ldGhvZCBhbmQgY2FsbCB0aGVtIGRpcmVjdGx5LgogICAgIE5TU3RyaW5n
ICprZXlBc1N0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczomZnVuY3Rpb25L
ZXkgbGVuZ3RoOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHJl
dHVybiBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5RG93bgorICAgIHJldHVybiBbTlNF
dmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93bgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOk5TWmVyb1BvaW50CiAgICAgICAgICAgICAgICAgICAgICAg
IG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOjAK
QEAgLTExNjEsNyArMTE1MSw2IEBAIC0gKE5TRXZlbnQgKilfZmFrZUtleUV2ZW50V2l0aEZ1bmN0
aW9uS2V5Oih1bmljaGFyKWZ1bmN0aW9uS2V5CiAgICAgICAgICBjaGFyYWN0ZXJzSWdub3JpbmdN
b2RpZmllcnM6a2V5QXNTdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQVJlcGVh
dDpOTwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlDb2RlOjBdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiAtICh2b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlGcm9t
TWVudTooaWQpc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tCmluZGV4IDQzODJiMDQ0NzRlNjBjOGMyMzcz
MzA0N2I4MTM5NjRhNGY3ODQyNjMuLjdiOWU1ZGJjZjQ4YzIxNmI2YzU2NjMxMGMxNzRlNDMxMmM1
NjI4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBs
ZXRpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4
dENvbXBsZXRpb25Db250cm9sbGVyLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJXZWJU
eXBlc0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0Zy
YW1lLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KIAogQGludGVyZmFjZSBOU1dpbmRvdyAoV2ViTlNXaW5kb3dEZXRhaWxzKQogLSAodm9pZClf
c2V0Rm9yY2VBY3RpdmVDb250cm9sczooQk9PTClmbGFnOwpAQCAtMTEyLDEwICsxMTMsNyBAQCAt
ICh2b2lkKV9idWlsZFVJCiAgICAgW3Njcm9sbFZpZXcgc2V0RG9jdW1lbnRWaWV3Ol90YWJsZVZp
ZXddOwogICAgIFtfdGFibGVWaWV3IHJlbGVhc2VdOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIF9wb3B1cFdpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGlu
aXRXaXRoQ29udGVudFJlY3Q6c2Nyb2xsRnJhbWUgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRv
d01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBfcG9wdXBXaW5kb3cgPSBbW05TV2luZG93IGFsbG9j
XSBpbml0V2l0aENvbnRlbnRSZWN0OnNjcm9sbEZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxl
TWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsK
ICAgICBbX3BvcHVwV2luZG93IHNldEFscGhhVmFsdWU6MC44OGZdOwogICAgIFtfcG9wdXBXaW5k
b3cgc2V0Q29udGVudFZpZXc6c2Nyb2xsVmlld107CiAgICAgW3Njcm9sbFZpZXcgcmVsZWFzZV07
CkBAIC0xNTUsOCArMTUzLDggQEAgLSAodm9pZClfcGxhY2VQb3B1cFdpbmRvdzooTlNQb2ludCl0
b3BMZWZ0CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgIG1heFdp
ZHRoID0gY2VpbGYoW05TU2Nyb2xsVmlldyBmcmFtZVNpemVGb3JDb250ZW50U2l6ZTpOU01ha2VT
aXplKG1heFdpZHRoLCAxMDAuMGYpIGhhc0hvcml6b250YWxTY3JvbGxlcjpOTyBoYXNWZXJ0aWNh
bFNjcm9sbGVyOllFUyBib3JkZXJUeXBlOk5TTm9Cb3JkZXJdLndpZHRoKTsKLSAgICAgICAgbWF4
V2lkdGggPSBjZWlsZihbTlNXaW5kb3cgZnJhbWVSZWN0Rm9yQ29udGVudFJlY3Q6TlNNYWtlUmVj
dCgwLjBmLCAwLjBmLCBtYXhXaWR0aCwgMTAwLjBmKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2lu
ZG93TWFza10uc2l6ZS53aWR0aCk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIG1heFdpZHRoID0gY2VpbGYoW05TV2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5T
TWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc10uc2l6ZS53aWR0aCk7CiAgICAgICAgIG1heFdpZHRoICs9IDUu
MGY7CiAgICAgICAgIHdpbmRvd0ZyYW1lLnNpemUud2lkdGggPSBzdGQ6Om1heChtYXhXaWR0aCwg
d2luZG93RnJhbWUuc2l6ZS53aWR0aCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCmluZGV4IDdjZmFhODdiNTU2ZWI0NzZiZjNjNWZlZDVlMDNlNjhmYmEyZGU0YmYuLmJl
MzI2ZTdmOGU3MzI3Njk5NmRkY2U1YzkzMzJhZjQ2YjlhZjcxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIxMyw2ICsyMTMsNyBAQAogI2ltcG9ydCA8d3RmL1JlZlB0
ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
I2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oPgogCiAjaWYgIVBMQVRGT1JNKElPUykK
QEAgLTYwOTUsMTAgKzYwOTYsNyBAQCAtIChEcmFnQXBwbGljYXRpb25GbGFncylhcHBsaWNhdGlv
bkZsYWdzOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogICAgICAgICBmbGFncyB8
PSBEcmFnQXBwbGljYXRpb25IYXNBdHRhY2hlZFNoZWV0OwogICAgIGlmIChbZHJhZ2dpbmdJbmZv
IGRyYWdnaW5nU291cmNlXSA9PSBzZWxmKQogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRp
b25Jc1NvdXJjZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAo
W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNr
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW05TQXBwIGN1cnJlbnRF
dmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAg
ICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25Jc0NvcHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxEcmFnQXBwbGljYXRpb25GbGFncz4oZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQppbmRleCAyZTY1ODA2ZGI1ZDY4ZjBhNGEy
ODJkMzgzYjk2ZTdiNDUxNmI5MDQwLi5iMGM1NTRkNGRhNjIzZDk5YjAxNDM1ODY3YjIwNzcyNWI4
Njc0NTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vz
c01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5t
bQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCA8cHdkLmg+CiAjaW1wb3J0IDxzdGRsaWIuaD4K
ICNpbXBvcnQgPHN5c2V4aXRzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4K
IAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCkBAIC0xOTcsMTAgKzE5OCw3IEBAIHZvaWQg
Q2hpbGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKCkKICAgICBBU1NFUlQoW05TQXBwIGlzUnVu
bmluZ10pOwogICAgIFtOU0FwcCBzdG9wOm5pbF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRo
VHlwZTpOU0FwcGxpY2F0aW9uRGVmaW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0
eXBlOjAgZGF0YTE6MCBkYXRhMjowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUFwcGxpY2F0aW9uRGVmaW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZs
YWdzOjAgdGltZXN0YW1wOjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAg
ZGF0YTE6MCBkYXRhMjowXTsKICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1
ZV07CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2Vi
RXZlbnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3Rv
cnkubW0KaW5kZXggYTg1ZWZjYWVlOWE1MmQ4YzA0NTY2NmQ5NGM0OTE4NzBjYTY4YTdkMy4uMmYx
NThjMDNlM2JlMzgzOGMwNjNiMjFiMjBmYzlmNjdjNzJiOWM2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KQEAgLTYzLDc4ICs2Myw2OSBAQCBzdGF0
aWMgV2ViTW91c2VFdmVudDo6QnV0dG9uIGN1cnJlbnRNb3VzZUJ1dHRvbigpCiAKIHN0YXRpYyBX
ZWJNb3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtldmVu
dCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBO
U0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAg
ICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmln
aHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpS
aWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOworICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdl
Yk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6Umln
aHRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VE
cmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOwogI2lm
IGRlZmluZWQoX19MUDY0X18pCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSAgICAgICAgY2FzZSBOU01vdXNl
RW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICAgICAgcmV0dXJu
IGN1cnJlbnRNb3VzZUJ1dHRvbigpOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVu
dGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgICAgICByZXR1cm4g
Y3VycmVudE1vdXNlQnV0dG9uKCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIFdlYk1v
dXNlRXZlbnQ6Ok5vQnV0dG9uOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IH0KIAogc3RhdGljIFdlYkV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVu
dCogZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0g
ICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoK
LSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJh
Z2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0
dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RG93bjoKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VEb3duOwotICAgICAgICBj
YXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAg
IGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNl
VXA7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNl
TW92ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgor
ICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6
Ok1vdXNlRG93bjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVw
OgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlVXA7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogfQogCiBzdGF0aWMgaW50IGNsaWNrQ291bnRGb3JFdmVudChOU0V2ZW50ICpl
dmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2gg
KFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAg
Y2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVw
OgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBO
U090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50
XTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gW2V2ZW50
IGNsaWNrQ291bnRdOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOwogICAgIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KIAogc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9p
bnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKQEAgLTE0MywyMiArMTM0LDE5IEBAIHN0YXRpYyBO
U1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAjaWYgZGVmaW5lZChf
X0xQNjRfXykKICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAg
ICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAg
Y2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgY2FzZSBO
U01vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNPdGhl
ck1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNSaWdo
dE1vdXNlRG93bjoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU1Jp
Z2h0TW91c2VVcDoKLSAgICBjYXNlIE5TU2Nyb2xsV2hlZWw6Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBO
U0V2ZW50VHlwZVNjcm9sbFdoZWVsOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6Z2xvYmFsUG9p
bnQoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7CiAgICAgZGVmYXVs
dDoKICAgICAgICAgcmV0dXJuIE5TWmVyb1BvaW50OwpAQCAtMTcxLDIyICsxNTksMTkgQEAgc3Rh
dGljIE5TUG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kb3dW
aWV3KQogI2lmIGRlZmluZWQoX19MUDY0X18pCiAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJl
OgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBO
U0xlZnRNb3VzZURvd246Ci0gICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBO
U0xlZnRNb3VzZVVwOgotICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgY2FzZSBOU01vdXNl
RXhpdGVkOgotICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRG93
bjoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VV
cDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFn
Z2VkOgotICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgY2FzZSBOU1Njcm9sbFdoZWVsOiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVy
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1v
dXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsOiB7CiAgICAgICAgIC8v
IE5vdGU6IFRoaXMgd2lsbCBoYXZlIGl0cyBvcmlnaW4gYXQgdGhlIGJvdHRvbSBsZWZ0IG9mIHRo
ZSB3aW5kb3cgdW5sZXNzIHdpbmRvd1ZpZXcgaXMgZmxpcHBlZC4KICAgICAgICAgLy8gSW4gdGhv
c2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5IFdpZGdldDo6Y29udmVy
dEZyb21Db250YWluaW5nV2luZG93LgogICAgICAgICBOU1BvaW50IGxvY2F0aW9uID0gW2V2ZW50
IGxvY2F0aW9uSW5XaW5kb3ddOwpAQCAtMjQwLDEwICsyMjUsNyBAQCBzdGF0aWMgaW5saW5lIFN0
cmluZyB0ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxhY2VzU29mdFNwYWNl
KQogewogICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVu
dCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAgICByZXR1cm4gU3RyaW5nKFtldmVudCBjaGFyYWN0
ZXJzXSk7CiB9CkBAIC0yNTIsMTAgKzIzNCw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHVubW9k
aWZpZWRUZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxhY2VzU29mdFNwCiB7
CiAgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5
cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCiAgICAgICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmcoW2V2ZW50IGNoYXJhY3RlcnNJ
Z25vcmluZ01vZGlmaWVyc10pOwogfQpAQCAtMjY0LDc0ICsyNDMsNjggQEAgc3RhdGljIGJvb2wg
aXNLZXlwYWRFdmVudChOU0V2ZW50KiBldmVudCkKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMg
aXMgdGhlIHR5cGUgb2YgZXZlbnQgdGhhdCBoYXMgYSBrZXlDb2RlLgogICAgIHN3aXRjaCAoW2V2
ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAg
IGNhc2UgTlNLZXlEb3duOgotICAgICAgICBjYXNlIE5TS2V5VXA6Ci0gICAgICAgIGNhc2UgTlNG
bGFnc0NoYW5nZWQ6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBj
YXNlIE5TRXZlbnRUeXBlS2V5RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZDoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHN3aXRjaCAoW2V2ZW50IGtl
eUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFyCi0gICAgICAgIGNhc2UgODE6IC8v
ID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBjYXNlIDY3OiAvLyAqCi0gICAgICAg
IGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8gKwotICAgICAgICBjYXNlIDc2OiAv
LyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAgICAgIGNhc2UgODI6IC8vIDAKLSAg
ICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0OiAvLyAyCi0gICAgICAgIGNhc2Ug
ODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAgICAgICBjYXNlIDg3OiAvLyA1Ci0g
ICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4OTogLy8gNwotICAgICAgICBjYXNl
IDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAgICBjYXNlIDgxOiAvLyA9CisgICAg
Y2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAgICBjYXNlIDc4OiAvLyAtCisgICAg
Y2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVyCisgICAgY2FzZSA2NTogLy8gLgor
ICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAxCisgICAgY2FzZSA4NDogLy8gMgor
ICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0CisgICAgY2FzZSA4NzogLy8gNQor
ICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3CisgICAgY2FzZSA5MTogLy8gOAor
ICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogICAgICAKICAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNLZXlVcEV2ZW50KE5T
RXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IGlmIChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpCi0gICAgICAgIHJldHVybiBbZXZl
bnQgdHlwZV0gPT0gTlNLZXlVcDsKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBl
RmxhZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBl
S2V5VXA7CiAgICAgLy8gRklYTUU6IFRoaXMgbG9naWMgZmFpbHMgaWYgdGhlIHVzZXIgcHJlc3Nl
cyBib3RoIFNoaWZ0IGtleXMgYXQgb25jZSwgZm9yIGV4YW1wbGU6CiAgICAgLy8gd2UgdHJlYXQg
cmVsZWFzaW5nIG9uZSBvZiB0aGVtIGFzIGtleURvd24uCiAgICAgc3dpdGNoIChbZXZlbnQga2V5
Q29kZV0pIHsKLSAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAotICAgICAgICBjYXNl
IDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDU3OiAvLyBDYXBzbG9jawotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0FscGhhU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAg
IGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQK
LSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1h
c2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKLSAg
ICAgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAot
ICAgICAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKLSAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQg
Q3RybAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRy
b2xLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNjM6IC8vIEZ1bmN0
aW9uCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRnVuY3Rp
b25LZXlNYXNrKSA9PSAwOworICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAgICBjYXNl
IDU1OiAvLyBMZWZ0IENvbW1hbmQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpOworCisgICAgY2FzZSA1NzogLy8gQ2Fw
c2xvY2sKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ0NhcHNMb2NrKTsKKworICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKKyAgICBj
YXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpOworCisgICAgY2FzZSA1ODogLy8gTGVm
dCBBbHQKKyAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbik7CisKKyAgICBjYXNl
IDU5OiAvLyBMZWZ0IEN0cmwKKyAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgIHJl
dHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9s
KTsKKworICAgIGNhc2UgNjM6IC8vIEZ1bmN0aW9uCisgICAgICAgIHJldHVybiAhKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbik7CiAgICAgfQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtNDg0
LDEwICs0NTcsNyBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2Vi
S2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBoYQogICAgIGludCB3aW5kb3dzVmly
dHVhbEtleUNvZGUgICAgICAgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKICAg
ICBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUgICAgICAgID0gW2V2ZW50IGtleUNvZGVdOwogICAg
IGludCBtYWNDaGFyQ29kZSAgICAgICAgICAgICAgICAgPSBXS0dldE5TRXZlbnRLZXlDaGFyKGV2
ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBib29sIGF1dG9S
ZXBlYXQgICAgICAgICAgICAgICAgID0gKFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkg
JiYgW2V2ZW50IGlzQVJlcGVhdF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
Ym9vbCBhdXRvUmVwZWF0ICAgICAgICAgICAgICAgICA9IFtldmVudCB0eXBlXSAhPSBOU0V2ZW50
VHlwZUZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKICAgICBib29sIGlzS2V5cGFk
ICAgICAgICAgICAgICAgICAgID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5
c3RlbUtleSAgICAgICAgICAgICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZh
bHNlIG9uIHRoZSBNYWMuCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1v
ZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQppbmRleCAzMmU2MzljNGQ5MTlhZDE2ZTlhOTQ4MmI5MzVjZWYwNDYz
NzcxZmJhLi43NjNkOTA2MDU3NTk5M2Q4Y2IwNzNjNmFhNGUwOTVjMGRiYjRhODNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC05Myw2ICs5
Myw3IEBACiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHN5cy9z
dGF0Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9tYWMv
QXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJWaWV3SW1wbEluY2x1ZGVzLmg+
CkBAIC02MjAsMTEgKzYyMSw4IEBAIGJvb2wgV2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9u
ZGVyKCkKICAgICBpZiAoZGlyZWN0aW9uICE9IE5TRGlyZWN0U2VsZWN0aW9uKSB7CiAgICAgICAg
IE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVudF07CiAgICAgICAgIE5TRXZlbnQg
KmtleWJvYXJkRXZlbnQgPSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9
PSBOU0tleVVwKQorICAgICAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93
biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlVcCkKICAgICAgICAgICAgIGtleWJv
YXJkRXZlbnQgPSBldmVudDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAg
bV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4dCwga2V5
Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCwg
ZmFsc2UsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsgfSk7
CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtODQ4LDEwICs4NDYsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjp1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKQogICAgICAgICByZXR1cm47
CiAKICAgICBOU1dpbmRvdyAqd2luZG93ID0gbV92aWV3LndpbmRvdzsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoKHdpbmRvdy5zdHlsZU1hc2sgJiBOU0Z1bGxT
aXplQ29udGVudFZpZXdXaW5kb3dNYXNrKSAmJiAhd2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5z
cGFyZW50ICYmICFbbV92aWV3IGVuY2xvc2luZ1Njcm9sbFZpZXddKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgaWYgKCh3aW5kb3cuc3R5bGVNYXNrICYgTlNXaW5kb3dTdHls
ZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3KSAmJiAhd2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5z
cGFyZW50ICYmICFbbV92aWV3IGVuY2xvc2luZ1Njcm9sbFZpZXddKSB7CiAgICAgICAgIE5TUmVj
dCBjb250ZW50TGF5b3V0UmVjdCA9IFttX3ZpZXcgY29udmVydFJlY3Q6d2luZG93LmNvbnRlbnRM
YXlvdXRSZWN0IGZyb21WaWV3Om5pbF07CiAgICAgICAgIENHRmxvYXQgbmV3VG9wQ29udGVudElu
c2V0ID0gTlNNYXhZKGNvbnRlbnRMYXlvdXRSZWN0KSAtIE5TSGVpZ2h0KGNvbnRlbnRMYXlvdXRS
ZWN0KTsKICAgICAgICAgaWYgKG1fdG9wQ29udGVudEluc2V0ICE9IG5ld1RvcENvbnRlbnRJbnNl
dCkKQEAgLTEyMjgsMTAgKzEyMjMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRv
V2luZG93KCkKIAogICAgICAgICBpZiAoIW1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7CiAg
ICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1v
bml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNG
bGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6W3dlYWtUaGlzXSAoTlNFdmVudCAqZmxhZ3NDaGFuZ2Vk
RXZlbnQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIG1fZmxh
Z3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRz
TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6W3dlYWtUaGlzXSAo
TlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKICAgICAgICAgICAgICAgICBpZiAod2Vha1Ro
aXMpCiAgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5wb3N0RmFrZU1vdXNlTW92ZWRFdmVu
dEZvckZsYWdzQ2hhbmdlZEV2ZW50KGZsYWdzQ2hhbmdlZEV2ZW50KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CkBAIC0xMzAyLDEyICsxMjk0LDkgQEAgTlNWaWV3
ICpXZWJWaWV3SW1wbDo6aGl0VGVzdChDR1BvaW50IHBvaW50KQogCiB2b2lkIFdlYlZpZXdJbXBs
Ojpwb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50KE5TRXZlbnQgKmZs
YWdzQ2hhbmdlZEV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01v
dXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25P
dXRzaWRlT2ZFdmVudFN0cmVhbQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFu
Z2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQogICAgICAg
ICBtb2RpZmllckZsYWdzOmZsYWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1w
OmZsYWdzQ2hhbmdlZEV2ZW50LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2VkRXZl
bnQud2luZG93TnVtYmVyCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVudE51bWJlcjowIGNs
aWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAg
ICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGZha2VFdmVudCwgbV9sYXN0UHJlc3N1cmVF
dmVudC5nZXQoKSwgbV92aWV3KTsKICAgICBtX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZl
bnQpOwogfQpAQCAtMTY1NiwxMCArMTY0NSw3IEBAIE5TVmlldyAqV2ViVmlld0ltcGw6OmZ1bGxT
Y3JlZW5QbGFjZWhvbGRlclZpZXcoKQogTlNXaW5kb3cgKldlYlZpZXdJbXBsOjpjcmVhdGVGdWxs
U2NyZWVuV2luZG93KCkKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIFtbW1dlYkNvcmVGdWxsU2NyZWVu
V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4gbWFpblNjcmVlbl0g
ZnJhbWVdIHN0eWxlTWFzazooTlNCb3JkZXJsZXNzV2luZG93TWFzayB8IE5TUmVzaXphYmxlV2lu
ZG93TWFzaykgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSBhdXRvcmVs
ZWFzZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIFtbW1dlYkNv
cmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4g
bWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazooTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNz
IHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUpIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZm
ZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVhc2VdOwogI2Vsc2UKICAgICByZXR1cm4gbmlsOwogI2Vu
ZGlmCkBAIC0yNjMxLDkgKzI2MTcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZW1vdmVUcmFja2lu
Z1JlY3RzKE5TVHJhY2tpbmdSZWN0VGFnICp0YWdzLCBpbnQgY291bnQpCiB2b2lkIFdlYlZpZXdJ
bXBsOjpzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCkKIHsKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMg
ZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVu
dCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFeGl0ZWQKKyAgICBOU0V2ZW50ICpmYWtl
RXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VF
eGl0ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yNjQyLDE2ICsyNjI2LDEzIEBAIHZv
aWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFeGl0ZWQoKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVD
VF9UQUcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVz
ZXJEYXRhOm1fdHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAogICAgIFttX3RyYWNraW5nUmVjdE93bmVyIG1vdXNlRXhpdGVkOmZha2VFdmVudF07CiB9
CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFbnRlcmVkKCkKIHsKICAgICAv
LyBOb3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2Vy
RGF0YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpm
YWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFbnRlcmVk
CisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTI2
NjAsNyArMjY0MSw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFbnRlcmVk
KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVt
YmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNraW5n
TnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1c2VyRGF0YTptX3RyYWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbbV90cmFja2luZ1JlY3RPd25lciBtb3VzZUVu
dGVyZWQ6ZmFrZUV2ZW50XTsKIH0KIApAQCAtMjgxNiwxMCArMjc5Niw3IEBAIHN0YXRpYyBXZWJD
b3JlOjpEcmFnQXBwbGljYXRpb25GbGFncyBhcHBsaWNhdGlvbkZsYWdzRm9yRHJhZyhOU1ZpZXcg
KnZpZXcsIGlkIDxOCiAgICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkhh
c0F0dGFjaGVkU2hlZXQ7CiAgICAgaWYgKGRyYWdnaW5nSW5mby5kcmFnZ2luZ1NvdXJjZSA9PSB2
aWV3KQogICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW05TQXBwIGN1cnJl
bnRFdmVudF0ubW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW05TQXBwIGN1cnJlbnRFdmVudF0ubW9kaWZpZXJG
bGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgIGZsYWdzIHw9IFdlYkNv
cmU6OkRyYWdBcHBsaWNhdGlvbklzQ29weUtleURvd247CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzPihmbGFncyk7CiAKQEAgLTMzNTksMTAgKzMz
MzYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzbWFydE1hZ25pZnlXaXRoRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldExhc3RNb3VzZURvd25FdmVudChOU0V2ZW50
ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NF
UlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUg
PT0gTlNSaWdodE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TT3RoZXJNb3VzZURvd24pOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQu
dHlwZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVPdGhlck1vdXNl
RG93bik7CiAKICAgICBpZiAoZXZlbnQgPT0gbV9sYXN0TW91c2VEb3duRXZlbnQuZ2V0KCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTMzOTksMTEgKzMzNzMsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpk
aWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpkb25lV2l0aEtl
eUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5
RG93bikKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAg
ICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgaWYgKHRyeVBv
c3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24oZXZlbnQpKQogICAgICAgICBy
ZXR1cm47CkBAIC0zNDc5LDExICszNDUwLDggQEAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZD4gV2ViVmlld0ltcGw6OmNvbGxlY3RLZXlib2FyZExheW91dENvbW1hbmRzRm9yRXYKIHsK
ICAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBjb21tYW5kczsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNL
ZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAg
ICAgICByZXR1cm4gY29tbWFuZHM7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAg
ICBBU1NFUlQoIW1fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kcyk7CiAgICAgbV9jb2xsZWN0ZWRL
ZXlwcmVzc0NvbW1hbmRzID0gJmNvbW1hbmRzOwpAQCAtMzg1OCwxMSArMzgyNiw4IEBAIGJvb2wg
V2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIC8v
IFdlIGdldCBFc2Mga2V5IGhlcmUgYWZ0ZXIgcHJvY2Vzc2luZyBlaXRoZXIgRXNjIG9yIENtZCtw
ZXJpb2QuIFRoZSBmb3JtZXIgc3RhcnRzIGFzIGEga2V5RG93biwgYW5kIHRoZSBsYXR0ZXIgc3Rh
cnRzIGFzIGEga2V5IGVxdWl2YWxlbnQsCiAgICAgLy8gYnV0IGJvdGggZ2V0IHRyYW5zZm9ybWVk
IHRvIGEgY2FuY2VsT3BlcmF0aW9uOiBjb21tYW5kLCBleGVjdXRpbmcgd2hpY2ggcGFzc2VzIGFu
IEVzYyBrZXkgZXZlbnQgdG8gLXBlcmZvcm1LZXlFcXVpdmFsZW50Oi4KICAgICAvLyBEb24ndCBp
bnRlcnByZXQgdGhpcyBldmVudCBhZ2FpbiwgYXZvaWRpbmcgcmUtZW50cmFuY3kgYW5kIGluZmlu
aXRlIGxvb3BzLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChb
W2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUi
XSAmJiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmll
ckZsYWdzTWFzaykpCisgICAgaWYgKFtbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJz
XSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNF
dmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrKSkKICAgICAgICAgcmV0
dXJuIFttX3ZpZXcgX3dlYl9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIGlmIChtX2tleURvd25FdmVudEJlaW5nUmVz
ZW50KSB7CiAgICAgICAgIC8vIFdlYkNvcmUgaGFzIGFscmVhZHkgc2VlbiB0aGUgZXZlbnQsIG5v
IG5lZWQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KaW5k
ZXggZjA3ZDI3OWQ2MzdkMzBmOGY1MDUzMTdkOGYwOTYwNTU3YTExZDJkMi4uOGYzN2Q0MjYxNTJi
NjE3ZDU1YzkxNDg4MTUxMTRmOGMzMzllN2M1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1t
CkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5oPgogI2ltcG9ydCA8bWFj
aC1vL2R5bGQuaD4KICNpbXBvcnQgPHNwYXduLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENv
bXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogQGludGVyZmFjZSBXS1BsYWNlaG9sZGVyTW9kYWxXaW5kb3cgOiBOU1dpbmRvdyAKQEAgLTIz
MSwxMCArMjMyLDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmJlZ2luTW9kYWwoKQogICAg
IEFTU0VSVCghbV9wbGFjZWhvbGRlcldpbmRvdyk7CiAgICAgQVNTRVJUKCFtX2FjdGl2YXRpb25P
YnNlcnZlcik7CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
bV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0TlMoW1tXS1BsYWNlaG9sZGVyTW9kYWxXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1h
c2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6WUVTXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgbV9wbGFjZWhv
bGRlcldpbmRvdyA9IGFkb3B0TlMoW1tXS1BsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGlu
aXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5k
b3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZl
cjpZRVNdKTsKICAgICBbbV9wbGFjZWhvbGRlcldpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6
Tk9dOwogICAgIAogICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxC
ZWNvbWVBY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1t
CmluZGV4IGE0ODM5NjRkOGYxZjIyNmQ0YWVjYzI3Y2NiMGYwNzYwNzFiN2JiZDEuLmJiNWFkN2My
MWU4MTBjYTM2NTY1ZWNjNzc3ZDA2YWYzMWJiMDI4NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTQ4LDYg
KzQ4LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTlNTaGFyaW5nU2VydmljZVNQSS5oPgogI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQ2MywxMCArNDY0LDcgQEAgdm9pZCBXZWJDb250
ZXh0TWVudVByb3h5TWFjOjpzaG93Q29udGV4dE1lbnVXaXRoSXRlbXMoY29uc3QgVmVjdG9yPFdl
YkNvbnRleHRNZW4KICAgICBbW1dLTWVudVRhcmdldCBzaGFyZWRNZW51VGFyZ2V0XSBzZXRNZW51
UHJveHk6dGhpc107CiAKICAgICBOU1BvaW50IG1lbnVMb2NhdGlvbiA9IFttX3dlYlZpZXcgY29u
dmVydFBvaW50Om1fY29udGV4dC5tZW51TG9jYXRpb24oKSB0b1ZpZXc6bmlsXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VVcCBsb2NhdGlvbjptZW51TG9jYXRpb24g
bW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjptX3dlYlZpZXcud2luZG93
LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcCBs
b2NhdGlvbjptZW51TG9jYXRpb24gbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051
bWJlcjptX3dlYlZpZXcud2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJl
cjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBbTlNNZW51IHBvcFVwQ29udGV4dE1l
bnU6bV9tZW51LmdldCgpIHdpdGhFdmVudDpldmVudCBmb3JWaWV3Om1fd2ViVmlld107CiAKICAg
ICBpZiAobV9jb250ZXh0TWVudUxpc3RlbmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCAwYTc5OTEzNDZkMTVj
Y2ZhYzc3NDM1ZWYzMGVmOGRmODIyYWZhZTIzLi5mMDZiNTg0MmFjZDUzNGRmZTI0MTBmZWNhOWEx
YWRmYjZlYTk3Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
Ykluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViSW5zcGVjdG9yUHJveHlNYWMubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2Nh
bGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L0Jhc2U2NC5oPgogCiBTT0ZUX0xJTktfU1RBR0VEX0ZSQU1FV09SSyhXZWJJbnNwZWN0
b3JVSSwgUHJpdmF0ZUZyYW1ld29ya3MsIEEpCkBAIC00OCwxMCArNDksNyBAQCBTT0ZUX0xJTktf
U1RBR0VEX0ZSQU1FV09SSyhXZWJJbnNwZWN0b3JVSSwgUHJpdmF0ZUZyYW1ld29ya3MsIEEpCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLXN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHdp
bmRvd1N0eWxlTWFzayA9IE5TVGl0bGVkV2luZG93TWFzayB8IE5TQ2xvc2FibGVXaW5kb3dNYXNr
IHwgTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2sgfCBO
U0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorc3RhdGljIGNvbnN0IE5TVUludGVnZXIgd2luZG93U3R5bGVNYXNrID0gTlNXaW5kb3dT
dHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHls
ZU1hc2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5k
b3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogCiAvLyBUaGUgdGltZSB3ZSBrZWVwIG91
ciBXZWJWaWV3IGFsaXZlIGJlZm9yZSBjbG9zaW5nIGl0IGFuZCBpdHMgcHJvY2Vzcy4KIC8vIFJl
dXNpbmcgdGhlIFdlYlZpZXcgaW1wcm92ZXMgc3RhcnQgdXAgdGltZSBmb3IgcGVvcGxlIHRoYXQg
anVtcCBpbiBhbmQgb3V0IG9mIHRoZSBJbnNwZWN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQppbmRleCBkMjlkMDg5MDUy
Yzg4N2FmYjg2NDIzODQ1NWFhMTg4NGI0ZGQ0NjVjLi5jMjI5ZmJkMGI4YmViYmFmMTE1YzM1M2U4
M2M3ZTA4NDY1MDYwMzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIlN0
cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiV2ViUG9wdXBJdGVtLmgiCiAjaW1wb3J0IDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNzQsMTkg
Kzc1LDEzIEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnBvcHVsYXRlKGNvbnN0IFZlY3Rv
cjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgTlNGb250ICpmCiAgICAgICAgICAgICBSZXRhaW5QdHI8
TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+IHBhcmFncmFwaFN0eWxlID0gYWRvcHROUyhbW05TUGFy
YWdyYXBoU3R5bGUgZGVmYXVsdFBhcmFncmFwaFN0eWxlXSBtdXRhYmxlQ29weV0pOwogICAgICAg
ICAgICAgTlNXcml0aW5nRGlyZWN0aW9uIHdyaXRpbmdEaXJlY3Rpb24gPSBpdGVtc1tpXS5tX3Rl
eHREaXJlY3Rpb24gPT0gTFRSID8gTlNXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1dy
aXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBz
ZXRCYXNlV3JpdGluZ0RpcmVjdGlvbjp3cml0aW5nRGlyZWN0aW9uXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGln
bm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5T
UmlnaHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0g
TFRSID8gTlNUZXh0QWxpZ25tZW50TGVmdCA6IE5TVGV4dEFsaWdubWVudFJpZ2h0XTsKICAgICAg
ICAgICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiBhdHRyaWJ1dGVzID0gYWRvcHRO
UyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoT2JqZWN0c0FuZEtleXM6CiAg
ICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGUuZ2V0KCksIE5TUGFyYWdyYXBoU3R5bGVBdHRy
aWJ1dGVOYW1lLAogICAgICAgICAgICAgICAgIGZvbnQsIE5TRm9udEF0dHJpYnV0ZU5hbWUsCiAg
ICAgICAgICAgICBuaWxdKTsKICAgICAgICAgICAgIGlmIChpdGVtc1tpXS5tX2hhc1RleHREaXJl
Y3Rpb25PdmVycmlkZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgICAgIFJldGFpblB0cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0g
YWRvcHROUyhbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlv
biArIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU051bWJlcj4gd3JpdGluZ0Rp
cmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6
d3JpdGluZ0RpcmVjdGlvbiArIE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7CiAgICAgICAg
ICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IHdyaXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0
TlMoW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVl
LmdldCgpLCBuaWxdKTsKICAgICAgICAgICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmplY3Q6d3Jp
dGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpOU1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1
dGVOYW1lXTsKICAgICAgICAgICAgIH0KQEAgLTE1NCwxOCArMTQ5LDE1IEBAIHZvaWQgV2ViUG9w
dXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERp
cmVjdGlvbiB0ZXh0CiAKICAgICBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplOwogICAgIHN3aXRj
aCAoZGF0YS5tZW51U2l6ZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgIGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw6Ci0g
ICAgICAgIGNvbnRyb2xTaXplID0gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRy
b2xTaXplID0gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
V2ViQ29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDoKLSAgICAgICAgY29u
dHJvbFNpemUgPSBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlND
b250cm9sU2l6ZVNtYWxsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlBvcHVw
TWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaToKLSAgICAgICAgY29udHJvbFNpemUgPSBOU01p
bmlDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplTWluaTsK
ICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAg
ICAgUmVmPFdlYlBvcHVwTWVudVByb3h5TWFjPiBwcm90ZWN0KCp0aGlzKTsKQEAgLTE4MywxMyAr
MTc1LDExIEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3Qg
SW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgaWYgKCFtX2NsaWVudC0+Y3Vy
cmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIE5TRXZlbnQqIGluaXRpYXRp
bmdOU0V2ZW50ID0gbV9jbGllbnQtPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCkt
Pm5hdGl2ZUV2ZW50KCk7Ci0gICAgaWYgKFtpbml0aWF0aW5nTlNFdmVudCB0eXBlXSAhPSBOU0xl
ZnRNb3VzZURvd24pCisgICAgaWYgKFtpbml0aWF0aW5nTlNFdmVudCB0eXBlXSAhPSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd24pCiAgICAgICAgIHJldHVybjsKIAotICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TGVmdE1vdXNlVXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9jYXRpb246W2luaXRpYXRpbmdOU0V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nTlNF
dmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ05TRXZlbnQgdGltZXN0YW1wXQpAQCAtMTk4LDEz
ICsxODgsMTQgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25z
dCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6W2luaXRpYXRpbmdOU0V2ZW50IGV2ZW50
TnVtYmVyXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tD
b3VudDpbaW5pdGlhdGluZ05TRXZlbnQgY2xpY2tDb3VudF0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2luaXRpYXRpbmdOU0V2ZW50IHByZXNz
dXJlXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBbTlNBcHAgcG9zdEV2
ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107CisgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW21fd2ViVmlldyB3aW5kb3ddCiAjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2NhdGlvbjpbW21fd2ViVmlldyB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05T
RXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0U2Ny
ZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5p
dGlhdGluZ05TRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W2luaXRpYXRpbmdOU0V2ZW50IHdp
bmRvd051bWJlcl0KQEAgLTIxMiw3ICsyMDMsNiBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFj
OjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGlja0NvdW50OjAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQ
REZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJl
Y2F0ZWRQREZQbHVnaW4ubW0KaW5kZXggNWVkZTU2ZWVlNDBhY2ZkYjk5MDExOWRlN2FjZTkxOGU2
NzhiYzY2Ni4uMTI1MThkZjMzNGNmM2ZkZDY1OGRmODkxOWMzMzYxYjA4NDJlMmRhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERG
UGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVw
cmVjYXRlZFBERlBsdWdpbi5tbQpAQCAtODAsNiArODAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9X
aGVlbEV2ZW50VGVzdFRyaWdnZXIuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENv
bXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTEyNzgsMzMgKzEyNzksMjggQEAgdm9pZCBQREZQbHVnaW46OmRpZEV2YWx1YXRlSmF2YVNj
cmlwdCh1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJpbmcmKQogICAgIAogc3RhdGljIE5TVUludGVn
ZXIgbW9kaWZpZXJGbGFnc0Zyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIChldmVudC5zaGlm
dEtleSgpID8gTlNTaGlmdEtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5jb250cm9sS2V5
KCkgPyBOU0NvbnRyb2xLZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQuYWx0S2V5KCkgPyBO
U0FsdGVybmF0ZUtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0Nv
bW1hbmRLZXlNYXNrIDogMCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0
dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IDogMCkKKyAg
ICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wg
OiAwKQorICAgICAgICB8IChldmVudC5hbHRLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24gOiAwKQorICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFn
Q29tbWFuZCA6IDApOwogfQogICAgIAogc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2
ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHlwZSkKIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUo
KSkgewogICAgIGNhc2UgV2ViRXZlbnQ6OktleURvd246Ci0gICAgICAgIGV2ZW50VHlwZSA9IE5T
S2V5RG93bjsKKyAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlEb3duOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIFdlYkV2ZW50OjpLZXlVcDoKLSAgICAgICAgZXZlbnRU
eXBlID0gTlNLZXlVcDsKKyAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlVcDsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VEb3duOgogICAgICAg
ICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9u
KCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAg
ICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEb3duOworICAgICAgICAgICAgZXZlbnRUeXBlID0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5
cGUgPSBOU1JpZ2h0TW91c2VEb3duOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5
cGVSaWdodE1vdXNlRG93bjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMxMiwxMCArMTMwOCwxMCBAQCBz
dGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50
LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlVXA6CiAgICAg
ICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0
b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAg
ICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZVVwOworICAgICAgICAgICAgZXZlbnRUeXBlID0g
TlNFdmVudFR5cGVMZWZ0TW91c2VVcDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBl
ID0gTlNSaWdodE1vdXNlVXA7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJp
Z2h0TW91c2VVcDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMyMywxMyArMTMxOSwxMyBAQCBzdGF0aWMg
Ym9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2
ZW50VHlwZSYgZXZlbnRUeQogICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlTW92ZToKICAgICAgICAg
c3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigp
KSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAg
IGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRHJhZ2dlZDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAgICAgZXZl
bnRUeXBlID0gTlNSaWdodE1vdXNlRHJhZ2dlZDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5T
RXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlw
ZSA9IE5TTW91c2VNb3ZlZDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTW91
c2VNb3ZlZDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMzNyw3ICsxMzMzLDYgQEAgc3RhdGljIGJvb2wg
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5
cGUmIGV2ZW50VHkKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogICAgIAogTlNFdmVudCAqUERGUGx1Z2lu
Ojpuc0V2ZW50Rm9yV2ViTW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
VGV4dEFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCmluZGV4IDZjNjBiZGRlOTVmZGQzMTdmNmI3MTRl
MWY0NGY2ZWViMmYzM2QzMGIuLjYwMzFjNTkwZGMyMzFlY2NmZWVhMjBhMDQ3Zjg1Njk2Y2E1ZDhh
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luVGV4dEFubm90YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQpAQCAtNDQsNiArNDQsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEFyZWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC01MywyMSArNTQsMTggQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAogc3RhdGljIGNvbnN0IFN0cmluZyBjc3NBbGlnbm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdu
bWVudChOU1RleHRBbGlnbm1lbnQgYWxpZ25tZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7Ci0gICAgY2FzZSBOU0xlZnRU
ZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50TGVmdDoKICAgICAgICAgcmV0
dXJuICJsZWZ0IjsKLSAgICBjYXNlIE5TUmlnaHRUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNU
ZXh0QWxpZ25tZW50UmlnaHQ6CiAgICAgICAgIHJldHVybiAicmlnaHQiOwotICAgIGNhc2UgTlND
ZW50ZXJUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50Q2VudGVyOgogICAg
ICAgICByZXR1cm4gImNlbnRlciI7Ci0gICAgY2FzZSBOU0p1c3RpZmllZFRleHRBbGlnbm1lbnQ6
CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZpZWQ6CiAgICAgICAgIHJldHVybiAianVz
dGlmeSI7Ci0gICAgY2FzZSBOU05hdHVyYWxUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0
QWxpZ25tZW50TmF0dXJhbDoKICAgICAgICAgcmV0dXJuICItd2Via2l0LXN0YXJ0IjsKICAgICB9
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0K
aW5kZXggYTM2ZjNiMzIzYWI5MTY1MTQ3N2JkM2M3YmUyOGM2YTIzZGU5YjE3ZC4uNjI2ZTQzNmM2
YWM0ZmU2YjlhN2ViNTNjMmQzNTZiZjc5NmZmNDQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xp
ZW50TWFjLm1tCkBAIC00Niw2ICs0Niw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1N0cmluZ1RydW5j
YXRvci5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYv
U3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNs
YXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwpAQCAtNjMsMTAgKzY0LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0
bWFwPiBjb252ZXJ0SW1hZ2VUb0JpdG1hcChOU0ltYWdlICppbWFnZSwgY29uc3QgSW4KICAgICBS
ZXRhaW5QdHI8TlNHcmFwaGljc0NvbnRleHQ+IHNhdmVkQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29u
dGV4dCBjdXJyZW50Q29udGV4dF07CiAKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVu
dENvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1Bv
cnQ6Z3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOllFU11dOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5T
TWFrZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFwLT5zaXplKCkuaGVp
Z2h0KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3Zl
ciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwg
Yml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFwLT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0
Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZy
YWN0aW9uOjEgcmVzcGVjdEZsaXBwZWQ6WUVTIGhpbnRzOm5pbF07CiAKICAgICBbTlNHcmFwaGlj
c0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6c2F2ZWRDb250ZXh0LmdldCgpXTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294121</attachid>
            <date>2016-11-07 19:22:42 -0800</date>
            <delta_ts>2016-11-07 19:26:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107191834.patch</filename>
            <type>text/plain</type>
            <size>163195</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBL
aXRTdHVicy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVi
cy5oCmluZGV4IDExNjYxODkwMjY0YjU3Nzk5OTNiZDM3YWVjMzU0M2JhMTMwZDE0MDQuLjQyOGQ2
OTM4NjVhZDViN2QyM2VjNmI4YTJhNjk2ZDU5ODUxZjE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLQXBwS2l0U3R1YnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS0FwcEtpdFN0dWJzLmgKQEAgLTE1NCwxNSArMTU0LDE1
IEBAIHR5cGVkZWYgTlNVSW50ZWdlciBOU1JlY3RFZGdlOwogCiAvKiBEZXZpY2UtaW5kZXBlbmRl
bnQgYml0cyBmb3VuZCBpbiBldmVudCBtb2RpZmllciBmbGFncyAqLwogZW51bSB7Ci0gICAgTlNB
bHBoYVNoaWZ0S2V5TWFzayA9IDEgPDwgMTYsCi0gICAgTlNTaGlmdEtleU1hc2sgPSAgICAgIDEg
PDwgMTcsCi0gICAgTlNDb250cm9sS2V5TWFzayA9ICAgIDEgPDwgMTgsCi0gICAgTlNBbHRlcm5h
dGVLZXlNYXNrID0gIDEgPDwgMTksCi0gICAgTlNDb21tYW5kS2V5TWFzayA9ICAgIDEgPDwgMjAs
Ci0gICAgTlNOdW1lcmljUGFkS2V5TWFzayA9IDEgPDwgMjEsCi0gICAgTlNIZWxwS2V5TWFzayA9
ICAgICAgIDEgPDwgMjIsCi0gICAgTlNGdW5jdGlvbktleU1hc2sgPSAgIDEgPDwgMjMsCi0gICAg
TlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKKyAgICBO
U0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2sgPSAxIDw8IDE2LAorICAgIE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdCA9IDEgPDwgMTcsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSAx
IDw8IDE4LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gPSAxIDw8IDE5LAorICAgIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kID0gMSA8PCAyMCwKKyAgICBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZCA9IDEgPDwgMjEsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgPSAx
IDw8IDIyLAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbiA9IDEgPDwgMjMsCisgICAg
TlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrID0gMHhmZmZmMDAw
MFUKIH07CiAKIHR5cGVkZWYgZW51bSBfV0tXcml0aW5nRGlyZWN0aW9uIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5
YzBiZDBmNjY5ZWIyNTRkMGMuLjcyOGQzNDRhOTQ1MDM0YjljN2EyMDg1ZjQ1NjNkYzFiYjY5NjRl
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtMjksNiAr
MjksNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50
ZXJmYWNlIFdlYkNvcmVDdXJzb3JCdW5kbGUgOiBOU09iamVjdCB7IH0KIEBlbmQKQEAgLTY0LDEw
ICs2NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJ
bWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTCiAgICAgICAgIE5TUmVjdCBmcm9tUmVj
dCA9IE5TTWFrZVJlY3QoMCwgMCwgaW1hZ2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CiAK
ICAgICAgICAgW2V4cGFuZGVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJl
Y3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVj
dDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRp
b25Tb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwogICAgICAgICBbZXhwYW5kZWRJbWFnZSB1bmxvY2tG
b2N1c107CiAKICAgICAgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0N1cnNvciBhbGxvY10gaW5pdFdp
dGhJbWFnZTpleHBhbmRlZEltYWdlLmdldCgpIGhvdFNwb3Q6aG90U3BvdF0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggNjgyNDZiZWZhNTIzZWRm
ZjNiNjA1YzYwMTE4NzE5ZDQ3Mjk4ZDA5Yi4uMGZmNDIwMjAwY2M4YmQzNDg3ZTQ1NmY3NzkwZWRl
ZTk1ZThmNTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIKICNpbXBv
cnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzUsMTAgKzc2LDcgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZl
RHJhZ0ltYWdlVG9GcmFjdGlvbihSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGZsb2F0IGQKICAg
ICBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVkSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBh
bGxvY10gaW5pdFdpdGhTaXplOltpbWFnZS5nZXQoKSBzaXplXV0pOwogICAgIAogICAgIFtkaXNz
b2x2ZWRJbWFnZS5nZXQoKSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIFtpbWFnZS5nZXQoKSBkcmF3QXRQb2ludDpOU1plcm9Qb2ludCBmcm9tUmVj
dDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXplXS53aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdo
dCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weSBmcmFjdGlvbjpkZWx0YV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5TWmVyb1Bv
aW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ug
c2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvbkNvcHkgZnJhY3Rp
b246ZGVsdGFdOwogICAgIFtkaXNzb2x2ZWRJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICByZXR1cm4gZGlzc29sdmVkSW1hZ2U7CkBAIC0xMTksMTAgKzExNyw4IEBAIFJldGFpblB0cjxO
U0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpCiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgc2V0VHJhbnNm
b3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QqKSZ0cmFuc2Zvcm1dOwogICAgICAg
ICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIGNvbmNhdF07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkg
ZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlv
bjoxLjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW2ltYWdl
LT5zbmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJl
Y3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3Np
dGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKKwogICAgICAgICAgICAgW3Jv
dGF0ZWREcmFnSW1hZ2UuZ2V0KCkgdW5sb2NrRm9jdXNdOwogCiAgICAgICAgICAgICByZXR1cm4g
cm90YXRlZERyYWdJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9FdmVudExvb3BNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29w
TWFjLm1tCmluZGV4IGFmMGEzOTkyYjY2ZTlkNmZmYzAxNzcxMjQ4NTc2MjZhMDA1YTVlOTAuLmI5
Y2M1NDVhOTg0OTM0ZDU0NjBkZGJkZjViZDRlYzNlYTcxNTkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQpAQCAtMjUsMTYgKzI1LDE0IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlIDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQogewogICAgIFtOU0FwcCBzZXRXaW5kb3dz
TmVlZFVwZGF0ZTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0FueUV2ZW50
TWFzayB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjAuMDVd
IGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU11dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1h
dGNoaW5nTWFzazpOU0V2ZW50TWFza0FueSB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJ
bnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVl
OllFU11dOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGE1ZGYzNDc0YzMxMWM2YTc1NjFkN2Y0
ZDQ0NTUzMTRhYTA0ZDAwNzAuLjFjNGUzYzE5ODAzMWNmZmE2ZmE5YjY2NTI3MWFiZmE0NzMyZDc2
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBA
IC01NSw2ICs1NSw3IEBACiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2ltcG9ydCA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIApAQCAt
NjUzLDExICs2NTQsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBsb2NhdGlvbikKICAgICAvLyBIYWNrOiBXZSBtdXN0
IHBvc3QgYW4gZXZlbnQgdG8gd2FrZSB1cCB0aGUgTlNEcmFnTWFuYWdlciwgd2hpY2ggaXMgc2l0
dGluZyBpbiBhIG5leHRFdmVudCBjYWxsCiAgICAgLy8gdXAgdGhlIHN0YWNrIGZyb20gdXMgYmVj
YXVzZSB0aGUgQ29yZUZvdW5kYXRpb24gZHJhZyBtYW5hZ2VyIGRvZXMgbm90IHVzZSB0aGUgcnVu
IGxvb3AgYnkgaXRzZWxmLgogICAgIC8vIFRoaXMgaXMgdGhlIG1vc3QgaW5ub2N1b3VzIGV2ZW50
IHRvIHVzZSwgcGVyIEtyaXN0ZW4gRm9yc3Rlci4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU01vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9pbnQKKyAgICBOU0V2ZW50KiBldmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRp
b246TlNaZXJvUG9pbnQKICAgICAgICAgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRv
d051bWJlcjowIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6
ZXZlbnQgYXRTdGFydDpZRVNdOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggZDM0ZDZlYWU5
NDhmN2FmY2JhYjMzMDMxNGZkY2JhNzhlOWU0MDBiOC4uMGQyZTMxOGVjZGZiMTMwNDIzODc3YTcz
MmQ4MmY4NjkxOTc2OTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNTIsMjcgKzUyLDI0IEBAIHN0YXRp
YyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQ
cmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3Vz
ZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2lu
ZG93XSwgW2V2ZW50IHdpbmRvd10pOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIHsgMCwgMCB9OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKKyAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtl
dmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiB7IDAsIDAgfTsKICAgICB9CiB9CiAKQEAgLTgwLDMzICs3NywzMCBAQCBz
dGF0aWMgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5k
b3dWaWV3KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQ
NjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJl
OgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNh
c2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgot
ICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNTY3JvbGxXaGVlbDogewotICAg
ICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9t
IGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgotICAgICAg
ICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5
IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93LgotICAgICAgICAgICAgTlNQb2lu
dCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKLSAgICAgICAgICAgIGlmICh3
aW5kb3dWaWV3KQotICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW3dpbmRvd1ZpZXcgY29udmVy
dFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9p
bnQobG9jYXRpb24pOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQoKTsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hl
ZWw6IHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUg
Ym90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgor
ICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQg
YnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCisgICAgICAgIE5TUG9pbnQg
bG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIGlmICh3aW5kb3dW
aWV3KQorICAgICAgICAgICAgbG9jYXRpb24gPSBbd2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9j
YXRpb24gZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgcmV0dXJuIEludFBvaW50KGxvY2F0aW9uKTsK
KyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CiAgICAgfQog
fQogCkBAIC0xMTQsNzIgKzEwOCw2MyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91c2VCdXR0b25G
b3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewog
I2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJl
dHVybiBMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIE5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIExlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gUmlnaHRC
dXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBOb0J1dHRvbjsKICAgICB9CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBl
IG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6
Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92
ZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJl
dHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2Vk
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3Nl
ZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKIHN0YXRp
YyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNs
aWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVy
biBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogfQogCkBAIC00OTcsMjggKzQ4MiwyOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktl
eUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVGbGFnc0NoYW5nZWQpIHsKICAgICAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsK
LSAgICAgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgICAgIGNhc2Ug
NTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2siKTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgICAgIGNhc2Ug
NjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0g
ICAgICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgICAgICByZXR1cm4g
U3RyaW5nKCJBbHQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTk6IC8v
IExlZnQgQ3RybAotICAgICAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgNTQ6IC8v
IFJpZ2h0IENvbW1hbmQKKyAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
ICAgICByZXR1cm4gU3RyaW5nKCJNZXRhIik7CisKKyAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xv
Y2sKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7CisKKyAgICAgICAgY2Fz
ZSA1NjogLy8gTGVmdCBTaGlmdAorICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKworICAgICAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAorICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoIkFsdCIpOworCisgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgICAg
ICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDb250
cm9sIik7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgCkBAIC01MzQsNDQgKzUxOSwzOCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5T
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBl
dmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246
Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAg
ICAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
RmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TTnVtZXJpY1BhZEtleU1hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFy
Ci0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBj
YXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8g
KwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAg
ICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0
OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAg
ICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4
OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAg
ICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAg
ICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVy
CisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAx
CisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0
CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3
CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNTg1LDEwICs1NjQs
NyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAv
LyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29k
ZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlz
LiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVu
dCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NL
ZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlE
b3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9
PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXAp
KSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdF
UlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5T
U3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3Ro
XSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0p
IDogMDsKQEAgLTY0NiwzNSArNjIyLDMyIEBAIGRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3
MChOU0V2ZW50KiBldmVudCkKIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2ZW50
IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZs
YWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtl
eVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNzZXMg
Ym90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0IHJl
bGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNv
ZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2FzZSA1
NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2Fz
ZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0g
ICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNr
KSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAg
ICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0
cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9u
S2V5TWFzaykgPT0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIDU0
OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21t
YW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1No
aWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQg
QWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2
MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAg
Kzc5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9rZXkgPSBrZXlGb3JLZXlFdmVudChldmVudCk7
CiAgICAgICAgIG1fY29kZSA9IGNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIG1fYXV0b1JlcGVhdCA9
IFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50
IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwog
ICAgICAgICBtX2lzS2V5cGFkID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgICAgIG1faXNT
eXN0ZW1LZXkgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFj
LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
bW0KaW5kZXggOTFjYmVkZDBjZGEwNzA2NWIzYmYzZjE3MDE1OGYxZDYyNzczMTgzZi4uNjRkODU0
YThlODRjODYyYTkwYWJkNDU3NWNlNjNlYmVlNGQyZWUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtNDIsNiArNDIsNyBAQAog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIC8vIEZJWE1FOiBUaGVyZSBh
cmUgcmVwYWludGluZyBwcm9ibGVtcyBkdWUgdG8gQXF1YSBzY3JvbGwgYmFyIGJ1dHRvbnMnIHZp
c3VhbCBvdmVyZmxvdy4KIApAQCAtMTM5LDE4ICsxNDAsMTUgQEAgc3RhdGljIFNjcm9sbGJhckJ1
dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVF
bmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoY29udHJvbFNpemUpIHsKICAgICBj
YXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6
ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGNhc2UgU21hbGxT
Y3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIH0KIAogdm9pZCBT
Y3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggMDI0NzJjOWE2
OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4uYjEwMDQxYjVlYjE3MmY0MzcyYzQwMDU1
YjE2OTk3YzEzOTRjMjNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHN0YXRpYyBOU1JlY3QgZm9jdXNSaW5nQ2xpcFJlY3Q7CiBzdGF0aWMgQk9PTCB0aGVtZVdp
bmRvd0hhc0tleUFwcGVhcmFuY2U7CkBAIC02NywxMSArNjgsOCBAQCAtIChOU1dpbmRvdyAqKXdp
bmRvdwogewogICAgIC8vIFVzaW5nIGRlZmVyOllFUyBwcmV2ZW50cyB1cyBmcm9tIHdhc3Rpbmcg
YW55IHdpbmRvdyBzZXJ2ZXIgcmVzb3VyY2VzIGZvciB0aGlzIHdpbmRvdywgc2luY2Ugd2UncmUg
bm90IGFjdHVhbGx5CiAgICAgLy8gZ29pbmcgdG8gZHJhdyBpbnRvIGl0LiBUaGUgb3RoZXIgYXJn
dW1lbnRzIG1hdGNoIHdoYXQgeW91IGdldCB3aGVuIGNhbGxpbmcgLVtOU1dpbmRvdyBpbml0XS4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzdGF0aWMgV2ViQ29yZVRo
ZW1lV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVUaGVtZVdpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCkKLSAgICAgICAgc3R5bGVN
YXNrOk5TVGl0bGVkV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrVGl0bGVkIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpZRVNdOwogICAgIHJldHVybiB3aW5kb3c7CiB9CiAKQEAgLTE0NCwxNSArMTQyLDEyIEBA
IFRoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKIAogc3RhdGljIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAg
ICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNp
emU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICBpZiAoZm9udFNp
emUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWlu
aTsKIH0KIAogc3RhdGljIExlbmd0aFNpemUgc2l6ZUZyb21OU0NvbnRyb2xTaXplKE5TQ29udHJv
bFNpemUgbnNDb250cm9sU2l6ZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvciwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMpCkBAIC0xNzUs
MTYgKzE3MCwxMyBAQCBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbUZvbnQoY29uc3QgRm9udENh
c2NhZGUmIGZvbnQsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZAogCiBzdGF0aWMgQ29udHJvbFNp
emUgY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4m
IHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChtaW5ab29tZWRT
aXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6
ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3IpICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0
KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwot
ICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tO
U1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5a
b29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNTbWFsbENv
bnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19j
YXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tRmFjdG9y
KQorICAgICAgICAmJiBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53
aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0
aCgpICogem9vbUZhY3RvcikKKyAgICAgICAgJiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4g
TlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldENvbnRyb2xTaXplKE5TQ2Vs
bCogY2VsbCwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNp
emUmIG1pblpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpCkBAIC00ODAsMTAgKzQ3Miw3IEBA
IHN0YXRpYyB2b2lkIHNldFVwQnV0dG9uQ2VsbChOU0J1dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTCiB7CiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUg
YmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFpbnRpbmcgaW50by4KICAgICBjb25zdCBz
dGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcyA9IGJ1dHRvblNpemVzKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFy
dCB8fCB6b29tZWRTaXplLmhlaWdodCgpID4gYnV0dG9uU2l6ZXMoKVtOU1JlZ3VsYXJDb250cm9s
U2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRTaXplLmhlaWdo
dCgpID4gYnV0dG9uU2l6ZXMoKVtOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSB7CiAgICAgICAgIC8vIFVzZSB0aGUgc3F1YXJlIGJ1dHRvbgogICAgICAgICBpZiAo
W2NlbGwgYmV6ZWxTdHlsZV0gIT0gTlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZSkKICAgICAg
ICAgICAgIFtjZWxsIHNldEJlemVsU3R5bGU6TlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZV07
CkBAIC01NzksMTUgKzU2OCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAz
PiYgc3RlcHBlclNpemVzKCkKIC8vIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNzIHRoYW4gdGhl
IGNvcnJlc3BvbmRpbmcgdGV4dCBmaWVsZCBoZWlnaHQsCiBzdGF0aWMgTlNDb250cm9sU2l6ZSBz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQu
cGl4ZWxTaXplKCk7CiAgICAgaWYgKGZvbnRTaXplID49IDE4KQotICAgICAgICByZXR1cm4gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsK
ICAgICBpZiAoZm9udFNpemUgPj0gMTMpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNp
emU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBO
U0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xT
dGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqKQpAQCAtNjAwLDE1ICs1
ODYsMTIgQEAgc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGRyYXdJbmZvLnN0YXRlID0gY29u
dmVydENvbnRyb2xTdGF0ZXNUb1RoZW1lRHJhd1N0YXRlKGtUaGVtZUluY0RlY0J1dHRvbiwgc3Rh
dGVzKTsKICAgICBkcmF3SW5mby5hZG9ybm1lbnQgPSBrVGhlbWVBZG9ybm1lbnREZWZhdWx0Owog
ICAgIENvbnRyb2xTaXplIGNvbnRyb2xTaXplID0gY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKHN0
ZXBwZXJTaXplcygpLCBJbnRTaXplKHpvb21lZFJlY3Quc2l6ZSgpKSwgem9vbUZhY3Rvcik7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xTaXplID09
IE5TU21hbGxDb250cm9sU2l6ZSkKKyAgICBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6
ZVNtYWxsKQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uU21hbGw7
Ci0gICAgZWxzZSBpZiAoY29udHJvbFNpemUgPT0gTlNNaW5pQ29udHJvbFNpemUpCisgICAgZWxz
ZSBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZU1pbmkpCiAgICAgICAgIGRyYXdJbmZv
LmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b25NaW5pOwogICAgIGVsc2UKICAgICAgICAgZHJhd0lu
Zm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIAogICAgIEludFJlY3QgcmVjdCh6b29tZWRSZWN0KTsKICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CkBAIC03NDksMTIgKzczMiw5IEBAIExlbmd0
aFNpemUgVGhlbWVNYWM6Om1pbmltdW1Db250cm9sU2l6ZShDb250cm9sUGFydCBwYXJ0LCBjb25z
dCBGb250Q2FzY2FkZSYgZm9uCiAgICAgICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICAgICAgICAg
IHJldHVybiBMZW5ndGhTaXplKExlbmd0aCgwLCBGaXhlZCksIExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KDE1ICogem9vbUZhY3RvciksIEZpeGVkKSk7CiAgICAgICAgIGNhc2UgSW5uZXJTcGluQnV0
dG9uUGFydDp7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAg
ICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU01pbmlDb250cm9sU2l6ZV07CisgICAg
ICAgICAgICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU0NvbnRyb2xTaXplTWluaV07
CiAgICAgICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZShMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pihi
YXNlLndpZHRoKCkgKiB6b29tRmFjdG9yKSwgRml4ZWQpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oYmFzZS5oZWlnaHQoKSAqIHpvb21GYWN0
b3IpLCBGaXhlZCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gVGhlbWU6Om1pbmltdW1Db250cm9s
U2l6ZShwYXJ0LCBmb250LCB6b29tRmFjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KaW5kZXggZDNiOWVlOThkZjk0MjBjY2Q3MTE2YjA0MDM1NjM4M2NmYzc0NmY5
MC4uYjQ4NjA2Y2I1YTc0NGQ4NzBiODYxOTM0MzY2Mjg5OGJhOWZmNGVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxWaWRlb0Vs
ZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0
Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtNzMsMTAgKzc0LDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdwogLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0KWNv
bnRlbnRSZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilhU3R5bGUgYmFja2luZzooTlNCYWNraW5n
U3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxhZwogewogICAgIFVOVVNFRF9Q
QVJBTShhU3R5bGUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6TlNC
b3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENv
bnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3MgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmZsYWddOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKIApAQCAtMTIyLDE1ICsxMjAsMTIgQEAgLSAoQk9PTClyZXNpZ25G
aXJzdFJlc3BvbmRlcgogCiAtIChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICop
ZXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBCbG9j
ayBhbGwgY29tbWFuZCBrZXkgZXZlbnRzIHdoaWxlIHRoZSBmdWxsc2NyZWVuIHdpbmRvdyBpcyB1
cC4KLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5
cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotICAg
IGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spKQorICAgIGlm
ICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSkK
ICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIHJl
dHVybiBZRVM7CiB9CiAKQEAgLTE0NSwxMSArMTQwLDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIKIAogLSAoaWQpaW5pdAogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dl
YlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01h
a2VSZWN0KDAsIDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCB3aW5kb3dXaWR0aCwg
d2luZG93SGVpZ2h0KSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBp
bml0V2l0aFdpbmRvdzp3aW5kb3ddOwogICAgIFt3aW5kb3cgc2V0RGVsZWdhdGU6c2VsZl07CiAg
ICAgW3dpbmRvdyByZWxlYXNlXTsKQEAgLTE4OCwyMCArMTc5LDE3IEBAIC0gKHZvaWQpa2V5RG93
bjooTlNFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICBjYXNlICcgJzoKICAgICAgICAgICAgICAg
ICBbc2VsZiB0b2dnbGVQbGF5aW5nOm5pbF07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKLSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNBbHRlcm5hdGVLZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAg
ICBbc2VsZiBzZXRWb2x1bWU6W3NlbGYgbWF4Vm9sdW1lXV07CiAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBpbmNyZW1lbnRWb2x1bWVdOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToK
LSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzZXRWb2x1
bWU6MF07CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBk
ZWNyZW1lbnRWb2x1bWVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC0zNzgsMTcgKzM2NiwxMSBAQCAtICh2b2lkKXdpbmRvd0RpZExvYWQKICAgICBbY29u
dGVudFZpZXcgYWRkU3VidmlldzpfdGltZWxpbmVdOwogCiAgICAgX2VsYXBzZWRUaW1lVGV4dCA9
IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZVRleHRG
aWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtf
ZWxhcHNlZFRpbWVUZXh0IHNldEFsaWdubWVudDpOU0xlZnRUZXh0QWxpZ25tZW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX2VsYXBzZWRUaW1lVGV4dCBzZXRBbGlnbm1l
bnQ6TlNUZXh0QWxpZ25tZW50TGVmdF07CiAgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X2Vs
YXBzZWRUaW1lVGV4dF07CiAKICAgICBfcmVtYWluaW5nVGltZVRleHQgPSBjcmVhdGVUaW1lVGV4
dEZpZWxkKE5TTWFrZVJlY3Qod2luZG93V2lkdGggLSB0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiAtIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0
RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX3Jl
bWFpbmluZ1RpbWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAg
W2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X3JlbWFpbmluZ1RpbWVUZXh0XTsKIAogICAgIFt3aW5k
b3cgcmVjYWxjdWxhdGVLZXlWaWV3TG9vcF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQppbmRleCA0NTk4YTAzZWQyZmEzMjE1MGU2NGFm
OWNiYjY0NTk5NDY5ZmRkZjc3Li43ZGU1ZWI1MzdjN2ZhMDIzNTIyYmNlZjY4MzMyM2IyNTg0ZWNj
NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5p
bWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmlt
YXRpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zOCwxMCArMzksNyBAQCBzdGF0aWMg
Y29uc3QgQ0dGbG9hdCBzbG93TW90aW9uRmFjdG9yID0gMTA7CiAKIHN0YXRpYyBOU1RpbWVJbnRl
cnZhbCBXZWJXaW5kb3dBbmltYXRpb25EdXJhdGlvbkZyb21EdXJhdGlvbihOU1RpbWVJbnRlcnZh
bCBkdXJhdGlvbikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBy
ZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlN
YXNrKSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1v
ZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSA/IGR1cmF0aW9uICogc2xv
d01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwogfQogCiBzdGF0aWMgTlNSZWN0IHNjYWxlZFJlY3Qo
TlNSZWN0IF9pbml0aWFsRnJhbWUsIE5TUmVjdCBfZmluYWxGcmFtZSwgQ0dGbG9hdCBmYWN0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggM2VkZGMw
M2U0ZDhlOWY2MzUxN2M1MjcxZjIwMWI1Njc4MjJiOTAyOC4uODU3NjQyMzUyM2E5MGM4YTUyNTE4
MDU0YWQ5MmI1MTQ0ZjQxOTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtODEsNiArODEsNyBAQAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgog
I2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNpbXBvcnQgPG1hdGguaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgRU5BQkxFKE1FVEVS
X0VMRU1FTlQpCiAjaW1wb3J0ICJSZW5kZXJNZXRlci5oIgpAQCAtMzc5LDIyICszODAsMTMgQEAg
dm9pZCBSZW5kZXJUaGVtZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENT
U1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm8KICAgICAgICAgICAgIGZvbnROYW1lID0gQXRvbWljU3Ry
aW5nKCItYXBwbGUtc3RhdHVzLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNaW5p
Q29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAg
IGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZv
ckNvbnRyb2xTaXplOk5TTWluaUNvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0Zv
bnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplTWluaV1dOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0
ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF1dOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDb250cm9sOgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lz
dGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNSZWd1
bGFyQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1bGFyXV07CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZv
bnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZV1dOwpAQCAtNzc3LDMwICs3NjksMjQgQEAg
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvKSBjb25zdAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVG
b3JGb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpbnQgZm9udFNp
emUgPSBzdHlsZS5mb250U2l6ZSgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGlmIChmb250U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRy
b2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZv
bnRTaXplID49IDExKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJl
dHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6
ZU1pbmk7CiB9CiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9y
Q2VsbChOU0NlbGwqLCBjb25zdCBJbnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6
ZSwgZmxvYXQgem9vbUxldmVsKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXpl
c1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21MZXZlbCkKLSAgICAgICAgJiYg
bWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tTGV2ZWwpCisgICAgICAg
ICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xT
aXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVJlZ3VsYXI7CiAKLSAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0
PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxldmVsKQotICAg
ICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFs
bENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1Nt
YWxsQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lkdGgoKSAqIHpvb21MZXZlbCkKKyAgICAg
ICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJv
bFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVNtYWxsOwogCi0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAog
dm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBJ
bnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSwgZmxvYXQgem9vbUxldmVsKQpA
QCAtODU3LDE1ICs4NDMsMTIgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250
cm9sU2l6ZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmIHN0eWxlLAogCiBOU0NvbnRyb2xT
aXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0gICAgaWYgKGZvbnRTaXpl
ID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9s
U2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAoZm9u
dFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250
cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250
cm9sU2l6ZVJlZ3VsYXJdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7Cisg
ICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpO
U0NvbnRyb2xTaXplU21hbGxdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOwor
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6
cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiByKQpAQCAtMTE0NywxMCArMTEzMCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50UHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgY29uc3QgYXV0byYgcmVuZGVyUHJvZ3Jlc3MgPSBkb3du
Y2FzdDxSZW5kZXJQcm9ncmVzcz4ocmVuZGVyT2JqZWN0KTsKICAgICBISVRoZW1lVHJhY2tEcmF3
SW5mbyB0cmFja0luZm87CiAgICAgdHJhY2tJbmZvLnZlcnNpb24gPSAwOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU1JlZ3VsYXJD
b250cm9sU2l6ZSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoY29udHJv
bFNpemUgPT0gTlNDb250cm9sU2l6ZVJlZ3VsYXIpCiAgICAgICAgIHRyYWNrSW5mby5raW5kID0g
cmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBrVGhlbWVMYXJnZUluZGV0ZXJtaW5hdGVC
YXIgOiBrVGhlbWVMYXJnZVByb2dyZXNzQmFyOwogICAgIGVsc2UKICAgICAgICAgdHJhY2tJbmZv
LmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZU1lZGl1bUluZGV0
ZXJtaW5hdGVCYXIgOiBrVGhlbWVNZWRpdW1Qcm9ncmVzc0JhcjsKQEAgLTE0MzgsMTUgKzE0MTgs
MTIgQEAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgUmVuZGVyVGhlbWVNYWM6OnBvcHVw
TWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICBOU1BvcFVwQnV0dG9uQ2VsbCogcG9w
dXBCdXR0b24gPSB0aGlzLT5wb3B1cEJ1dHRvbigpOwogICAgIE5TQ29udHJvbFNpemUgc2l6ZSA9
IGNvbnRyb2xTaXplRm9yQ2VsbChwb3B1cEJ1dHRvbiwgcG9wdXBCdXR0b25TaXplcygpLCByZWN0
LnNpemUoKSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICBzd2l0Y2ggKHNpemUpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TUmVndWxhckNvbnRy
b2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVJlZ3VsYXI6CiAgICAgICAgIHJldHVybiBQ
b3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsKLSAgICBjYXNlIE5TU21hbGxDb250
cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVTbWFsbDoKICAgICAgICAgcmV0dXJuIFBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw7Ci0gICAgY2FzZSBOU01pbmlDb250cm9s
U2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVNaW5pOgogICAgICAgICByZXR1cm4gUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU5vcm1hbDsKICAgICB9CkBAIC0yMDU1LDEyICsyMDMyLDkgQEAgTlNTbGlkZXJDZWxsKiBS
ZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJIb3Jpem9udGFsKCkgY29uc3QKIHsKICAgICBpZiAo
IW1fc2xpZGVyVGh1bWJIb3Jpem9udGFsKSB7CiAgICAgICAgIG1fc2xpZGVyVGh1bWJIb3Jpem9u
dGFsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxvY10gaW5pdF0pOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwu
Z2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRlclRo
dW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdOwor
ICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1Ns
aWRlclR5cGVMaW5lYXJdOworICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkg
c2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1
bWJIb3Jpem9udGFsLmdldCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJp
b3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIHJldHVybiBt
X3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKTsKQEAgLTIwNzAsMTEgKzIwNDQsOCBAQCBOU1Ns
aWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYlZlcnRpY2FsKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fc2xpZGVyVGh1bWJWZXJ0aWNhbCkgewogICAgICAgICBtX3NsaWRlclRodW1i
VmVydGljYWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0XSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRlclRodW1iVmVydGlj
YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRl
clRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0
aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFtt
X3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRGb2N1c1JpbmdU
eXBlOk5TRm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXggZjJhMzU5NzNhNzFlMDY4
MjYwYTkxYzk2N2QyOTA1MGQyZWRlNzYwZC4uYTY5ZjZmMWZhNTBhOWE0YWRkODYzZjQ3OTViYzFk
NzEyZjBiYTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW0KQEAgLTc2LDYgKzc2LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RF
eHRyYXMuaCIKQEAgLTE3MywxMyArMTc0LDE0IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93
UmVmOihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAK
ICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBzdHlsZSBtYXNrLgogICAgIHN0eWxlTWFz
ayA9IFdLQ2FyYm9uV2luZG93TWFzaygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRl
KSBzdHlsZU1hc2sgfD0gTlNDbG9zYWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0F0dHJp
YnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKSBzdHlsZU1hc2sgfD0gTlNSZXNpemFi
bGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBz
ZSkgc3R5bGVNYXNrIHw9IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5k
b3dGZWF0dXJlcyAmIGtXaW5kb3dIYXNUaXRsZUJhcikgc3R5bGVNYXNrIHw9IE5TVGl0bGVkV2lu
ZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAod2luZG93QXR0
cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0dHJpYnV0ZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9
IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBr
V2luZG93UmVzaXphYmxlQXR0cmlidXRlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dT
dHlsZU1hc2tSZXNpemFibGU7CisgICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0NhbkNv
bGxhcHNlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6
YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpCisgICAg
ICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZDsKIAogICAgIG9zU3RhdHVz
ID0gR2V0V2luZG93TW9kYWxpdHkoX3dpbmRvd1JlZiwgJndpbmRvd01vZGFsaXR5LCBOVUxMKTsK
ICAgICBpZiAob3NTdGF0dXMgIT0gbm9FcnIpIHsKQEAgLTM5MywxOCArMzk1LDEyIEBAIC0gKHZv
aWQpc2VuZFN1cGVyRXZlbnQ6KE5TRXZlbnQgKilpbkV2ZW50IHsKICAgICAvLyBJZ25vcmUgc29t
ZSB1bmtub3duIGV2ZW50IHRoYXQgZ2V0cyBzZW50IHdoZW4gTlNUZXh0Vmlld3MgaW4gcHJpbnRp
bmcgYWNjZXNzb3J5IHZpZXdzIGFyZSBmb2N1c2VkLiAgTS5QLiBOb3RpY2UgLSAxMi83LzAwCiAg
ICAgQk9PTCBpZ25vcmVFdmVudCA9IE5POwogICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IFtp
bkV2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
IChldmVudFR5cGU9PU5TU3lzdGVtRGVmaW5lZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZpbmVkKSB7CiAg
ICAgICAgIHNob3J0IGV2ZW50U3VidHlwZSA9IFtpbkV2ZW50IHN1YnR5cGVdOwotICAgICAgICBp
ZiAoZXZlbnRTdWJ0eXBlPT03KSB7CisgICAgICAgIGlmIChldmVudFN1YnR5cGUgPT0gNykgewog
ICAgICAgICAgICAgaWdub3JlRXZlbnQgPSBZRVM7CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBOU0tleURv
d24pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICB9IGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAgICAgICAgLy8gSGFuZGxlIGNvbW1hbmQt
c3BhY2UgYXMgW05TQXBwIHNlbmRFdmVudDpdIGRvZXMuCiAgICAgICAgIGlmIChbTlNJbnB1dENv
bnRleHQgcHJvY2Vzc0lucHV0S2V5QmluZGluZ3M6aW5FdmVudF0pIHsKICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KaW5kZXggZWFkNTkzNjk2ZDRiOWE5NzY2YTNjYmNl
MDNlYWQ2ZWFmZDA3OTU3OS4uNmQwNmM3MDEwYzUyYjgxZDUzMTUxZTE4NTJkNDE0NDFiOTEyOWQ5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvSWRlbnRpZmllclJlcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVy
Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBleHRlcm4gIkMiIHsKICNpbXBvcnQg
IldlYktpdFBsdWdpbkhvc3QuaCIKQEAgLTIzMCwxMCArMjMxLDcgQEAgdm9pZCBOZXRzY2FwZVBs
dWdpbkhvc3RQcm94eTo6YmVnaW5Nb2RhbCgpCiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2lu
ZG93KTsKICAgICBBU1NFUlQoIW1fYWN0aXZhdGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRv
cHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFz
ayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgbV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0TlMoW1tX
ZWJQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFr
ZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAKICAgICBtX2FjdGl2
YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25XaWxsQmVjb21lQWN0aXZlTm90aWZpY2F0aW9u
IG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ0Jsb2NrOl4oTlNO
b3RpZmljYXRpb24gKil7IGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7IH1dOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDFiNGQzYTk2ZmE5YWU3YTE3N2U0NTEyZjQ1NjQx
ZGFhMjQzN2Q0YzkuLmFhMGRmNTQyNGE0MjZmZDNhZDc4MzQzNDZjZDdiMmFkNGMyOTU1MzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTY2LDYgKzY2LDcgQEAKICNpbXBvcnQg
PHV0aWxpdHk+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9S
ZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBleHRl
cm4gIkMiIHsKQEAgLTQ2NSwxNSArNDY2LDEyIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5OjpzeW50aGV0aWNLZXlEb3duV2l0aENvbW1hbmRNb2RpZmllcihpbnQga2V5Q29kCiB7
CiAgICAgTlNEYXRhICpjaGFyYWN0ZXJzRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczomY2hh
cmFjdGVyIGxlbmd0aDoxXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgIF9XS1BIUGx1Z2luSW5zdGFuY2VLZXlib2FyZEV2ZW50KG1fcGx1Z2luSG9zdFByb3h5LT5w
b3J0KCksIG1fcGx1Z2luSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBOUENvY29hRXZlbnRLZXlEb3duLCBOU0NvbW1hbmRLZXlN
YXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtl
eURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KFtjaGFyYWN0ZXJzRGF0YSBieXRlc10pKSwgW2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0s
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFtjaGFyYWN0ZXJzRGF0YSBieXRlc10pKSwg
W2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZhbHNlLCBrZXlDb2RlLCBjaGFyYWN0ZXIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZmxhZ3NDaGFu
Z2VkKE5TRXZlbnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDM3
NjY3MmI2ODY3MzdjNzczZWRjNmRmNjg0YjI4Nzk4Mjk2NGY1NDEuLmRmYzhjY2E3MjgyNDhhODk2
YTgxM2U2Zjc5MjQyYzA5NDJiMjVjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0K
QEAgLTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3
dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNDQzLDEwICs0NDQs
NyBAQCAtICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVjdAogewogICAgIGlmIChfY2FjaGVkU25h
cHNob3QpIHsKICAgICAgICAgTlNSZWN0IHNvdXJjZVJlY3QgPSB7IE5TWmVyb1BvaW50LCBbX2Nh
Y2hlZFNuYXBzaG90LmdldCgpIHNpemVdIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgICAgIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgZHJhd0luUmVjdDpbc2VsZiBi
b3VuZHNdIGZyb21SZWN0OnNvdXJjZVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3Zl
ciBmcmFjdGlvbjoxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW19j
YWNoZWRTbmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291
cmNlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rp
b246MV07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2Nv
YS5tbQppbmRleCBhMWQxNTlhZjk0ZTE0ODlhNDhiMDk5MjEwOGQwM2YzOTgwNWYyOTk2Li45YzUy
MDFmZTYyZDI2M2JkMzVlYjVlNzFkNGEzNzAxYWFhOTE3ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNvY29hLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaCIKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgogI2ltcG9ydCA8d3Rm
L1ZlY3Rvci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OldlYk5ldHNjYXBl
UGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EoV2ViTmV0c2NhcGVQbHVnaW5WaWV3KiBwbHVnaW5WaWV3
KQogICAgIDogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIocGx1Z2luVmlldykKQEAgLTE2
MSwxMCArMTYyLDcgQEAgdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpz
eW50aGV0aWNLZXlEb3duV2l0aENvbW1hbmRNb2RpZmllcihpbnQKICAgICAKICAgICBOUENvY29h
RXZlbnQgZXZlbnQ7CiAgICAgaW5pdGlhbGl6ZUV2ZW50KCZldmVudCwgTlBDb2NvYUV2ZW50S2V5
RG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgZXZlbnQuZGF0
YS5rZXkubW9kaWZpZXJGbGFncyA9IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgZXZlbnQuZGF0YS5rZXkubW9kaWZpZXJGbGFncyA9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIGV2ZW50LmRhdGEua2V5LmtleUNvZGUgPSBrZXlDb2Rl
OwogICAgIGV2ZW50LmRhdGEua2V5LmlzQVJlcGVhdCA9IGZhbHNlOwogICAgIGV2ZW50LmRhdGEu
a2V5LmNoYXJhY3RlcnMgPSAoTlBOU1N0cmluZyAqKWNoYXJhY3RlcnMuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KaW5kZXggYzQ2
NjcwYjRkNzlkOGNlODRmYmQ0MTE1OGZiNzMwODBhZTgwNDc5Yi4uNzlmMjhmYjgyY2I3ZmQ5Mzlj
ZDMzMjM0ZWM0N2VjMDM5NjZlZTUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9Qb3B1cE1lbnVDbGllbnQuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMv
QXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIApAQCAtOTAsMTcgKzkxLDExIEBAIHZvaWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgp
CiAgICAgICAgIH0KIAogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+
IHBhcmFncmFwaFN0eWxlID0gYWRvcHROUyhbW05TUGFyYWdyYXBoU3R5bGUgZGVmYXVsdFBhcmFn
cmFwaFN0eWxlXSBtdXRhYmxlQ29weV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0
aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBz
ZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNUZXh0QWxpZ25tZW50TGVm
dCA6IE5TVGV4dEFsaWdubWVudFJpZ2h0XTsKICAgICAgICAgTlNXcml0aW5nRGlyZWN0aW9uIHdy
aXRpbmdEaXJlY3Rpb24gPSBzdHlsZS50ZXh0RGlyZWN0aW9uKCkgPT0gTFRSID8gTlNXcml0aW5n
RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAg
ICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndyaXRpbmdEaXJl
Y3Rpb25dOwogICAgICAgICBpZiAoc3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCkpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFJldGFpblB0
cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVyIGFs
bG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TVGV4dFdyaXRpbmdEaXJl
Y3Rpb25PdmVycmlkZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtb
TlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0
aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PiB3
cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhP
YmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1ZS5nZXQoKSwgbmlsXSk7CiAgICAgICAgICAgICBb
YXR0cmlidXRlcyBzZXRPYmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpO
U1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1lXTsKICAgICAgICAgfQpAQCAtMjA2LDE4ICsy
MDEsMTUgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVW
aWV3KiB2LCBpbnQgaW5kZXgpCiAKICAgICBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplOwogICAg
IHN3aXRjaCAobV9jbGllbnQtPm1lbnVTdHlsZSgpLm1lbnVTaXplKCkpIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1l
bnVTaXplTm9ybWFsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TUmVndWxhckNvbnRyb2xTaXpl
OworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAg
ICAgIGNvbnRyb2xTaXplID0gTlNTbWFsbENvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6
ZSA9IE5TQ29udHJvbFNpemVTbWFsbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNNaW5p
Q29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZU1pbmk7CiAg
ICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAg
IFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyKSksIGR1bW15Vmll
dy5nZXQoKSwgaW5kZXgsIHRvTlNGb250KGZvbnQpLCBjb250cm9sU2l6ZSwgIW1fY2xpZW50LT5t
ZW51U3R5bGUoKS5oYXNEZWZhdWx0QXBwZWFyYW5jZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KaW5kZXgg
OTE0ZDhlMDYzZThlYjBmY2E5ZWFlOWQ3YmJiYzgxZjYxYjdiODhkNi4uYTM5YjkzZTc3ZTI2YTY0
MzNiOTI4ODhmMTkzM2EwOTk1NTE1YzYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KQEAgLTYwLDYgKzYw
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1VSTC5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTVByaXZhdGUuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMjY5LDEwICsyNzAsNyBAQCB2b2lkIFdlYkNv
bnRleHRNZW51Q2xpZW50OjpzaG93Q29udGV4dE1lbnUoKQogCiAgICAgTlNWaWV3KiB2aWV3ID0g
ZnJhbWVWaWV3LT5kb2N1bWVudFZpZXcoKTsKICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmll
dy0+Y29udGVudHNUb1dpbmRvdyhwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5oaXRUZXN0
UmVzdWx0KCkucm91bmRlZFBvaW50SW5Jbm5lck5vZGVGcmFtZSgpKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxh
Z3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVy
XSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlRG93biBsb2NhdGlvbjpwb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3dd
IHdpbmRvd051bWJlcl0gY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNz
dXJlOjFdOwogCiAgICAgLy8gU2hvdyB0aGUgY29udGV4dHVhbCBtZW51IGZvciB0aGlzIGV2ZW50
LgogICAgIGJvb2wgaXNTZXJ2aWNlc01lbnU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDExNDc2YTAz
Mjc2ZWRkOTRlNzU1NTEzOTMwYWI0NjE5YmNlZGY5NTMuLjAyN2U1NGI3MzdlYWViMDc4YTE2ZjBl
ZmQ2ZWU4ZGJlYzgzZjM0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNDYsNiArMTQ2LDggQEAK
ICNpbXBvcnQgIldlYktpdFZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldlYk1haWxEZWxlZ2F0
ZS5oIgogI2ltcG9ydCAiV2ViVUlLaXREZWxlZ2F0ZS5oIgorI2Vsc2UKKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBVU0Uo
UVVJQ0tfTE9PSykKQEAgLTE1NjEsMTcgKzE1NjMsMTQgQEAgTlNEaWN0aW9uYXJ5ICpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6YWN0aW9uRGljdGlvbmFyeShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBh
Y3QKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IFVJRXZlbnRXaXRoS2V5U3RhdGUqIGtl
eVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUoY29uc3RfY2FzdDxFdmVudCo+KGV2
ZW50KSk7CiAgICAgaWYgKGtleVN0YXRlRXZlbnQgJiYga2V5U3RhdGVFdmVudC0+aXNUcnVzdGVk
KCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgaWYgKGtl
eVN0YXRlRXZlbnQtPmN0cmxLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlND
b250cm9sS2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2w7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKSkKLSAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAgICAgICBp
ZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdTaGlmdDsKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFLZXkoKSkK
LSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgfQogI2Vsc2UKICAgICAvLyBObyBtb2RpZmllciBm
bGFncyBvbiBpT1MgcmlnaHQgbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggOTA3ODdkNjIwYjM4MWU1Mzhj
N2IxYWRkYzc2ZjJkMjljNTkzMjIwOS4uNzZiMmNkMmNiZjEwYjIwYTM5OTNjMmYzZjdiNzE5Y2Jl
N2E1ODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNTMsNiArNTMsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTUV4dGVuc2lvbnMuaD4K
ICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQu
aD4KIAogU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVG
cmFtZXdvcmtzLCBBKQpAQCAtMTkxLDEwICsxOTIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50OjphdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wgYXZhaWxhYmxlKQogCiBi
b29sIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpjYW5BdHRhY2goKQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250
cm9sbGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TRnVsbFNjcmVlbldpbmRvd01hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtbbV9mcm9udGVuZFdpbmRvd0NvbnRy
b2xsZXIgd2luZG93XSBzdHlsZU1hc2tdICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2NyZWVuKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gY2FuQXR0YWNoV2luZG93KCk7CkBA
IC00NjUsMTAgKzQ2Myw3IEBAIC0gKE5TV2luZG93ICopd2luZG93CiAgICAgaWYgKHdpbmRvdykK
ICAgICAgICAgcmV0dXJuIHdpbmRvdzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNrIHwgTlND
bG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TUmVzaXph
YmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNVSW50ZWdlciBzdHlsZU1hc2sgPSBOU1dpbmRv
d1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dpbmRvd1N0
eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUgfCBOU1dp
bmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXc7CiAgICAgd2luZG93ID0gW1tOU1dpbmRv
dyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIGluaXRpYWxXaW5k
b3dXaWR0aCwgaW5pdGlhbFdpbmRvd0hlaWdodCkgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0RGVsZWdh
dGU6c2VsZl07CiAgICAgW3dpbmRvdyBzZXRNaW5TaXplOk5TTWFrZVNpemUobWluaW11bVdpbmRv
d1dpZHRoLCBtaW5pbXVtV2luZG93SGVpZ2h0KV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4IDAyYTc1NmY3Njc3MzE1YzYy
MmRkODFkOTlhMjlmYWMzZmI1YmY5ZTIuLjY2N2IyYzVhNTQ0N2FhZTQ2YTVlNjA3YzU3NDE0NDAy
NzJiNDYyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJO
b2RlSGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJO
b2RlSGlnaGxpZ2h0Lm1tCkBAIC0zOSw2ICszOSw4IEBACiAjaW1wb3J0ICJXZWJWaWV3LmgiCiAj
aW1wb3J0IDxXZWJDb3JlL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0FLV2lu
ZG93Lmg+CisjZWxzZQorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05MSwxMCAr
OTMsNyBAQCAtIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5z
cGVjdG9yQ29udHJvbGxlcjooSW5zcGVjdG9yQ29udAogICAgIF9pbnNwZWN0b3JDb250cm9sbGVy
ID0gaW5zcGVjdG9yQ29udHJvbGxlcjsKIAogI2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaW50IHN0eWxlTWFzayA9IE5TQm9yZGVybGVz
c1dpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaW50IHN0eWxl
TWFzayA9IE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzczsKICAgICBOU1JlY3QgY29udGVudFJl
Y3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JGcmFtZVJlY3Q6W3NlbGYgX2NvbXB1dGVIaWdo
bGlnaHRXaW5kb3dGcmFtZV0gc3R5bGVNYXNrOnN0eWxlTWFza107CiAgICAgX2hpZ2hsaWdodFdp
bmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qg
c3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dOwogICAgIFtfaGlnaGxpZ2h0V2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBj
bGVhckNvbG9yXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCmlu
ZGV4IDVlYzE5Nzg1ZGE3Mjk3YjFhMjQ0YzU3NjMyMDcwYzRiZGU5NDZiMDUuLjViODY3MTU0MGU2
ZjhhMTIzMWVjZTFmNTQ5NDRiMTU4ODkzNzRiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC04Myw2ICs4Myw3IEBACiAjZWxzZQogI2ltcG9ydCAiV2Vi
TlNQYXN0ZWJvYXJkRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJOU1dpbmRvd0V4dHJhcy5oIgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjZW5kaWYK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05MTUsOSArOTE2LDcgQEAgLSAodm9pZClr
ZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgQk9PTCBjYWxsU3VwZXIgPSBZRVM7CiAgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIEJPT0wgbWFpbnRhaW5z
QmFja0ZvcndhcmRMaXN0ID0gY29yZUZyYW1lICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlz
dCo+KGNvcmVGcmFtZS0+cGFnZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+ZW5hYmxlZCgp
ID8gWUVTIDogTk87Ci0gICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisK
ICAgICBjb3VudCA9IFtjaGFyYWN0ZXJzIGxlbmd0aF07CiAgICAgZm9yIChpbmRleCA9IDA7IGlu
ZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgc3dpdGNoIChbY2hhcmFjdGVycyBjaGFy
YWN0ZXJBdEluZGV4OmluZGV4XSkgewpAQCAtOTI4LDcgKzkyNyw3IEBAIC0gKHZvaWQpa2V5RG93
bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAv
LyBUaGlzIG9kZCBiZWhhdmlvciBtYXRjaGVzIHNvbWUgZXhpc3RpbmcgYnJvd3NlcnMsCiAgICAg
ICAgICAgICAgICAgLy8gaW5jbHVkaW5nIFdpbmRvd3MgSUUKLSAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpIHsKICAgICAgICAgICAgICAg
ICAgICAgW3NlbGYgX2dvRm9yd2FyZF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgX2dvQmFja107CkBAIC05NDMsNyArOTQyLDcgQEAgLSAodm9p
ZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBl
ciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spIHsKKyAg
ICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlm
dCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdl
RG93bjpuaWxdOwpAQCAtOTg0LDcgKzk4Myw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRl
ZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2Uu
Ci0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBO
U0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYg
KE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkg
ewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTk5OCw5ICs5OTcsOSBAQCAtICh2b2lk
KWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBb
c2VsZiBzY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VVcDpuaWxdOwogICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbExp
bmVVcDpuaWxdOwpAQCAtMTAwOSw3ICsxMDA4LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVu
dCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TRG93
bkFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNo
aWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hh
bmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNr
IHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC0xMDIzLDkgKzEwMjIsOSBAQCAt
ICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAg
ICAgICBbc2VsZiBzY3JvbGxUb0VuZE9mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VEb3duOm5pbF07CiAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xs
TGluZURvd246bmlsXTsKQEAgLTEwMzQsMTIgKzEwMzMsMTIgQEAgLSAodm9pZClrZXlEb3duOihX
ZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IE5TTGVmdEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFu
ZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZl
IGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRL
ZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFn
Q29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
Ly8gQ2hlY2sgYmFjay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICghbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKQEAgLTEwNTIsNyArMTA1MSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVu
dAogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5
TWFzaykgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRN
b2RpZmllckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdl
SG9yaXpvbnRhbGx5OllFU107CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBbc2VsZiBfc2Nyb2xsTGluZUhvcml6b250YWxseTpZRVNdOwpAQCAt
MTA2MiwxMiArMTA2MSwxMiBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNSaWdodEFycm93RnVuY3Rp
b25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29u
dHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgotICAgICAg
ICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlNDb250cm9s
S2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU0V2ZW50
TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgYmFjay9mb3J3
YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
Q29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbWFp
bnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsU3Vw
ZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEwODAsNyArMTA3
OSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
ICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAg
ICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24p
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdlSG9yaXpvbnRhbGx5Ok5PXTsK
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtz
ZWxmIF9zY3JvbGxMaW5lSG9yaXpvbnRhbGx5Ok5PXTsKQEAgLTEwOTAsNyArMTA4OSw2IEBAIC0g
KHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIGlmIChj
YWxsU3VwZXIpIHsKICAgICAgICAgW3N1cGVyIGtleURvd246ZXZlbnRdOwogICAgIH0gZWxzZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250
cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJv
bGxlci5tbQppbmRleCA5ZmQ5NTY2MTdmMDdjNmNmNmY0ODU3Y2M5ZTIyMTQwYjIxODhiMmU0Li5m
NTQzNDFmZGJiNGU0ZDNjZWQ5ZGVkMTYzZjE4NDMyYjA0NmQ5YjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTQ3
LDYgKzQ3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViV2luZG93QW5pbWF0aW9uLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtODYsMTEgKzg3LDggQEAgQGltcGxlbWVudGF0
aW9uIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyCiAjcHJhZ21hIG1hcmsgSW5pdGlhbGl6YXRpb24K
IC0gKGlkKWluaXQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAv
LyBEbyBub3QgZGVmZXIgd2luZG93IGNyZWF0aW9uLCB0byBtYWtlIHN1cmUgLXdpbmRvd051bWJl
ciBpcyBjcmVhdGVkIChuZWVkZWQgYnkgV2ViV2luZG93U2NhbGVBbmltYXRpb24pLgotICAgIE5T
V2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TQ2xvc2FibGVXaW5kb3dNYXNrIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZUZ1bGxTY3JlZW5X
aW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6TlNX
aW5kb3dTdHlsZU1hc2tDbG9zYWJsZSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6Tk9dOwogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsKICAgICBb
d2luZG93IHJlbGVhc2VdOwogICAgIGlmICghc2VsZikKQEAgLTQ2MiwxMCArNDYwLDcgQEAgLSAo
dm9pZClfc3dhcFZpZXc6KE5TVmlldyopdmlldyB3aXRoOihOU1ZpZXcqKW90aGVyVmlldwogCiBz
dGF0aWMgUmV0YWluUHRyPE5TV2luZG93PiBjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRv
dyhOU1JlY3QgZnJhbWUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6ZnJhbWUgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6
TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW3dpbmRvdyBzZXRPcGFxdWU6
WUVTXTsKICAgICBbd2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBibGFja0NvbG9y
XV07CiAgICAgW3dpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNTVmMWFlMmQ0NThmNTYxMzk1ZmMzMjZh
YWNiYzYwZjRkYjMyMTNjNC4uMDg0ZmU0NTU3ZTdhYjg1MzQzN2FjYzUxZTllMjc4N2FmZmE1MGMx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xNDAsMTIg
KzE0MCwxMyBAQAogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogI2lmICFQTEFURk9STShJT1Mp
CisjaW1wb3J0ICJXZWJOU0V2ZW50RXh0cmFzLmgiCisjaW1wb3J0ICJXZWJOU1Bhc3RlYm9hcmRF
eHRyYXMuaCIKICNpbXBvcnQgPEFwcEtpdC9OU0FjY2Vzc2liaWxpdHkuaD4KICNpbXBvcnQgPEFw
cGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9OU01lbnVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMu
aD4KLSNpbXBvcnQgIldlYk5TRXZlbnRFeHRyYXMuaCIKLSNpbXBvcnQgIldlYk5TUGFzdGVib2Fy
ZEV4dHJhcy5oIgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAjZW5kaWYKIAogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CkBAIC0x
MzUxLDEyICsxMzUyLDkgQEAgLSAodm9pZClfcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJk
OihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkCiAKIC0gKHZvaWQpX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6KE5TRXZlbnQgKilmbGFnc0NoYW5nZWRFdmVudAog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246
ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVh
bQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1v
dXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQogICAgICAgICBtb2RpZmllckZsYWdzOmZs
YWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1wOmZsYWdzQ2hhbmdlZEV2ZW50
LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93TnVtYmVyCiAg
ICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3Vy
ZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbc2VsZiBtb3VzZU1vdmVk
OmZha2VFdmVudF07CiB9CiAKQEAgLTE1MDYsMTAgKzE1MDQsNyBAQCAtICh2b2lkKV9zZXRNb3Vz
ZURvd25FdmVudDooV2ViRXZlbnQgKilldmVudAogI2VuZGlmCiB7CiAjaWYgIVBMQVRGT1JNKElP
UykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoIWV2ZW50
IHx8IFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5T
UmlnaHRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TT3RoZXJNb3VzZURvd24pOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVPdGhlck1v
dXNlRG93bik7CiAjZWxzZQogICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9PSBXZWJF
dmVudE1vdXNlRG93bik7CiAjZW5kaWYKQEAgLTE2NjEsMTYgKzE2NTYsMTcgQEAgLSAoaWQpX2Jy
aWRnZQogCiAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50CiB7CisgICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TW91c2VNb3ZlZAorICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQogI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKLSAgICAgICAgbG9jYXRpb246W1tzZWxm
IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAg
ICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1
cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGlt
ZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dOdW1iZXI6W1tzZWxm
IHdpbmRvd10gd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAg
ZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAKICAgICBbc2VsZiBfdXBkYXRlTW91c2VvdmVyV2l0aEV2ZW50OmZha2VF
dmVudF07CiB9CkBAIC0xODY4LDExICsxODY0LDggQEAgLSAoQk9PTClfaW5zaWRlQW5vdGhlckhU
TUxWaWV3CiAjaWYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBCT09MIGlzUXVpY2tMb29rRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgY29uc3QgaW50IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJlbGVh
c2VkID0gOTsKLSAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TU3lzdGVtRGVmaW5lZCAmJiBb
ZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9u
UmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVN5c3RlbURl
ZmluZWQgJiYgW2V2ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlD
b21iaW5hdGlvblJlbGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0gJ2xrdXAnOwogfQogI2VuZGlm
CiAKQEAgLTE5MjgsMTQgKzE5MjEsMTEgQEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClw
b2ludAogICAgIGVsc2UgewogICAgICAgICAvLyBGSVhNRTogV2h5IGRvZXNuJ3QgdGhpcyBpbmNs
dWRlIG1vdXNlIGVudGVyZWQvZXhpdGVkIGV2ZW50cywgb3Igb3RoZXIgbW91c2UgYnV0dG9uIGV2
ZW50cz8KICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbW3NlbGYgd2luZG93XSBjdXJyZW50RXZl
bnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXB0dXJl
SGl0c09uU3Vidmlld3MgPSAhKFtldmVudCB0eXBlXSA9PSBOU01vdXNlTW92ZWQKLSAgICAgICAg
ICAgIHx8IFtldmVudCB0eXBlXSA9PSBOU1JpZ2h0TW91c2VEb3duCi0gICAgICAgICAgICB8fCAo
W2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNDb250cm9sS2V5TWFzaykgIT0gMCkKLSAgICAgICAgICAgIHx8IFtldmVudCB0eXBlXSA9
PSBOU0ZsYWdzQ2hhbmdlZAorICAgICAgICBjYXB0dXJlSGl0c09uU3Vidmlld3MgPSAhKFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgIHx8IFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCisgICAgICAgICAgICB8fCAoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiBbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKKyAgICAgICAgICAgIHx8IFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZAogICAgICAgICAgICAgfHwgaXNRdWlja0xv
b2tFdmVudChldmVudCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAog
ICAgIGlmICghY2FwdHVyZUhpdHNPblN1YnZpZXdzKSB7CkBAIC0yMDIzLDkgKzIwMTMsNyBAQCAt
ICh2b2lkKV9yZW1vdmVUcmFja2luZ1JlY3RzOihOU1RyYWNraW5nUmVjdFRhZyAqKXRhZ3MgY291
bnQ6KGludCljb3VudAogLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogewogICAgIC8v
IE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJE
YXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZh
a2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUV4aXRlZAor
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVNb3VzZUV4aXRlZAogICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAw
KQogICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTIwMzQs
MTYgKzIwMjIsMTMgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogICAgICAgICBl
dmVudE51bWJlcjowCiAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAg
ICAgICAgIHVzZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW19wcml2YXRlLT50cmFja2luZ1JlY3RPd25lciBt
b3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQogCiAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRW50
ZXJlZAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8vIE5vdGhp
bmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4
aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVkCiAgICAgICAgIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1l
c3RhbXA6MApAQCAtMjA1Myw3ICsyMDM4LDYgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUVu
dGVyZWQKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAg
dXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJEYXRhXTsKICAgICBbX3ByaXZhdGUt
PnRyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogfQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKQEAgLTIwODks
MjEgKzIwNzMsMTggQEAgLSAoTlNTdHJpbmcgKil2aWV3OihOU1ZpZXcgKil2aWV3IHN0cmluZ0Zv
clRvb2xUaXA6KE5TVG9vbFRpcFRhZyl0YWcgcG9pbnQ6KE5TUG8KIHN0YXRpYyBib29sIG1vdXNl
RXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIH0KIApAQCAtMjEzNCwx
NiArMjExNSwxNCBAQCAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRoRXZlbnQ6KE5TRXZlbnQg
KilldmVudAogICAgICAgICBmbG9hdCB5U2Nyb2xsID0gdmlzaWJsZVJlY3Qub3JpZ2luLnk7CiAg
ICAgICAgIGZsb2F0IHhTY3JvbGwgPSB2aXNpYmxlUmVjdC5vcmlnaW4ueDsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKKyAgICAgICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAg
ICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgtMSAtIHhTY3JvbGwsIC0xIC0geVNjcm9s
bCkKICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlm
aWVyRmxhZ3NdCiAgICAgICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5j
ZVJlZmVyZW5jZURhdGVdCiAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10g
d2luZG93TnVtYmVyXQogICAgICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgICAgICBl
dmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKwogICAgICAgICBpZiAoRnJhbWUqIGxhc3RIaXRDb3JlRnJhbWUgPSBjb3Jl
KFtsYXN0SGl0VmlldyBfZnJhbWVdKSkKICAgICAgICAgICAgIGxhc3RIaXRDb3JlRnJhbWUtPmV2
ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoZXZlbnQsIFtbc2VsZiBfd2ViVmlld10gX3ByZXNzdXJl
RXZlbnRdKTsKICAgICB9CkBAIC0yMzMwLDE2ICsyMzA5LDE4IEBAIC0gKHZvaWQpX2F1dG9zY3Jv
bGwKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQK
KyAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNMZWZ0TW91c2VEcmFnZ2VkCi0gICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5k
b3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAgICAg
IGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50
RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRl
cnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5k
b3ddIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorCiAgICAgW3NlbGYgbW91c2VEcmFnZ2VkOmZha2VFdmVudF07CiAjZW5kaWYKIH0K
QEAgLTMzNTQsMTIgKzMzMzUsOSBAQCAtIChCT09MKWFjY2VwdHNGaXJzdFJlc3BvbmRlcgogICAg
IC8vIG9yIGZyb20gY2FsbHMgYmFjayBmcm9tIFdlYkNvcmUgb25jZSB3ZSBiZWdpbiBtb3VzZS1k
b3duIGV2ZW50IGhhbmRsaW5nLgogI2lmICFQTEFURk9STShJT1MpICAgICAgICAgICAgCiAgICAg
TlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93
bgorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duCiAgICAg
ICAgICAgICAmJiAhX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3duRXZlbnQKICAgICAgICAgICAg
ICYmIE5TUG9pbnRJblJlY3QoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbc2VsZiBjb252ZXJ0
UmVjdDpbc2VsZiB2aXNpYmxlUmVjdF0gdG9WaWV3Om5pbF0pKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgICAgIHJldHVybiBOTzsKICAgICB9CiAjZWxzZQpAQCAtMzUyOCwx
MyArMzUwNiwxMCBAQCAtICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKIAogI2lmICFQTEFURk9S
TShJT1MpCiAgICAgICAgIGlmICghX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgX3ByaXZh
dGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZv
ckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1hc2sgaGFuZGxlcjpeKE5TRXZlbnQg
KmZsYWdzQ2hhbmdlZEV2ZW50KSB7CisgICAgICAgICAgICBfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2Vk
RXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdN
YXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6XihOU0V2ZW50ICpmbGFnc0NoYW5n
ZWRFdmVudCkgewogICAgICAgICAgICAgICAgIFtzZWxmIF9wb3N0RmFrZU1vdXNlTW92ZWRFdmVu
dEZvckZsYWdzQ2hhbmdlZEV2ZW50OmZsYWdzQ2hhbmdlZEV2ZW50XTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CiAgICAgICAgICAgICB9XTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIFtOU0V2
ZW50IHJlbW92ZU1vbml0b3I6X3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcl07CkBA
IC00NTQwLDExICs0NTE1LDEyIEBAIC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAqKWV2ZW50
CiAgICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBbTlNJbnB1dE1hbmFn
ZXIgY3VycmVudElucHV0TWFuYWdlcl07CiAKICAgICBpZiAoIVtjdXJyZW50SW5wdXRNYW5hZ2Vy
IHdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gfHwgIVtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRs
ZU1vdXNlRXZlbnQ6ZXZlbnRdKSB7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
ICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5P
IG1vdmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUgd2ViIHBhZ2UgaGFuZGxlcyB0aGUg
Y29udGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6IHJldHVybnMgbmlsLCB3ZSdsbCBn
ZXQgY29udHJvbCBjbGljayBldmVudHMgaGVyZS4KICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0
byBwYXNzIHRoZW0gYWxvbmcgdG8gS0hUTUwgYSBzZWNvbmQgdGltZS4KLSAgICAgICAgaWYgKCEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgaWYg
KCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7
CiAgICAgICAgICAgICBfcHJpdmF0ZS0+aWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMgPSBOTzsK
IAogICAgICAgICAgICAgLy8gTGV0IFdlYkNvcmUgZ2V0IGEgY2hhbmNlIHRvIGRlYWwgd2l0aCB0
aGUgZXZlbnQuIFRoaXMgd2lsbCBjYWxsIGJhY2sgdG8gdXMKQEAgLTQ1NTMsNyArNDUyOSw2IEBA
IC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgY29y
ZWZyYW1lLT5ldmVudEhhbmRsZXIoKS5tb3VzZURvd24oZXZlbnQsIFtbc2VsZiBfd2ViVmlld10g
X3ByZXNzdXJlRXZlbnRdKTsKICAgICAgICAgfQogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICNlbmRpZgogCiAgICAgX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3duRXZlbnQg
PSBOTzsKQEAgLTQ4MTgsMTkgKzQ3OTMsMTIgQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRF
dmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlEb3duOiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0KKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogewogICAgICAgICBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1FdmVudCA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBwbGF0Zm9ybUV2
ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsK
ICAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwbGF0Zm9ybUV2ZW50LCBjb3Jl
RnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5VXA6Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgogICAgICAgICByZXR1cm4g
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9y
bUtleWJvYXJkRXZlbnQoZXZlbnQpLCBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAwOwpAQCAtNTUyNCwxMSArNTQ5Miw4
IEBAIC0gKEJPT0wpX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50CiAg
ICAgaWYgKCFbc2VsZiBfY2FuRWRpdF0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykgIT0gTlNDb21tYW5k
S2V5TWFzaykKKyAgICBpZiAoKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykgIT0gTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bW1hbmQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IAogICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAgICAgaWYgKFtz
dHJpbmcgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAImIiXSA9PSBOU09yZGVyZWRTYW1lKSB7CkBA
IC02NDQ4LDE0ICs2NDEzLDExIEBAIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihLZXlib2Fy
ZEV2ZW50KilldmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdDb21tCiAgICAgICAgIHJl
dHVybiBOTzsKIAogICAgIE5TRXZlbnQgKm1hY0V2ZW50ID0gcGxhdGZvcm1FdmVudC0+bWFjRXZl
bnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW21hY0V2
ZW50IHR5cGVdID09IE5TS2V5RG93biAmJiBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVy
IGZpbHRlcktleURvd246bWFjRXZlbnRdKQorICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNF
dmVudFR5cGVLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZmlsdGVy
S2V5RG93bjptYWNFdmVudF0pCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgCi0gICAgaWYgKFtt
YWNFdmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKKyAgICBpZiAoW21hY0V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgCiAgICAgcGFyYW1ldGVycy5ldmVudCA9IGV2ZW50
OwogICAgIF9wcml2YXRlLT5pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzID0gJnBhcmFtZXRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggNzhmNTZlNDkx
ZTA4NmFhZTk4M2IzODA2OTlhNTUxNTdjZDk4ZmRiYS4uOTYwYzYzNzlkMWFjZTYwMDdiZTEyMDUy
YWUyODQ3NDczNTQ3ZDg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5t
bQpAQCAtNjUsNiArNjUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJOU0F0dHJpYnV0ZWRTdHJp
bmdFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvQ3Vy
cmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPEFwcGxpY2F0
aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlc1ByaXYuaD4KQEAgLTMyMSwxMCArMzIyLDcg
QEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClwb2ludAogICAgIC8vIE92ZXJyaWRlIGhp
dFRlc3Qgc28gd2UgY2FuIG92ZXJyaWRlIG1lbnVGb3JFdmVudC4KICAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAgIE5TRXZlbnRUeXBlIHR5cGUgPSBbZXZlbnQg
dHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHR5cGUg
PT0gTlNSaWdodE1vdXNlRG93biB8fCAodHlwZSA9PSBOU0xlZnRNb3VzZURvd24gJiYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spKSkKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAodHlwZSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8
ICh0eXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSkKICAgICAgICAgcmV0dXJuIHNlbGY7
CiAKICAgICByZXR1cm4gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOwpAQCAtMTAwOSwzOSArMTAwNywz
MyBAQCAtICh2b2lkKVBERlZpZXdXaWxsQ2xpY2tPbkxpbms6KFBERlZpZXcgKilzZW5kZXIgd2l0
aFVSTDooTlNVUkwgKilVUkwKICAgICBpbnQgYnV0dG9uID0gbm9CdXR0b247CiAgICAgUmVmUHRy
PEV2ZW50PiBldmVudDsKICAgICBzd2l0Y2ggKFtuc0V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAg
ICAgICAgICAgIGJ1dHRvbiA9IDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBO
U1JpZ2h0TW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IDE7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IFtu
c0V2ZW50IGJ1dHRvbk51bWJlcl07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBO
U0tleURvd246IHsKLSAgICAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRm
b3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7Ci0g
ICAgICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3
S2V5RG93bik7Ci0gICAgICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwg
MCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgICAgICBidXR0b24gPSAwOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgICAgICBidXR0b24gPSAx
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAg
ICAgICBidXR0b24gPSBbbnNFdmVudCBidXR0b25OdW1iZXJdOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogeworICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQgcGUgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50
KG5zRXZlbnQpOworICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1F
dmVudDo6UmF3S2V5RG93bik7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRl
KHBlLCAwKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7CiAgICAgICAgIGV2ZW50
ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVl
LCBjdXJyZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrLAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29udHJvbCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ09wdGlvbiwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0LAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCwKICAgICAgICAgICAgIGJ1dHRv
biwgMCwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCAwLCAwLCB0cnVlKTsKICAgICB9CiAKQEAgLTEx
NDksOSArMTE0MSw3IEBAIC0gKE5TRXZlbnQgKilfZmFrZUtleUV2ZW50V2l0aEZ1bmN0aW9uS2V5
Oih1bmljaGFyKWZ1bmN0aW9uS2V5CiAgICAgLy8gRklYTUUgNDQwMDQ4MDogd2hlbiBQREZWaWV3
IGltcGxlbWVudHMgdGhlIHN0YW5kYXJkIHNjcm9sbGluZyBzZWxlY3RvcnMgdGhhdCB0aGlzCiAg
ICAgLy8gbWV0aG9kIGlzIHVzZWQgdG8gbWltaWMsIHdlIGNhbiBlbGltaW5hdGUgdGhpcyBtZXRo
b2QgYW5kIGNhbGwgdGhlbSBkaXJlY3RseS4KICAgICBOU1N0cmluZyAqa2V5QXNTdHJpbmcgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmZ1bmN0aW9uS2V5IGxlbmd0aDoxXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleURvd24KKyAgICByZXR1cm4gW05TRXZlbnQga2V5RXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh
dGlvbjpOU1plcm9Qb2ludAogICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0xMTYxLDcgKzExNTEs
NiBAQCAtIChOU0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhGdW5jdGlvbktleToodW5pY2hhcilm
dW5jdGlvbktleQogICAgICAgICAgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmtleUFzU3Ry
aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FSZXBlYXQ6Tk8KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga2V5Q29kZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIH0KIAogLSAodm9pZClfbG9va1VwSW5EaWN0aW9uYXJ5RnJvbU1lbnU6KGlkKXNlbmRlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNv
bnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbQppbmRleCA0MzgyYjA0NDc0ZTYwYzhjMjM3MzMwNDdiODEzOTY0YTRmNzg0
MjYzLi43YjllNWRiY2Y0OGMyMTZiNmM1NjYzMTBjMTc0ZTQzMTJjNTYyOGU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJv
bGxlci5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5oIgog
I2ltcG9ydCAiV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2Ug
TlNXaW5kb3cgKFdlYk5TV2luZG93RGV0YWlscykKIC0gKHZvaWQpX3NldEZvcmNlQWN0aXZlQ29u
dHJvbHM6KEJPT0wpZmxhZzsKQEAgLTExMiwxMCArMTEzLDcgQEAgLSAodm9pZClfYnVpbGRVSQog
ICAgIFtzY3JvbGxWaWV3IHNldERvY3VtZW50VmlldzpfdGFibGVWaWV3XTsKICAgICBbX3RhYmxl
VmlldyByZWxlYXNlXTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBfcG9wdXBXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
OnNjcm9sbEZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgX3BvcHVwV2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW19wb3B1cFdpbmRv
dyBzZXRBbHBoYVZhbHVlOjAuODhmXTsKICAgICBbX3BvcHVwV2luZG93IHNldENvbnRlbnRWaWV3
OnNjcm9sbFZpZXddOwogICAgIFtzY3JvbGxWaWV3IHJlbGVhc2VdOwpAQCAtMTU1LDggKzE1Myw4
IEBAIC0gKHZvaWQpX3BsYWNlUG9wdXBXaW5kb3c6KE5TUG9pbnQpdG9wTGVmdAogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1Nj
cm9sbFZpZXcgZnJhbWVTaXplRm9yQ29udGVudFNpemU6TlNNYWtlU2l6ZShtYXhXaWR0aCwgMTAw
LjBmKSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9y
ZGVyVHlwZTpOU05vQm9yZGVyXS53aWR0aCk7Ci0gICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05T
V2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4
V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2tdLnNpemUud2lk
dGgpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBtYXhXaWR0aCA9IGNl
aWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAu
MGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3NdLnNpemUud2lkdGgpOwogICAgICAgICBtYXhXaWR0aCArPSA1LjBmOwogICAgICAgICB3aW5k
b3dGcmFtZS5zaXplLndpZHRoID0gc3RkOjptYXgobWF4V2lkdGgsIHdpbmRvd0ZyYW1lLnNpemUu
d2lkdGgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3Y2Zh
YTg3YjU1NmViNDc2YmYzYzVmZWQ1ZTAzZTY4ZmJhMmRlNGJmLi5iZTMyNmU3ZjhlNzMyNzY5OTZk
ZGNlNWM5MzMyYWY0NmI5YWY3MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC0yMTMsNiArMjEzLDcgQEAKICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0
Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9zcGkv
ZGFyd2luL2R5bGRTUEkuaD4KIAogI2lmICFQTEFURk9STShJT1MpCkBAIC02MDk1LDEwICs2MDk2
LDcgQEAgLSAoRHJhZ0FwcGxpY2F0aW9uRmxhZ3MpYXBwbGljYXRpb25GbGFnczooaWQgPE5TRHJh
Z2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9u
SGFzQXR0YWNoZWRTaGVldDsKICAgICBpZiAoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZV0g
PT0gc2VsZikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbTlNBcHAgY3VycmVudEV2
ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0Fw
cGxpY2F0aW9uSXNDb3B5S2V5RG93bjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RHJhZ0FwcGxp
Y2F0aW9uRmxhZ3M+KGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGls
ZFByb2Nlc3NNYWMubW0KaW5kZXggMmU2NTgwNmRiNWQ2OGYwYTRhMjgyZDM4M2I5NmU3YjQ1MTZi
OTA0MC4uYjBjNTU0ZDRkYTYyM2Q5OWIwMTQzNTg2N2IyMDc3MjViODY3NDUzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTM5LDYgKzM5LDcg
QEAKICNpbXBvcnQgPHB3ZC5oPgogI2ltcG9ydCA8c3RkbGliLmg+CiAjaW1wb3J0IDxzeXNleGl0
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAKICNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQpAQCAtMTk3LDEwICsxOTgsNyBAQCB2b2lkIENoaWxkUHJvY2Vzczo6c3Rv
cE5TQXBwUnVuTG9vcCgpCiAgICAgQVNTRVJUKFtOU0FwcCBpc1J1bm5pbmddKTsKICAgICBbTlNB
cHAgc3RvcDpuaWxdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
TlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBsaWNhdGlv
bkRlZmluZWQgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJGbGFnczowIHRpbWVz
dGFtcDowLjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTowIGRhdGExOjAgZGF0
YTI6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAqZXZlbnQg
PSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVBcHBsaWNhdGlvbkRlZmlu
ZWQgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDow
LjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTowIGRhdGExOjAgZGF0YTI6MF07
CiAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRydWVdOwogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IGE4NWVm
Y2FlZTlhNTJkOGMwNDU2NjZkOTRjNDkxODcwY2E2OGE3ZDMuLjlmNTNmNjhjZDMxODIzYmQxNDRm
MzE0ZWE2MDhhODU3YTg1ZWU4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvV2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2Vi
RXZlbnRGYWN0b3J5Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9s
bGJhci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oPgogI2ltcG9y
dCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjMsNzgg
KzY0LDY5IEBAIHN0YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0b24gY3VycmVudE1vdXNlQnV0dG9u
KCkKIAogc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5T
RXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgot
ICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFn
Z2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoK
LSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdl
Yk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOwotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVCdXR0b247
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAg
ICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJN
b3VzZUV2ZW50OjpSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURv
d246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRk
bGVCdXR0b247CiAjaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlw
ZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotICAgICAg
ICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAg
ICAgICAgICByZXR1cm4gY3VycmVudE1vdXNlQnV0dG9uKCk7Ci0gICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6Cisg
ICAgICAgIHJldHVybiBjdXJyZW50TW91c2VCdXR0b24oKTsKKyAgICBkZWZhdWx0OgorICAgICAg
ICByZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CiAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgV2ViRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVG
b3JFdmVudChOU0V2ZW50KiBldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBO
U01vdXNlRXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBO
U090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKLSAgICAgICAgY2FzZSBOU0xl
ZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2Fz
ZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZURv
d247Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBX
ZWJFdmVudDo6TW91c2VVcDsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBX
ZWJFdmVudDo6TW91c2VNb3ZlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2Vk
OgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgICAgIHJl
dHVybiBXZWJFdmVudDo6TW91c2VEb3duOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5
cGVPdGhlck1vdXNlVXA6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VVcDsKKyAgICBk
ZWZhdWx0OgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tDb3VudEZvckV2
ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VE
b3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2Ug
TlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAg
ICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gW2V2
ZW50IGNsaWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAg
IGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmln
aHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAg
IHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgTlNQ
b2ludCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQpAQCAtMTQzLDIyICsxMzUs
MTkgQEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkK
ICNpZiBkZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNl
bmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNMZWZ0
TW91c2VEb3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNMZWZ0
TW91c2VVcDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgIGNhc2UgTlNNb3VzZUV4aXRl
ZDoKLSAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0g
ICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0g
ICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2UgTlNTY3JvbGxXaGVlbDoKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNl
TW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6CiAgICAgICAgIHJldHVybiBXZWJD
b3JlOjpnbG9iYWxQb2ludChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10sIFtldmVudCB3aW5kb3dd
KTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gTlNaZXJvUG9pbnQ7CkBAIC0xNzEsMjIg
KzE2MCwxOSBAQCBzdGF0aWMgTlNQb2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50LCBO
U1ZpZXcgKndpbmRvd1ZpZXcpCiAjaWYgZGVmaW5lZChfX0xQNjRfXykKICAgICBjYXNlIE5TRXZl
bnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dl
ZDoKLSAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAg
ICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgY2FzZSBO
U090aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICBjYXNl
IE5TT3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICBjYXNlIE5T
UmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICBjYXNlIE5T
U2Nyb2xsV2hlZWw6IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6
IHsKICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90
dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgogICAg
ICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkg
V2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCiAgICAgICAgIE5TUG9pbnQgbG9j
YXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CkBAIC0yNDAsMTAgKzIyNiw3IEBAIHN0
YXRpYyBpbmxpbmUgU3RyaW5nIHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVw
bGFjZXNTb2Z0U3BhY2UpCiB7CiAgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQogICAgICAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0No
YW5nZWQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmco
W2V2ZW50IGNoYXJhY3RlcnNdKTsKIH0KQEAgLTI1MiwxMCArMjM1LDcgQEAgc3RhdGljIGlubGlu
ZSBTdHJpbmcgdW5tb2RpZmllZFRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVw
bGFjZXNTb2Z0U3AKIHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAgIHJldHVy
biBlbXB0eVN0cmluZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IGlmIChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdl
ZCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmluZyhbZXZl
bnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSk7CiB9CkBAIC0yNjQsNzQgKzI0NCw2OCBA
QCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIC8vIENo
ZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAg
ICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAg
ICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVh
azsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgc3dp
dGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA3MTogLy8gQ2xlYXIKLSAgICAg
ICAgY2FzZSA4MTogLy8gPQotICAgICAgICBjYXNlIDc1OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6
IC8vICoKLSAgICAgICAgY2FzZSA3ODogLy8gLQotICAgICAgICBjYXNlIDY5OiAvLyArCi0gICAg
ICAgIGNhc2UgNzY6IC8vIEVudGVyCi0gICAgICAgIGNhc2UgNjU6IC8vIC4KLSAgICAgICAgY2Fz
ZSA4MjogLy8gMAotICAgICAgICBjYXNlIDgzOiAvLyAxCi0gICAgICAgIGNhc2UgODQ6IC8vIDIK
LSAgICAgICAgY2FzZSA4NTogLy8gMwotICAgICAgICBjYXNlIDg2OiAvLyA0Ci0gICAgICAgIGNh
c2UgODc6IC8vIDUKLSAgICAgICAgY2FzZSA4ODogLy8gNgotICAgICAgICBjYXNlIDg5OiAvLyA3
Ci0gICAgICAgIGNhc2UgOTE6IC8vIDgKLSAgICAgICAgY2FzZSA5MjogLy8gOQotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgIH0KKyAgICBjYXNlIDcxOiAvLyBDbGVhcgorICAgIGNhc2Ug
ODE6IC8vID0KKyAgICBjYXNlIDc1OiAvLyAvCisgICAgY2FzZSA2NzogLy8gKgorICAgIGNhc2Ug
Nzg6IC8vIC0KKyAgICBjYXNlIDY5OiAvLyArCisgICAgY2FzZSA3NjogLy8gRW50ZXIKKyAgICBj
YXNlIDY1OiAvLyAuCisgICAgY2FzZSA4MjogLy8gMAorICAgIGNhc2UgODM6IC8vIDEKKyAgICBj
YXNlIDg0OiAvLyAyCisgICAgY2FzZSA4NTogLy8gMworICAgIGNhc2UgODY6IC8vIDQKKyAgICBj
YXNlIDg3OiAvLyA1CisgICAgY2FzZSA4ODogLy8gNgorICAgIGNhc2UgODk6IC8vIDcKKyAgICBj
YXNlIDkxOiAvLyA4CisgICAgY2FzZSA5MjogLy8gOQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkKLSAgICAg
ICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0tleVVwOworICAgIGlmIChbZXZlbnQgdHlwZV0g
IT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCisgICAgICAgIHJldHVybiBbZXZlbnQgdHlwZV0g
PT0gTlNFdmVudFR5cGVLZXlVcDsKICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBmYWlscyBpZiB0
aGUgdXNlciBwcmVzc2VzIGJvdGggU2hpZnQga2V5cyBhdCBvbmNlLCBmb3IgZXhhbXBsZToKICAg
ICAvLyB3ZSB0cmVhdCByZWxlYXNpbmcgb25lIG9mIHRoZW0gYXMga2V5RG93bi4KICAgICBzd2l0
Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5k
Ci0gICAgICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgcmV0dXJuIChb
ZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKSA9PSAwOwotICAgICAgICAg
ICAgCi0gICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICByZXR1cm4gKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAotICAgICAgICBjYXNlIDYwOiAv
LyBSaWdodCBTaGlmdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU1NoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU4OiAv
LyBMZWZ0IEFsdAotICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgIHJl
dHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSA9PSAwOwot
ICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAgICBjYXNl
IDYyOiAvLyBSaWdodCBDdHJsCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29udHJvbEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2Fz
ZSA2MzogLy8gRnVuY3Rpb24KLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNGdW5jdGlvbktleU1hc2spID09IDA7CisgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29t
bWFuZAorICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAorICAgICAgICByZXR1cm4gIShbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCk7CisKKyAgICBj
YXNlIDU3OiAvLyBDYXBzbG9jaworICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spOworCisgICAgY2FzZSA1NjogLy8gTGVm
dCBTaGlmdAorICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0CisgICAgICAgIHJldHVybiAhKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCk7CisKKyAgICBj
YXNlIDU4OiAvLyBMZWZ0IEFsdAorICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAorICAgICAgICBy
ZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9u
KTsKKworICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0
cmwKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2wpOworCisgICAgY2FzZSA2MzogLy8gRnVuY3Rpb24KKyAgICAgICAgcmV0
dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9u
KTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCkBAIC0zMzksNyArMzEzLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZp
ZXJzIG1vZGlmaWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHVuc2lnbmVkIG1v
ZGlmaWVycyA9IDA7CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTIwMAogICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFn
Q2Fwc0xvY2spCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fwc0xvY2tLZXk7CiAg
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkK
QEAgLTM1MCwxOCArMzIzLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZpZXJzIG1v
ZGlmaWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBtb2RpZmllcnMgfD0gV2Vi
RXZlbnQ6OkFsdEtleTsKICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ0NvbW1hbmQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtl
eTsKLSNlbHNlCi0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtl
eU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fwc0xvY2tLZXk7Ci0gICAg
aWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKQotICAgICAgICBtb2Rp
ZmllcnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OwotICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0NvbnRyb2xLZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNv
bnRyb2xLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5
TWFzaykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpBbHRLZXk7Ci0gICAgaWYgKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVy
cyB8PSBXZWJFdmVudDo6TWV0YUtleTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIChXZWJFdmVudDo6
TW9kaWZpZXJzKW1vZGlmaWVyczsKIH0KQEAgLTQ4NCwxMCArNDQ1LDcgQEAgV2ViS2V5Ym9hcmRF
dmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZl
bnQsIGJvb2wgaGEKICAgICBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlICAgICAgID0gd2luZG93
c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2Rl
ICAgICAgICA9IFtldmVudCBrZXlDb2RlXTsKICAgICBpbnQgbWFjQ2hhckNvZGUgICAgICAgICAg
ICAgICAgID0gV0tHZXROU0V2ZW50S2V5Q2hhcihldmVudCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgYm9vbCBhdXRvUmVwZWF0ICAgICAgICAgICAgICAgICA9IChb
ZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpICYmIFtldmVudCBpc0FSZXBlYXRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGJvb2wgYXV0b1JlcGVhdCAgICAgICAgICAg
ICAgICAgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgJiYgW2V2ZW50
IGlzQVJlcGVhdF07CiAgICAgYm9vbCBpc0tleXBhZCAgICAgICAgICAgICAgICAgICA9IGlzS2V5
cGFkRXZlbnQoZXZlbnQpOwogICAgIGJvb2wgaXNTeXN0ZW1LZXkgICAgICAgICAgICAgICAgPSBm
YWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogICAgIFdlYkV2
ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
bkFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uQWN0aW9uLm1tCmluZGV4IGJhMTk5NmIyMTc0ZTIzZTQ3Nzg0NjM3ZWQ3MjEwN2M3NTFiMGMz
Y2UuLjhhNmQ5NmU0MWZkZWYyYzkzNDk3YTdlZGIyNzFlMTMxMDRlOTBiZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0
aW9uLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJXS0ZyYW1lSW5mb0ludGVybmFsLmgi
CiAjaW1wb3J0ICJfV0tVc2VySW5pdGlhdGVkQWN0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oPgogCiBAaW1wbGVtZW50YXRpb24gV0tOYXZpZ2F0aW9uQWN0aW9uCiAKQEAgLTc5
LDcgKzgwLDYgQEAgc3RhdGljIE5TRXZlbnRNb2RpZmllckZsYWdzIHRvTlNFdmVudE1vZGlmaWVy
RmxhZ3MoV2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXJzIG0KIHsKICAgICBOU0V2ZW50TW9kaWZp
ZXJGbGFncyBtb2RpZmllckZsYWdzID0gMDsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMjAwCiAgICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6
OkNhcHNMb2NrS2V5KQogICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZs
YWdDYXBzTG9jazsKICAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6U2hpZnRL
ZXkpCkBAIC05MCwxOCArOTAsNiBAQCBzdGF0aWMgTlNFdmVudE1vZGlmaWVyRmxhZ3MgdG9OU0V2
ZW50TW9kaWZpZXJGbGFncyhXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcnMgbQogICAgICAgICBt
b2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb247CiAgICAgaWYgKG1vZGlm
aWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6Ok1ldGFLZXkpCiAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7Ci0jZWxzZQotICAgIGlmIChtb2RpZmllcnMg
JiBXZWJLaXQ6OldlYkV2ZW50OjpDYXBzTG9ja0tleSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8
PSBOU0FscGhhU2hpZnRLZXlNYXNrOwotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2
ZW50OjpTaGlmdEtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU1NoaWZ0S2V5TWFzazsK
LSAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6Q29udHJvbEtleSkKLSAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU0NvbnRyb2xLZXlNYXNrOwotICAgIGlmIChtb2RpZmllcnMg
JiBXZWJLaXQ6OldlYkV2ZW50OjpBbHRLZXkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNB
bHRlcm5hdGVLZXlNYXNrOwotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpN
ZXRhS2V5KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29tbWFuZEtleU1hc2s7Ci0jZW5k
aWYKIAogICAgIHJldHVybiBtb2RpZmllckZsYWdzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDMyZTYzOWM0ZDkxOWFkMTZlOWE5NDgy
YjkzNWNlZjA0NjM3NzFmYmEuLjc2M2Q5MDYwNTc1OTkzZDhjYjA3M2M2YWE0ZTA5NWMwZGJiNGE4
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
QEAgLTkzLDYgKzkzLDcgQEAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2lt
cG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9y
dCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlZpZXdJbXBs
SW5jbHVkZXMuaD4KQEAgLTYyMCwxMSArNjIxLDggQEAgYm9vbCBXZWJWaWV3SW1wbDo6YmVjb21l
Rmlyc3RSZXNwb25kZXIoKQogICAgIGlmIChkaXJlY3Rpb24gIT0gTlNEaXJlY3RTZWxlY3Rpb24p
IHsKICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKICAgICAg
ICAgTlNFdmVudCAqa2V5Ym9hcmRFdmVudCA9IG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2
ZW50IHR5cGVdID09IE5TS2V5VXApCisgICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleVVwKQogICAgICAg
ICAgICAga2V5Ym9hcmRFdmVudCA9IGV2ZW50OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgICAgICBtX3BhZ2UtPnNldEluaXRpYWxGb2N1cyhkaXJlY3Rpb24gPT0gTlNTZWxlY3Rp
bmdOZXh0LCBrZXlib2FyZEV2ZW50ICE9IG5pbCwgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChrZXli
b2FyZEV2ZW50LCBmYWxzZSwgZmFsc2UsIHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpF
cnJvcikgeyB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC04NDgsMTAgKzg0Niw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpYygpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIE5TV2luZG93ICp3aW5kb3cgPSBtX3ZpZXcud2luZG93OwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICgod2luZG93LnN0eWxlTWFz
ayAmIE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2spICYmICF3aW5kb3cudGl0bGViYXJB
cHBlYXJzVHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9zaW5nU2Nyb2xsVmlld10pIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoKHdpbmRvdy5zdHlsZU1hc2sgJiBO
U1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXcpICYmICF3aW5kb3cudGl0bGViYXJB
cHBlYXJzVHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9zaW5nU2Nyb2xsVmlld10pIHsKICAg
ICAgICAgTlNSZWN0IGNvbnRlbnRMYXlvdXRSZWN0ID0gW21fdmlldyBjb252ZXJ0UmVjdDp3aW5k
b3cuY29udGVudExheW91dFJlY3QgZnJvbVZpZXc6bmlsXTsKICAgICAgICAgQ0dGbG9hdCBuZXdU
b3BDb250ZW50SW5zZXQgPSBOU01heFkoY29udGVudExheW91dFJlY3QpIC0gTlNIZWlnaHQoY29u
dGVudExheW91dFJlY3QpOwogICAgICAgICBpZiAobV90b3BDb250ZW50SW5zZXQgIT0gbmV3VG9w
Q29udGVudEluc2V0KQpAQCAtMTIyOCwxMCArMTIyMyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnZp
ZXdEaWRNb3ZlVG9XaW5kb3coKQogCiAgICAgICAgIGlmICghbV9mbGFnc0NoYW5nZWRFdmVudE1v
bml0b3IpIHsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBtX2ZsYWdzQ2hh
bmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNo
aW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1hc2sgaGFuZGxlcjpbd2Vha1RoaXNdIChOU0V2ZW50ICpm
bGFnc0NoYW5nZWRFdmVudCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0
b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgaGFuZGxlcjpb
d2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewogICAgICAgICAgICAgICAg
IGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnBvc3RGYWtlTW91
c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoZmxhZ3NDaGFuZ2VkRXZlbnQpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBmbGFnc0NoYW5nZWRFdmVudDsKQEAgLTEzMDIsMTIgKzEyOTQs
OSBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjpoaXRUZXN0KENHUG9pbnQgcG9pbnQpCiAKIHZvaWQg
V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQo
TlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91
c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZCBsb2NhdGlv
bjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3Ry
ZWFtCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZlbnQubW9kaWZpZXJGbGFn
cyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0YW1wIHdpbmRvd051bWJlcjpmbGFn
c0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKICAgICAgICAgY29udGV4dDpudWxscHRyIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZmFrZUV2ZW50LCBtX2xh
c3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOwogICAgIG1fcGFnZS0+aGFuZGxlTW91c2VF
dmVudCh3ZWJFdmVudCk7CiB9CkBAIC0xNjU2LDEwICsxNjQ1LDcgQEAgTlNWaWV3ICpXZWJWaWV3
SW1wbDo6ZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldygpCiBOU1dpbmRvdyAqV2ViVmlld0ltcGw6
OmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gW1tbV2ViQ29y
ZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W1tOU1NjcmVlbiBt
YWluU2NyZWVuXSBmcmFtZV0gc3R5bGVNYXNrOihOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIHwgTlNS
ZXNpemFibGVXaW5kb3dNYXNrKSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dIGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1
cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0gc3R5bGVNYXNrOihOU1dpbmRvd1N0eWxlTWFz
a0JvcmRlcmxlc3MgfCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZSkgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSBhdXRvcmVsZWFzZV07CiAjZWxzZQogICAgIHJldHVy
biBuaWw7CiAjZW5kaWYKQEAgLTI2MzEsOSArMjYxNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJl
bW92ZVRyYWNraW5nUmVjdHMoTlNUcmFja2luZ1JlY3RUYWcgKnRhZ3MsIGludCBjb3VudCkKIHZv
aWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFeGl0ZWQoKQogewogICAgIC8vIE5vdGhp
bmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVu
dCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUV4aXRlZAorICAgIE5T
RXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNFdmVu
dFR5cGVNb3VzZUV4aXRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTI2NDIsMTYgKzI2
MjYsMTMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUV4aXRlZCgpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjowCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2luZ051bWJlcjpU
UkFDS0lOR19SRUNUX1RBRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdXNlckRhdGE6bV90cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAgICAgW21fdHJhY2tpbmdSZWN0T3duZXIgbW91c2VFeGl0ZWQ6ZmFr
ZUV2ZW50XTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUVudGVyZWQo
KQogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJl
ciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNN
b3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVkCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6
MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3Rh
bXA6MApAQCAtMjY2MCw3ICsyNjQxLDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBN
b3VzZUVudGVyZWQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhOm1fdHJhY2tpbmdSZWN0VXNlckRh
dGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFttX3RyYWNraW5nUmVjdE93
bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwogfQogCkBAIC0yODE2LDEwICsyNzk2LDcgQEAg
c3RhdGljIFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzIGFwcGxpY2F0aW9uRmxhZ3NGb3JE
cmFnKE5TVmlldyAqdmlldywgaWQgPE4KICAgICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0Fw
cGxpY2F0aW9uSGFzQXR0YWNoZWRTaGVldDsKICAgICBpZiAoZHJhZ2dpbmdJbmZvLmRyYWdnaW5n
U291cmNlID09IHZpZXcpCiAgICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlv
bklzU291cmNlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChb
TlNBcHAgY3VycmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbTlNBcHAgY3VycmVudEV2ZW50
XS5tb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAgICAgZmxh
Z3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNDb3B5S2V5RG93bjsKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3M+KGZsYWdzKTsKIApAQCAt
MzM1OSwxMCArMzMzNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNtYXJ0TWFnbmlmeVdpdGhFdmVu
dChOU0V2ZW50ICpldmVudCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9PSBOU0xlZnRNb3VzZURvd24gfHwg
ZXZlbnQudHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNPdGhlck1v
dXNlRG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQVNTRVJUKCFldmVu
dCB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biB8fCBldmVudC50eXBl
ID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlw
ZU90aGVyTW91c2VEb3duKTsKIAogICAgIGlmIChldmVudCA9PSBtX2xhc3RNb3VzZURvd25FdmVu
dC5nZXQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzM5OSwxMSArMzM3Myw4IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKIHZvaWQgV2ViVmlld0ltcGw6
OmRvbmVXaXRoS2V5RXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgZXZlbnRXYXNIYW5kbGVkKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlw
ZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlE
b3duKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAg
ICBpZiAodHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihldmVudCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTM0NzksMTEgKzM0NTAsOCBAQCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiBXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdgogewogICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGNvbW1hbmRz
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0
eXBlXSAhPSBOU0tleURvd24pCisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtl
eURvd24pCiAgICAgICAgIHJldHVybiBjb21tYW5kczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKIAogICAgIEFTU0VSVCghbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzKTsKICAgICBt
X2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMgPSAmY29tbWFuZHM7CkBAIC0zODU4LDExICszODI2
LDggQEAgYm9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqZXZl
bnQpCiAgICAgLy8gV2UgZ2V0IEVzYyBrZXkgaGVyZSBhZnRlciBwcm9jZXNzaW5nIGVpdGhlciBF
c2Mgb3IgQ21kK3BlcmlvZC4gVGhlIGZvcm1lciBzdGFydHMgYXMgYSBrZXlEb3duLCBhbmQgdGhl
IGxhdHRlciBzdGFydHMgYXMgYSBrZXkgZXF1aXZhbGVudCwKICAgICAvLyBidXQgYm90aCBnZXQg
dHJhbnNmb3JtZWQgdG8gYSBjYW5jZWxPcGVyYXRpb246IGNvbW1hbmQsIGV4ZWN1dGluZyB3aGlj
aCBwYXNzZXMgYW4gRXNjIGtleSBldmVudCB0byAtcGVyZm9ybUtleUVxdWl2YWxlbnQ6LgogICAg
IC8vIERvbid0IGludGVycHJldCB0aGlzIGV2ZW50IGFnYWluLCBhdm9pZGluZyByZS1lbnRyYW5j
eSBhbmQgaW5maW5pdGUgbG9vcHMuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgaWYgKFtbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSBpc0VxdWFsVG9T
dHJpbmc6QCJcZSJdICYmICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZpY2VJbmRlcGVu
ZGVudE1vZGlmaWVyRmxhZ3NNYXNrKSkKKyAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzSWdub3Jp
bmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0gJiYgIShbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRGV2aWNlSW5kZXBlbmRlbnRGbGFnc01hc2spKQog
ICAgICAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZl
bnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgaWYgKG1fa2V5RG93bkV2
ZW50QmVpbmdSZXNlbnQpIHsKICAgICAgICAgLy8gV2ViQ29yZSBoYXMgYWxyZWFkeSBzZWVuIHRo
ZSBldmVudCwgbm8gbmVlZCBmb3IgY3VzdG9tIHByb2Nlc3NpbmcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94
eU1hYy5tbQppbmRleCBmMDdkMjc5ZDYzN2QzMGY4ZjUwNTMxN2Q4ZjA5NjA1NTdhMTFkMmQyLi44
ZjM3ZDQyNjE1MmI2MTdkNTVjOTE0ODgxNTExNGY4YzMzOWU3YzUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNz
UHJveHlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPGNydF9leHRlcm5zLmg+CiAj
aW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8c3Bhd24uaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCiBAaW50ZXJmYWNlIFdLUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyA6IE5TV2lu
ZG93IApAQCAtMjMxLDEwICsyMzIsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6YmVnaW5N
b2RhbCgpCiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2luZG93KTsKICAgICBBU1NFUlQoIW1f
YWN0aXZhdGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dLUGxhY2Vob2xkZXJN
b2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEs
IDEpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3Rv
cmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dLUGxhY2Vob2xkZXJNb2RhbFdpbmRv
dyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxl
TWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1
ZmZlcmVkIGRlZmVyOllFU10pOwogICAgIFttX3BsYWNlaG9sZGVyV2luZG93IHNldFJlbGVhc2Vk
V2hlbkNsb3NlZDpOT107CiAgICAgCiAgICAgbV9hY3RpdmF0aW9uT2JzZXJ2ZXIgPSBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU0FwcGxp
Y2F0aW9uV2lsbEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiBvYmplY3Q6TlNBcHAgcXVldWU6bmls
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51
UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51
UHJveHlNYWMubW0KaW5kZXggYTQ4Mzk2NGQ4ZjFmMjI2ZDRhZWNjMjdjY2IwZjA3NjA3MWI3YmJk
MS4uYmI1YWQ3YzIxZTgxMGNhMzY1NjVlY2M3NzdkMDZhZjMxYmIwMjg2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5t
bQpAQCAtNDgsNiArNDgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9OU1NoYXJpbmdTZXJ2aWNlU1BJ
Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDYzLDEwICs0NjQsNyBAQCB2
b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVudVdpdGhJdGVtcyhjb25z
dCBWZWN0b3I8V2ViQ29udGV4dE1lbgogICAgIFtbV0tNZW51VGFyZ2V0IHNoYXJlZE1lbnVUYXJn
ZXRdIHNldE1lbnVQcm94eTp0aGlzXTsKIAogICAgIE5TUG9pbnQgbWVudUxvY2F0aW9uID0gW21f
d2ViVmlldyBjb252ZXJ0UG9pbnQ6bV9jb250ZXh0Lm1lbnVMb2NhdGlvbigpIHRvVmlldzpuaWxd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZVVwIGxvY2F0aW9uOm1l
bnVMb2NhdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOm1fd2Vi
Vmlldy53aW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tD
b3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5T
RXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmln
aHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAgd2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmls
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogICAgIFtOU01lbnUgcG9w
VXBDb250ZXh0TWVudTptX21lbnUuZ2V0KCkgd2l0aEV2ZW50OmV2ZW50IGZvclZpZXc6bV93ZWJW
aWV3XTsKIAogICAgIGlmIChtX2NvbnRleHRNZW51TGlzdGVuZXIpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDBh
Nzk5MTM0NmQxNWNjZmFjNzc0MzVlZjMwZWY4ZGY4MjJhZmFlMjMuLmYwNmI1ODQyYWNkNTM0ZGZl
MjQxMGZlY2E5YTFhZGZiNmVhOTc3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcu
aD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
I2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JL
KFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJhbWV3b3JrcywgQSkKQEAgLTQ4LDEwICs0OSw3IEBA
IFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJhbWV3
b3JrcywgQSkKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotc3RhdGljIGNvbnN0IE5T
VUludGVnZXIgd2luZG93U3R5bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNrIHwgTlNDbG9zYWJs
ZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TUmVzaXphYmxlV2lu
ZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitzdGF0aWMgY29uc3QgTlNVSW50ZWdlciB3aW5kb3dTdHlsZU1hc2sg
PSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgfCBO
U1dpbmRvd1N0eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFi
bGUgfCBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXc7CiAKIC8vIFRoZSB0aW1l
IHdlIGtlZXAgb3VyIFdlYlZpZXcgYWxpdmUgYmVmb3JlIGNsb3NpbmcgaXQgYW5kIGl0cyBwcm9j
ZXNzLgogLy8gUmV1c2luZyB0aGUgV2ViVmlldyBpbXByb3ZlcyBzdGFydCB1cCB0aW1lIGZvciBw
ZW9wbGUgdGhhdCBqdW1wIGluIGFuZCBvdXQgb2YgdGhlIEluc3BlY3Rvci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4
IGQyOWQwODkwNTJjODg3YWZiODY0MjM4NDU1YWExODg0YjRkZDQ2NWMuLmMyMjlmYmQwYjhiZWJi
YWYxMTVjMzUzZTgzYzdlMDg0NjUwNjAzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQpAQCAtMzQsNiArMzQsNyBAQAog
I2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXZWJQb3B1cEl0ZW0uaCIKICNp
bXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRD
b21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkBAIC03NCwxOSArNzUsMTMgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUo
Y29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBOU0ZvbnQgKmYKICAgICAgICAgICAg
IFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUgPSBhZG9w
dE5TKFtbTlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11dGFibGVDb3B5
XSk7CiAgICAgICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiA9IGl0
ZW1zW2ldLm1fdGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9S
aWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICAgICAgW3BhcmFn
cmFwaFN0eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndyaXRpbmdEaXJlY3Rpb25dOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW3BhcmFncmFwaFN0
eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU0xlZnRUZXh0QWxp
Z25tZW50IDogTlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERp
cmVjdGlvbiA9PSBMVFIgPyBOU1RleHRBbGlnbm1lbnRMZWZ0IDogTlNUZXh0QWxpZ25tZW50Umln
aHRdOwogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IGF0dHJpYnV0
ZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhPYmplY3Rz
QW5kS2V5czoKICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdHlsZS5nZXQoKSwgTlNQYXJhZ3Jh
cGhTdHlsZUF0dHJpYnV0ZU5hbWUsCiAgICAgICAgICAgICAgICAgZm9udCwgTlNGb250QXR0cmli
dXRlTmFtZSwKICAgICAgICAgICAgIG5pbF0pOwogICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLm1f
aGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0
aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0
aW5nRGlyZWN0aW9uICsgTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVy
PiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRX
aXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVd
KTsKICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJheT4gd3JpdGluZ0RpcmVjdGlvbkFy
cmF5ID0gYWRvcHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czp3cml0aW5nRGly
ZWN0aW9uVmFsdWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNl
dE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJyYXkuZ2V0KCkgZm9yS2V5Ok5TV3JpdGluZ0RpcmVj
dGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAgICAgICAgfQpAQCAtMTU0LDE4ICsxNDksMTUgQEAg
dm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiBy
ZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKIAogICAgIE5TQ29udHJvbFNpemUgY29udHJvbFNpemU7
CiAgICAgc3dpdGNoIChkYXRhLm1lbnVTaXplKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6
ZU5vcm1hbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAg
ICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZVNtYWxsOgot
ICAgICAgICBjb250cm9sU2l6ZSA9IE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJv
bFNpemUgPSBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2Vi
Q29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOgotICAgICAgICBjb250cm9s
U2l6ZSA9IE5TTWluaUNvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJv
bFNpemVNaW5pOwogICAgICAgICBicmVhazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
ICAgICB9CiAKICAgICBSZWY8V2ViUG9wdXBNZW51UHJveHlNYWM+IHByb3RlY3QoKnRoaXMpOwpA
QCAtMTgzLDEzICsxNzUsMTEgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVw
TWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICBpZiAoIW1f
Y2xpZW50LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpKQogICAgICAgICByZXR1
cm47CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgTlNFdmVu
dCogaW5pdGlhdGluZ05TRXZlbnQgPSBtX2NsaWVudC0+Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VE
b3duRXZlbnQoKS0+bmF0aXZlRXZlbnQoKTsKLSAgICBpZiAoW2luaXRpYXRpbmdOU0V2ZW50IHR5
cGVdICE9IE5TTGVmdE1vdXNlRG93bikKKyAgICBpZiAoW2luaXRpYXRpbmdOU0V2ZW50IHR5cGVd
ICE9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNl
VXAKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ05TRXZlbnQgbG9jYXRpb25JbldpbmRvd10K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2lu
aXRpYXRpbmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBd
CkBAIC0xOTgsMTMgKzE4OCwxNCBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9w
dXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjpbaW5pdGlhdGluZ05T
RXZlbnQgZXZlbnROdW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGlja0NvdW50Oltpbml0aWF0aW5nTlNFdmVudCBjbGlja0NvdW50XQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTpbaW5pdGlhdGluZ05T
RXZlbnQgcHJlc3N1cmVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIFtO
U0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKKyAgICBmYWtlRXZlbnQgPSBb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3IHdpbmRvd10K
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3IHdpbmRvd10gY29udmVydFNjcmVl
blRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmll
ckZsYWdzOltpbml0aWF0aW5nTlNFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ05TRXZlbnQgdGltZXN0YW1w
XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlhdGlu
Z05TRXZlbnQgd2luZG93TnVtYmVyXQpAQCAtMjEyLDcgKzIwMyw2IEBAIHZvaWQgV2ViUG9wdXBN
ZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVj
dGlvbiB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrQ291bnQ6MAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
RGVwcmVjYXRlZFBERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQppbmRleCA1ZWRlNTZlZWU0MGFjZmRiOTkwMTE5
ZGU3YWNlOTE4ZTY3OGJjNjY2Li4xMjUxOGRmMzM0Y2YzZmRkNjU4ZGY4OTE5YzMzNjFiMDg0MmUy
ZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0Rl
cHJlY2F0ZWRQREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCkBAIC04MCw2ICs4MCw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVt
SW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIApAQCAtMTI3OCwzMyArMTI3OSwyOCBAQCB2b2lkIFBERlBsdWdpbjo6ZGlkRXZh
bHVhdGVKYXZhU2NyaXB0KHVpbnQ2NF90LCBjb25zdCBXVEY6OlN0cmluZyYpCiAgICAgCiBzdGF0
aWMgTlNVSW50ZWdlciBtb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBl
dmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4g
KGV2ZW50LnNoaWZ0S2V5KCkgPyBOU1NoaWZ0S2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50
LmNvbnRyb2xLZXkoKSA/IE5TQ29udHJvbEtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5h
bHRLZXkoKSA/IE5TQWx0ZXJuYXRlS2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50Lm1ldGFL
ZXkoKSA/IE5TQ29tbWFuZEtleU1hc2sgOiAwKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICByZXR1cm4gKGV2ZW50LnNoaWZ0S2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hp
ZnQgOiAwKQorICAgICAgICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29udHJvbCA6IDApCisgICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNFdmVudE1vZGlm
aWVyRmxhZ09wdGlvbiA6IDApCisgICAgICAgIHwgKGV2ZW50Lm1ldGFLZXkoKSA/IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kIDogMCk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBnZXRFdmVudFR5
cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRU
eXBlKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAo
ZXZlbnQudHlwZSgpKSB7CiAgICAgY2FzZSBXZWJFdmVudDo6S2V5RG93bjoKLSAgICAgICAgZXZl
bnRUeXBlID0gTlNLZXlEb3duOworICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUtleURv
d247CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgV2ViRXZlbnQ6OktleVVwOgotICAg
ICAgICBldmVudFR5cGUgPSBOU0tleVVwOworICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlw
ZUtleVVwOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZURv
d246CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2
ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246
Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZURvd247CisgICAgICAgICAgICBl
dmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAg
ICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZURvd247CisgICAgICAgICAgICBldmVudFR5cGUg
PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzEyLDEwICsx
MzA4LDEwIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJF
dmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2FzZSBXZWJFdmVudDo6TW91
c2VVcDoKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4o
ZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRv
bjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlVXA7CisgICAgICAgICAgICBl
dmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAg
ICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5T
RXZlbnRUeXBlUmlnaHRNb3VzZVVwOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzIzLDEzICsxMzE5LDEz
IEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYg
ZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VNb3Zl
OgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVu
dCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgot
ICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICAgICAg
ZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAg
ICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEcmFnZ2VkOworICAgICAgICAgICAgZXZl
bnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOgotICAgICAgICAg
ICAgZXZlbnRUeXBlID0gTlNNb3VzZU1vdmVkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNF
dmVudFR5cGVNb3VzZU1vdmVkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzM3LDcgKzEzMzMsNiBAQCBz
dGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50
LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAgICAgCiBOU0V2ZW50
ICpQREZQbHVnaW46Om5zRXZlbnRGb3JXZWJNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQm
IGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KaW5kZXggNmM2MGJkZGU5NWZk
ZDMxN2Y2YjcxNGUxZjQ0ZjZlZWIyZjMzZDMwYi4uNjAzMWM1OTBkYzIzMWVjY2ZlZWEyMGEwNDdm
ODU2OTZjYTVkOGEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCkBAIC00NCw2
ICs0NCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxUZXh0QXJlYUVsZW1lbnQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTUzLDIxICs1NCwxOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgY29uc3QgU3RyaW5nIGNzc0FsaWdubWVudFZhbHVlRm9y
TlNUZXh0QWxpZ25tZW50KE5TVGV4dEFsaWdubWVudCBhbGlnbm1lbnQpCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChhbGlnbm1lbnQpIHsKLSAgICBj
YXNlIE5TTGVmdFRleHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnRMZWZ0Ogog
ICAgICAgICByZXR1cm4gImxlZnQiOwotICAgIGNhc2UgTlNSaWdodFRleHRBbGlnbm1lbnQ6Cisg
ICAgY2FzZSBOU1RleHRBbGlnbm1lbnRSaWdodDoKICAgICAgICAgcmV0dXJuICJyaWdodCI7Ci0g
ICAgY2FzZSBOU0NlbnRlclRleHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnRD
ZW50ZXI6CiAgICAgICAgIHJldHVybiAiY2VudGVyIjsKLSAgICBjYXNlIE5TSnVzdGlmaWVkVGV4
dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudEp1c3RpZmllZDoKICAgICAgICAg
cmV0dXJuICJqdXN0aWZ5IjsKLSAgICBjYXNlIE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ6CisgICAg
Y2FzZSBOU1RleHRBbGlnbm1lbnROYXR1cmFsOgogICAgICAgICByZXR1cm4gIi13ZWJraXQtc3Rh
cnQiOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0Ns
aWVudE1hYy5tbQppbmRleCBhMzZmM2IzMjNhYjkxNjUxNDc3YmQzYzdiZTI4YzZhMjNkZTliMTdk
Li42MjZlNDM2YzZhYzRmZTZiOWE3ZWI1M2MyZDM1NmJmNzk2ZmY0NDdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkRyYWdDbGllbnRNYWMubW0KQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
U3RyaW5nVHJ1bmNhdG9yLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNp
bXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC02MywxMCArNjQsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxT
aGFyZWFibGVCaXRtYXA+IGNvbnZlcnRJbWFnZVRvQml0bWFwKE5TSW1hZ2UgKmltYWdlLCBjb25z
dCBJbgogICAgIFJldGFpblB0cjxOU0dyYXBoaWNzQ29udGV4dD4gc2F2ZWRDb250ZXh0ID0gW05T
R3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKIAogICAgIFtOU0dyYXBoaWNzQ29udGV4
dCBzZXRDdXJyZW50Q29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0
aEdyYXBoaWNzUG9ydDpncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpIGZsaXBwZWQ6
WUVTXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW2ltYWdlIGRy
YXdJblJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBiaXRtYXAtPnNpemUoKS53aWR0aCgpLCBiaXRtYXAt
PnNpemUoKS5oZWlnaHQoKSkgZnJvbVJlY3Q6TlNaZXJvUmVjdCBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEgcmVzcGVjdEZsaXBwZWQ6WUVTIGhpbnRzOm5pbF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlIGRyYXdJblJlY3Q6TlNNYWtl
UmVjdCgwLCAwLCBiaXRtYXAtPnNpemUoKS53aWR0aCgpLCBiaXRtYXAtPnNpemUoKS5oZWlnaHQo
KSkgZnJvbVJlY3Q6TlNaZXJvUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNv
dXJjZU92ZXIgZnJhY3Rpb246MSByZXNwZWN0RmxpcHBlZDpZRVMgaGludHM6bmlsXTsKIAogICAg
IFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpzYXZlZENvbnRleHQuZ2V0KCld
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294123</attachid>
            <date>2016-11-07 19:26:07 -0800</date>
            <delta_ts>2016-11-07 19:39:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107192159.patch</filename>
            <type>text/plain</type>
            <size>163254</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBL
aXRTdHVicy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVi
cy5oCmluZGV4IDExNjYxODkwMjY0YjU3Nzk5OTNiZDM3YWVjMzU0M2JhMTMwZDE0MDQuLjQyOGQ2
OTM4NjVhZDViN2QyM2VjNmI4YTJhNjk2ZDU5ODUxZjE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLQXBwS2l0U3R1YnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS0FwcEtpdFN0dWJzLmgKQEAgLTE1NCwxNSArMTU0LDE1
IEBAIHR5cGVkZWYgTlNVSW50ZWdlciBOU1JlY3RFZGdlOwogCiAvKiBEZXZpY2UtaW5kZXBlbmRl
bnQgYml0cyBmb3VuZCBpbiBldmVudCBtb2RpZmllciBmbGFncyAqLwogZW51bSB7Ci0gICAgTlNB
bHBoYVNoaWZ0S2V5TWFzayA9IDEgPDwgMTYsCi0gICAgTlNTaGlmdEtleU1hc2sgPSAgICAgIDEg
PDwgMTcsCi0gICAgTlNDb250cm9sS2V5TWFzayA9ICAgIDEgPDwgMTgsCi0gICAgTlNBbHRlcm5h
dGVLZXlNYXNrID0gIDEgPDwgMTksCi0gICAgTlNDb21tYW5kS2V5TWFzayA9ICAgIDEgPDwgMjAs
Ci0gICAgTlNOdW1lcmljUGFkS2V5TWFzayA9IDEgPDwgMjEsCi0gICAgTlNIZWxwS2V5TWFzayA9
ICAgICAgIDEgPDwgMjIsCi0gICAgTlNGdW5jdGlvbktleU1hc2sgPSAgIDEgPDwgMjMsCi0gICAg
TlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKKyAgICBO
U0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2sgPSAxIDw8IDE2LAorICAgIE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdCA9IDEgPDwgMTcsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSAx
IDw8IDE4LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gPSAxIDw8IDE5LAorICAgIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kID0gMSA8PCAyMCwKKyAgICBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZCA9IDEgPDwgMjEsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgPSAx
IDw8IDIyLAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbiA9IDEgPDwgMjMsCisgICAg
TlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrID0gMHhmZmZmMDAw
MFUKIH07CiAKIHR5cGVkZWYgZW51bSBfV0tXcml0aW5nRGlyZWN0aW9uIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5
YzBiZDBmNjY5ZWIyNTRkMGMuLjcyOGQzNDRhOTQ1MDM0YjljN2EyMDg1ZjQ1NjNkYzFiYjY5NjRl
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtMjksNiAr
MjksNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50
ZXJmYWNlIFdlYkNvcmVDdXJzb3JCdW5kbGUgOiBOU09iamVjdCB7IH0KIEBlbmQKQEAgLTY0LDEw
ICs2NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJ
bWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTCiAgICAgICAgIE5TUmVjdCBmcm9tUmVj
dCA9IE5TTWFrZVJlY3QoMCwgMCwgaW1hZ2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CiAK
ICAgICAgICAgW2V4cGFuZGVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJl
Y3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVj
dDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRp
b25Tb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwogICAgICAgICBbZXhwYW5kZWRJbWFnZSB1bmxvY2tG
b2N1c107CiAKICAgICAgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0N1cnNvciBhbGxvY10gaW5pdFdp
dGhJbWFnZTpleHBhbmRlZEltYWdlLmdldCgpIGhvdFNwb3Q6aG90U3BvdF0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggNjgyNDZiZWZhNTIzZWRm
ZjNiNjA1YzYwMTE4NzE5ZDQ3Mjk4ZDA5Yi4uMGZmNDIwMjAwY2M4YmQzNDg3ZTQ1NmY3NzkwZWRl
ZTk1ZThmNTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIKICNpbXBv
cnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzUsMTAgKzc2LDcgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZl
RHJhZ0ltYWdlVG9GcmFjdGlvbihSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGZsb2F0IGQKICAg
ICBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVkSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBh
bGxvY10gaW5pdFdpdGhTaXplOltpbWFnZS5nZXQoKSBzaXplXV0pOwogICAgIAogICAgIFtkaXNz
b2x2ZWRJbWFnZS5nZXQoKSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIFtpbWFnZS5nZXQoKSBkcmF3QXRQb2ludDpOU1plcm9Qb2ludCBmcm9tUmVj
dDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXplXS53aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdo
dCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weSBmcmFjdGlvbjpkZWx0YV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5TWmVyb1Bv
aW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ug
c2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvbkNvcHkgZnJhY3Rp
b246ZGVsdGFdOwogICAgIFtkaXNzb2x2ZWRJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICByZXR1cm4gZGlzc29sdmVkSW1hZ2U7CkBAIC0xMTksMTAgKzExNyw4IEBAIFJldGFpblB0cjxO
U0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpCiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgc2V0VHJhbnNm
b3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QqKSZ0cmFuc2Zvcm1dOwogICAgICAg
ICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIGNvbmNhdF07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkg
ZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlv
bjoxLjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW2ltYWdl
LT5zbmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJl
Y3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3Np
dGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKKwogICAgICAgICAgICAgW3Jv
dGF0ZWREcmFnSW1hZ2UuZ2V0KCkgdW5sb2NrRm9jdXNdOwogCiAgICAgICAgICAgICByZXR1cm4g
cm90YXRlZERyYWdJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9FdmVudExvb3BNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29w
TWFjLm1tCmluZGV4IGFmMGEzOTkyYjY2ZTlkNmZmYzAxNzcxMjQ4NTc2MjZhMDA1YTVlOTAuLmI5
Y2M1NDVhOTg0OTM0ZDU0NjBkZGJkZjViZDRlYzNlYTcxNTkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQpAQCAtMjUsMTYgKzI1LDE0IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlIDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQogewogICAgIFtOU0FwcCBzZXRXaW5kb3dz
TmVlZFVwZGF0ZTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0FueUV2ZW50
TWFzayB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjAuMDVd
IGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU11dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1h
dGNoaW5nTWFzazpOU0V2ZW50TWFza0FueSB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJ
bnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVl
OllFU11dOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGE1ZGYzNDc0YzMxMWM2YTc1NjFkN2Y0
ZDQ0NTUzMTRhYTA0ZDAwNzAuLjFjNGUzYzE5ODAzMWNmZmE2ZmE5YjY2NTI3MWFiZmE0NzMyZDc2
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBA
IC01NSw2ICs1NSw3IEBACiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2ltcG9ydCA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIApAQCAt
NjUzLDExICs2NTQsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBsb2NhdGlvbikKICAgICAvLyBIYWNrOiBXZSBtdXN0
IHBvc3QgYW4gZXZlbnQgdG8gd2FrZSB1cCB0aGUgTlNEcmFnTWFuYWdlciwgd2hpY2ggaXMgc2l0
dGluZyBpbiBhIG5leHRFdmVudCBjYWxsCiAgICAgLy8gdXAgdGhlIHN0YWNrIGZyb20gdXMgYmVj
YXVzZSB0aGUgQ29yZUZvdW5kYXRpb24gZHJhZyBtYW5hZ2VyIGRvZXMgbm90IHVzZSB0aGUgcnVu
IGxvb3AgYnkgaXRzZWxmLgogICAgIC8vIFRoaXMgaXMgdGhlIG1vc3QgaW5ub2N1b3VzIGV2ZW50
IHRvIHVzZSwgcGVyIEtyaXN0ZW4gRm9yc3Rlci4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU01vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9pbnQKKyAgICBOU0V2ZW50KiBldmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRp
b246TlNaZXJvUG9pbnQKICAgICAgICAgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRv
d051bWJlcjowIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6
ZXZlbnQgYXRTdGFydDpZRVNdOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggZDM0ZDZlYWU5
NDhmN2FmY2JhYjMzMDMxNGZkY2JhNzhlOWU0MDBiOC4uMGQyZTMxOGVjZGZiMTMwNDIzODc3YTcz
MmQ4MmY4NjkxOTc2OTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNTIsMjcgKzUyLDI0IEBAIHN0YXRp
YyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQ
cmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3Vz
ZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2lu
ZG93XSwgW2V2ZW50IHdpbmRvd10pOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIHsgMCwgMCB9OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKKyAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtl
dmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiB7IDAsIDAgfTsKICAgICB9CiB9CiAKQEAgLTgwLDMzICs3NywzMCBAQCBz
dGF0aWMgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5k
b3dWaWV3KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQ
NjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJl
OgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNh
c2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgot
ICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNTY3JvbGxXaGVlbDogewotICAg
ICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9t
IGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgotICAgICAg
ICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5
IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93LgotICAgICAgICAgICAgTlNQb2lu
dCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKLSAgICAgICAgICAgIGlmICh3
aW5kb3dWaWV3KQotICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW3dpbmRvd1ZpZXcgY29udmVy
dFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9p
bnQobG9jYXRpb24pOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQoKTsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hl
ZWw6IHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUg
Ym90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgor
ICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQg
YnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCisgICAgICAgIE5TUG9pbnQg
bG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIGlmICh3aW5kb3dW
aWV3KQorICAgICAgICAgICAgbG9jYXRpb24gPSBbd2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9j
YXRpb24gZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgcmV0dXJuIEludFBvaW50KGxvY2F0aW9uKTsK
KyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CiAgICAgfQog
fQogCkBAIC0xMTQsNzIgKzEwOCw2MyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91c2VCdXR0b25G
b3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewog
I2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJl
dHVybiBMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIE5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIExlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gUmlnaHRC
dXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBOb0J1dHRvbjsKICAgICB9CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBl
IG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6
Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92
ZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJl
dHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2Vk
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3Nl
ZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKIHN0YXRp
YyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNs
aWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVy
biBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogfQogCkBAIC00OTcsMjggKzQ4MiwyOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktl
eUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVGbGFnc0NoYW5nZWQpIHsKICAgICAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsK
LSAgICAgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgICAgIGNhc2Ug
NTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2siKTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgICAgIGNhc2Ug
NjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0g
ICAgICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgICAgICByZXR1cm4g
U3RyaW5nKCJBbHQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTk6IC8v
IExlZnQgQ3RybAotICAgICAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgNTQ6IC8v
IFJpZ2h0IENvbW1hbmQKKyAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
ICAgICByZXR1cm4gU3RyaW5nKCJNZXRhIik7CisKKyAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xv
Y2sKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7CisKKyAgICAgICAgY2Fz
ZSA1NjogLy8gTGVmdCBTaGlmdAorICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKworICAgICAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAorICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoIkFsdCIpOworCisgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgICAg
ICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDb250
cm9sIik7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgCkBAIC01MzQsNDQgKzUxOSwzOCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5T
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBl
dmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246
Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAg
ICAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
RmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TTnVtZXJpY1BhZEtleU1hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFy
Ci0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBj
YXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8g
KwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAg
ICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0
OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAg
ICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4
OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAg
ICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAg
ICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVy
CisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAx
CisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0
CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3
CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNTg1LDEwICs1NjQs
NyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAv
LyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29k
ZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlz
LiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVu
dCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NL
ZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlE
b3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9
PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXAp
KSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdF
UlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5T
U3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3Ro
XSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0p
IDogMDsKQEAgLTY0NiwzNSArNjIyLDMyIEBAIGRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3
MChOU0V2ZW50KiBldmVudCkKIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2ZW50
IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZs
YWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtl
eVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNzZXMg
Ym90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0IHJl
bGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNv
ZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2FzZSA1
NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2Fz
ZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0g
ICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNr
KSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAg
ICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0
cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9u
S2V5TWFzaykgPT0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIDU0
OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21t
YW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1No
aWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQg
QWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2
MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAg
Kzc5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9rZXkgPSBrZXlGb3JLZXlFdmVudChldmVudCk7
CiAgICAgICAgIG1fY29kZSA9IGNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIG1fYXV0b1JlcGVhdCA9
IFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50
IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwog
ICAgICAgICBtX2lzS2V5cGFkID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgICAgIG1faXNT
eXN0ZW1LZXkgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFj
LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
bW0KaW5kZXggOTFjYmVkZDBjZGEwNzA2NWIzYmYzZjE3MDE1OGYxZDYyNzczMTgzZi4uNjRkODU0
YThlODRjODYyYTkwYWJkNDU3NWNlNjNlYmVlNGQyZWUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtNDIsNiArNDIsNyBAQAog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIC8vIEZJWE1FOiBUaGVyZSBh
cmUgcmVwYWludGluZyBwcm9ibGVtcyBkdWUgdG8gQXF1YSBzY3JvbGwgYmFyIGJ1dHRvbnMnIHZp
c3VhbCBvdmVyZmxvdy4KIApAQCAtMTM5LDE4ICsxNDAsMTUgQEAgc3RhdGljIFNjcm9sbGJhckJ1
dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVF
bmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoY29udHJvbFNpemUpIHsKICAgICBj
YXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6
ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGNhc2UgU21hbGxT
Y3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIH0KIAogdm9pZCBT
Y3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggMDI0NzJjOWE2
OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4uYjEwMDQxYjVlYjE3MmY0MzcyYzQwMDU1
YjE2OTk3YzEzOTRjMjNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHN0YXRpYyBOU1JlY3QgZm9jdXNSaW5nQ2xpcFJlY3Q7CiBzdGF0aWMgQk9PTCB0aGVtZVdp
bmRvd0hhc0tleUFwcGVhcmFuY2U7CkBAIC02NywxMSArNjgsOCBAQCAtIChOU1dpbmRvdyAqKXdp
bmRvdwogewogICAgIC8vIFVzaW5nIGRlZmVyOllFUyBwcmV2ZW50cyB1cyBmcm9tIHdhc3Rpbmcg
YW55IHdpbmRvdyBzZXJ2ZXIgcmVzb3VyY2VzIGZvciB0aGlzIHdpbmRvdywgc2luY2Ugd2UncmUg
bm90IGFjdHVhbGx5CiAgICAgLy8gZ29pbmcgdG8gZHJhdyBpbnRvIGl0LiBUaGUgb3RoZXIgYXJn
dW1lbnRzIG1hdGNoIHdoYXQgeW91IGdldCB3aGVuIGNhbGxpbmcgLVtOU1dpbmRvdyBpbml0XS4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzdGF0aWMgV2ViQ29yZVRo
ZW1lV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVUaGVtZVdpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCkKLSAgICAgICAgc3R5bGVN
YXNrOk5TVGl0bGVkV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrVGl0bGVkIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpZRVNdOwogICAgIHJldHVybiB3aW5kb3c7CiB9CiAKQEAgLTE0NCwxNSArMTQyLDEyIEBA
IFRoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKIAogc3RhdGljIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAg
ICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNp
emU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICBpZiAoZm9udFNp
emUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWlu
aTsKIH0KIAogc3RhdGljIExlbmd0aFNpemUgc2l6ZUZyb21OU0NvbnRyb2xTaXplKE5TQ29udHJv
bFNpemUgbnNDb250cm9sU2l6ZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvciwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMpCkBAIC0xNzUs
MTYgKzE3MCwxMyBAQCBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbUZvbnQoY29uc3QgRm9udENh
c2NhZGUmIGZvbnQsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZAogCiBzdGF0aWMgQ29udHJvbFNp
emUgY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4m
IHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChtaW5ab29tZWRT
aXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6
ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3IpICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0
KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwot
ICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tO
U1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5a
b29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNTbWFsbENv
bnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19j
YXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tRmFjdG9y
KQorICAgICAgICAmJiBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53
aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0
aCgpICogem9vbUZhY3RvcikKKyAgICAgICAgJiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4g
TlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldENvbnRyb2xTaXplKE5TQ2Vs
bCogY2VsbCwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNp
emUmIG1pblpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpCkBAIC00ODAsMTAgKzQ3Miw3IEBA
IHN0YXRpYyB2b2lkIHNldFVwQnV0dG9uQ2VsbChOU0J1dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTCiB7CiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUg
YmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFpbnRpbmcgaW50by4KICAgICBjb25zdCBz
dGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcyA9IGJ1dHRvblNpemVzKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFy
dCB8fCB6b29tZWRTaXplLmhlaWdodCgpID4gYnV0dG9uU2l6ZXMoKVtOU1JlZ3VsYXJDb250cm9s
U2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRTaXplLmhlaWdo
dCgpID4gYnV0dG9uU2l6ZXMoKVtOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSB7CiAgICAgICAgIC8vIFVzZSB0aGUgc3F1YXJlIGJ1dHRvbgogICAgICAgICBpZiAo
W2NlbGwgYmV6ZWxTdHlsZV0gIT0gTlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZSkKICAgICAg
ICAgICAgIFtjZWxsIHNldEJlemVsU3R5bGU6TlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZV07
CkBAIC01NzksMTUgKzU2OCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAz
PiYgc3RlcHBlclNpemVzKCkKIC8vIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNzIHRoYW4gdGhl
IGNvcnJlc3BvbmRpbmcgdGV4dCBmaWVsZCBoZWlnaHQsCiBzdGF0aWMgTlNDb250cm9sU2l6ZSBz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQu
cGl4ZWxTaXplKCk7CiAgICAgaWYgKGZvbnRTaXplID49IDE4KQotICAgICAgICByZXR1cm4gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsK
ICAgICBpZiAoZm9udFNpemUgPj0gMTMpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNp
emU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBO
U0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xT
dGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqKQpAQCAtNjAwLDE1ICs1
ODYsMTIgQEAgc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGRyYXdJbmZvLnN0YXRlID0gY29u
dmVydENvbnRyb2xTdGF0ZXNUb1RoZW1lRHJhd1N0YXRlKGtUaGVtZUluY0RlY0J1dHRvbiwgc3Rh
dGVzKTsKICAgICBkcmF3SW5mby5hZG9ybm1lbnQgPSBrVGhlbWVBZG9ybm1lbnREZWZhdWx0Owog
ICAgIENvbnRyb2xTaXplIGNvbnRyb2xTaXplID0gY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKHN0
ZXBwZXJTaXplcygpLCBJbnRTaXplKHpvb21lZFJlY3Quc2l6ZSgpKSwgem9vbUZhY3Rvcik7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xTaXplID09
IE5TU21hbGxDb250cm9sU2l6ZSkKKyAgICBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6
ZVNtYWxsKQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uU21hbGw7
Ci0gICAgZWxzZSBpZiAoY29udHJvbFNpemUgPT0gTlNNaW5pQ29udHJvbFNpemUpCisgICAgZWxz
ZSBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZU1pbmkpCiAgICAgICAgIGRyYXdJbmZv
LmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b25NaW5pOwogICAgIGVsc2UKICAgICAgICAgZHJhd0lu
Zm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIAogICAgIEludFJlY3QgcmVjdCh6b29tZWRSZWN0KTsKICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CkBAIC03NDksMTIgKzczMiw5IEBAIExlbmd0
aFNpemUgVGhlbWVNYWM6Om1pbmltdW1Db250cm9sU2l6ZShDb250cm9sUGFydCBwYXJ0LCBjb25z
dCBGb250Q2FzY2FkZSYgZm9uCiAgICAgICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICAgICAgICAg
IHJldHVybiBMZW5ndGhTaXplKExlbmd0aCgwLCBGaXhlZCksIExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KDE1ICogem9vbUZhY3RvciksIEZpeGVkKSk7CiAgICAgICAgIGNhc2UgSW5uZXJTcGluQnV0
dG9uUGFydDp7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAg
ICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU01pbmlDb250cm9sU2l6ZV07CisgICAg
ICAgICAgICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU0NvbnRyb2xTaXplTWluaV07
CiAgICAgICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZShMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pihi
YXNlLndpZHRoKCkgKiB6b29tRmFjdG9yKSwgRml4ZWQpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oYmFzZS5oZWlnaHQoKSAqIHpvb21GYWN0
b3IpLCBGaXhlZCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gVGhlbWU6Om1pbmltdW1Db250cm9s
U2l6ZShwYXJ0LCBmb250LCB6b29tRmFjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KaW5kZXggZDNiOWVlOThkZjk0MjBjY2Q3MTE2YjA0MDM1NjM4M2NmYzc0NmY5
MC4uYjQ4NjA2Y2I1YTc0NGQ4NzBiODYxOTM0MzY2Mjg5OGJhOWZmNGVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxWaWRlb0Vs
ZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0
Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtNzMsMTAgKzc0LDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdwogLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0KWNv
bnRlbnRSZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilhU3R5bGUgYmFja2luZzooTlNCYWNraW5n
U3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxhZwogewogICAgIFVOVVNFRF9Q
QVJBTShhU3R5bGUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6TlNC
b3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENv
bnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3MgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmZsYWddOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKIApAQCAtMTIyLDE1ICsxMjAsMTIgQEAgLSAoQk9PTClyZXNpZ25G
aXJzdFJlc3BvbmRlcgogCiAtIChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICop
ZXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBCbG9j
ayBhbGwgY29tbWFuZCBrZXkgZXZlbnRzIHdoaWxlIHRoZSBmdWxsc2NyZWVuIHdpbmRvdyBpcyB1
cC4KLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5
cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotICAg
IGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spKQorICAgIGlm
ICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSkK
ICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIHJl
dHVybiBZRVM7CiB9CiAKQEAgLTE0NSwxMSArMTQwLDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIKIAogLSAoaWQpaW5pdAogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dl
YlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01h
a2VSZWN0KDAsIDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCB3aW5kb3dXaWR0aCwg
d2luZG93SGVpZ2h0KSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBp
bml0V2l0aFdpbmRvdzp3aW5kb3ddOwogICAgIFt3aW5kb3cgc2V0RGVsZWdhdGU6c2VsZl07CiAg
ICAgW3dpbmRvdyByZWxlYXNlXTsKQEAgLTE4OCwyMCArMTc5LDE3IEBAIC0gKHZvaWQpa2V5RG93
bjooTlNFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICBjYXNlICcgJzoKICAgICAgICAgICAgICAg
ICBbc2VsZiB0b2dnbGVQbGF5aW5nOm5pbF07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKLSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNBbHRlcm5hdGVLZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAg
ICBbc2VsZiBzZXRWb2x1bWU6W3NlbGYgbWF4Vm9sdW1lXV07CiAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBpbmNyZW1lbnRWb2x1bWVdOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToK
LSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzZXRWb2x1
bWU6MF07CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBk
ZWNyZW1lbnRWb2x1bWVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC0zNzgsMTcgKzM2NiwxMSBAQCAtICh2b2lkKXdpbmRvd0RpZExvYWQKICAgICBbY29u
dGVudFZpZXcgYWRkU3VidmlldzpfdGltZWxpbmVdOwogCiAgICAgX2VsYXBzZWRUaW1lVGV4dCA9
IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZVRleHRG
aWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtf
ZWxhcHNlZFRpbWVUZXh0IHNldEFsaWdubWVudDpOU0xlZnRUZXh0QWxpZ25tZW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX2VsYXBzZWRUaW1lVGV4dCBzZXRBbGlnbm1l
bnQ6TlNUZXh0QWxpZ25tZW50TGVmdF07CiAgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X2Vs
YXBzZWRUaW1lVGV4dF07CiAKICAgICBfcmVtYWluaW5nVGltZVRleHQgPSBjcmVhdGVUaW1lVGV4
dEZpZWxkKE5TTWFrZVJlY3Qod2luZG93V2lkdGggLSB0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiAtIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0
RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX3Jl
bWFpbmluZ1RpbWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAg
W2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X3JlbWFpbmluZ1RpbWVUZXh0XTsKIAogICAgIFt3aW5k
b3cgcmVjYWxjdWxhdGVLZXlWaWV3TG9vcF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQppbmRleCA0NTk4YTAzZWQyZmEzMjE1MGU2NGFm
OWNiYjY0NTk5NDY5ZmRkZjc3Li43ZGU1ZWI1MzdjN2ZhMDIzNTIyYmNlZjY4MzMyM2IyNTg0ZWNj
NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5p
bWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmlt
YXRpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zOCwxMCArMzksNyBAQCBzdGF0aWMg
Y29uc3QgQ0dGbG9hdCBzbG93TW90aW9uRmFjdG9yID0gMTA7CiAKIHN0YXRpYyBOU1RpbWVJbnRl
cnZhbCBXZWJXaW5kb3dBbmltYXRpb25EdXJhdGlvbkZyb21EdXJhdGlvbihOU1RpbWVJbnRlcnZh
bCBkdXJhdGlvbikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBy
ZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlN
YXNrKSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1v
ZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSA/IGR1cmF0aW9uICogc2xv
d01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwogfQogCiBzdGF0aWMgTlNSZWN0IHNjYWxlZFJlY3Qo
TlNSZWN0IF9pbml0aWFsRnJhbWUsIE5TUmVjdCBfZmluYWxGcmFtZSwgQ0dGbG9hdCBmYWN0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggM2VkZGMw
M2U0ZDhlOWY2MzUxN2M1MjcxZjIwMWI1Njc4MjJiOTAyOC4uODU3NjQyMzUyM2E5MGM4YTUyNTE4
MDU0YWQ5MmI1MTQ0ZjQxOTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtODEsNiArODEsNyBAQAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgog
I2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNpbXBvcnQgPG1hdGguaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgRU5BQkxFKE1FVEVS
X0VMRU1FTlQpCiAjaW1wb3J0ICJSZW5kZXJNZXRlci5oIgpAQCAtMzc5LDIyICszODAsMTMgQEAg
dm9pZCBSZW5kZXJUaGVtZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENT
U1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm8KICAgICAgICAgICAgIGZvbnROYW1lID0gQXRvbWljU3Ry
aW5nKCItYXBwbGUtc3RhdHVzLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNaW5p
Q29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAg
IGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZv
ckNvbnRyb2xTaXplOk5TTWluaUNvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0Zv
bnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplTWluaV1dOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0
ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF1dOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDb250cm9sOgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lz
dGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNSZWd1
bGFyQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1bGFyXV07CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZv
bnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZV1dOwpAQCAtNzc3LDMwICs3NjksMjQgQEAg
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvKSBjb25zdAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVG
b3JGb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpbnQgZm9udFNp
emUgPSBzdHlsZS5mb250U2l6ZSgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGlmIChmb250U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRy
b2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZv
bnRTaXplID49IDExKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJl
dHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6
ZU1pbmk7CiB9CiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9y
Q2VsbChOU0NlbGwqLCBjb25zdCBJbnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6
ZSwgZmxvYXQgem9vbUxldmVsKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXpl
c1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21MZXZlbCkKLSAgICAgICAgJiYg
bWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tTGV2ZWwpCisgICAgICAg
ICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xT
aXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVJlZ3VsYXI7CiAKLSAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0
PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxldmVsKQotICAg
ICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFs
bENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1Nt
YWxsQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lkdGgoKSAqIHpvb21MZXZlbCkKKyAgICAg
ICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJv
bFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVNtYWxsOwogCi0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAog
dm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBJ
bnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSwgZmxvYXQgem9vbUxldmVsKQpA
QCAtODU3LDE1ICs4NDMsMTIgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250
cm9sU2l6ZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmIHN0eWxlLAogCiBOU0NvbnRyb2xT
aXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0gICAgaWYgKGZvbnRTaXpl
ID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9s
U2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAoZm9u
dFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250
cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250
cm9sU2l6ZVJlZ3VsYXJdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7Cisg
ICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpO
U0NvbnRyb2xTaXplU21hbGxdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOwor
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6
cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiByKQpAQCAtMTE0NywxMCArMTEzMCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50UHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgY29uc3QgYXV0byYgcmVuZGVyUHJvZ3Jlc3MgPSBkb3du
Y2FzdDxSZW5kZXJQcm9ncmVzcz4ocmVuZGVyT2JqZWN0KTsKICAgICBISVRoZW1lVHJhY2tEcmF3
SW5mbyB0cmFja0luZm87CiAgICAgdHJhY2tJbmZvLnZlcnNpb24gPSAwOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU1JlZ3VsYXJD
b250cm9sU2l6ZSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoY29udHJv
bFNpemUgPT0gTlNDb250cm9sU2l6ZVJlZ3VsYXIpCiAgICAgICAgIHRyYWNrSW5mby5raW5kID0g
cmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBrVGhlbWVMYXJnZUluZGV0ZXJtaW5hdGVC
YXIgOiBrVGhlbWVMYXJnZVByb2dyZXNzQmFyOwogICAgIGVsc2UKICAgICAgICAgdHJhY2tJbmZv
LmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZU1lZGl1bUluZGV0
ZXJtaW5hdGVCYXIgOiBrVGhlbWVNZWRpdW1Qcm9ncmVzc0JhcjsKQEAgLTE0MzgsMTUgKzE0MTgs
MTIgQEAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgUmVuZGVyVGhlbWVNYWM6OnBvcHVw
TWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICBOU1BvcFVwQnV0dG9uQ2VsbCogcG9w
dXBCdXR0b24gPSB0aGlzLT5wb3B1cEJ1dHRvbigpOwogICAgIE5TQ29udHJvbFNpemUgc2l6ZSA9
IGNvbnRyb2xTaXplRm9yQ2VsbChwb3B1cEJ1dHRvbiwgcG9wdXBCdXR0b25TaXplcygpLCByZWN0
LnNpemUoKSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICBzd2l0Y2ggKHNpemUpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TUmVndWxhckNvbnRy
b2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVJlZ3VsYXI6CiAgICAgICAgIHJldHVybiBQ
b3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsKLSAgICBjYXNlIE5TU21hbGxDb250
cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVTbWFsbDoKICAgICAgICAgcmV0dXJuIFBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw7Ci0gICAgY2FzZSBOU01pbmlDb250cm9s
U2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVNaW5pOgogICAgICAgICByZXR1cm4gUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU5vcm1hbDsKICAgICB9CkBAIC0yMDU1LDEyICsyMDMyLDkgQEAgTlNTbGlkZXJDZWxsKiBS
ZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJIb3Jpem9udGFsKCkgY29uc3QKIHsKICAgICBpZiAo
IW1fc2xpZGVyVGh1bWJIb3Jpem9udGFsKSB7CiAgICAgICAgIG1fc2xpZGVyVGh1bWJIb3Jpem9u
dGFsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxvY10gaW5pdF0pOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwu
Z2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRlclRo
dW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdOwor
ICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1Ns
aWRlclR5cGVMaW5lYXJdOworICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkg
c2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1
bWJIb3Jpem9udGFsLmdldCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJp
b3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIHJldHVybiBt
X3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKTsKQEAgLTIwNzAsMTEgKzIwNDQsOCBAQCBOU1Ns
aWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYlZlcnRpY2FsKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fc2xpZGVyVGh1bWJWZXJ0aWNhbCkgewogICAgICAgICBtX3NsaWRlclRodW1i
VmVydGljYWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0XSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRlclRodW1iVmVydGlj
YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRl
clRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0
aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFtt
X3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRGb2N1c1JpbmdU
eXBlOk5TRm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXggZjJhMzU5NzNhNzFlMDY4
MjYwYTkxYzk2N2QyOTA1MGQyZWRlNzYwZC4uYTY5ZjZmMWZhNTBhOWE0YWRkODYzZjQ3OTViYzFk
NzEyZjBiYTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW0KQEAgLTc2LDYgKzc2LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RF
eHRyYXMuaCIKQEAgLTE3MywxMyArMTc0LDE0IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93
UmVmOihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAK
ICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBzdHlsZSBtYXNrLgogICAgIHN0eWxlTWFz
ayA9IFdLQ2FyYm9uV2luZG93TWFzaygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRl
KSBzdHlsZU1hc2sgfD0gTlNDbG9zYWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0F0dHJp
YnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKSBzdHlsZU1hc2sgfD0gTlNSZXNpemFi
bGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBz
ZSkgc3R5bGVNYXNrIHw9IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5k
b3dGZWF0dXJlcyAmIGtXaW5kb3dIYXNUaXRsZUJhcikgc3R5bGVNYXNrIHw9IE5TVGl0bGVkV2lu
ZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAod2luZG93QXR0
cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0dHJpYnV0ZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9
IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBr
V2luZG93UmVzaXphYmxlQXR0cmlidXRlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dT
dHlsZU1hc2tSZXNpemFibGU7CisgICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0NhbkNv
bGxhcHNlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6
YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpCisgICAg
ICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZDsKIAogICAgIG9zU3RhdHVz
ID0gR2V0V2luZG93TW9kYWxpdHkoX3dpbmRvd1JlZiwgJndpbmRvd01vZGFsaXR5LCBOVUxMKTsK
ICAgICBpZiAob3NTdGF0dXMgIT0gbm9FcnIpIHsKQEAgLTM5MywxOCArMzk1LDEyIEBAIC0gKHZv
aWQpc2VuZFN1cGVyRXZlbnQ6KE5TRXZlbnQgKilpbkV2ZW50IHsKICAgICAvLyBJZ25vcmUgc29t
ZSB1bmtub3duIGV2ZW50IHRoYXQgZ2V0cyBzZW50IHdoZW4gTlNUZXh0Vmlld3MgaW4gcHJpbnRp
bmcgYWNjZXNzb3J5IHZpZXdzIGFyZSBmb2N1c2VkLiAgTS5QLiBOb3RpY2UgLSAxMi83LzAwCiAg
ICAgQk9PTCBpZ25vcmVFdmVudCA9IE5POwogICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IFtp
bkV2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
IChldmVudFR5cGU9PU5TU3lzdGVtRGVmaW5lZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZpbmVkKSB7CiAg
ICAgICAgIHNob3J0IGV2ZW50U3VidHlwZSA9IFtpbkV2ZW50IHN1YnR5cGVdOwotICAgICAgICBp
ZiAoZXZlbnRTdWJ0eXBlPT03KSB7CisgICAgICAgIGlmIChldmVudFN1YnR5cGUgPT0gNykgewog
ICAgICAgICAgICAgaWdub3JlRXZlbnQgPSBZRVM7CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBOU0tleURv
d24pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICB9IGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAgICAgICAgLy8gSGFuZGxlIGNvbW1hbmQt
c3BhY2UgYXMgW05TQXBwIHNlbmRFdmVudDpdIGRvZXMuCiAgICAgICAgIGlmIChbTlNJbnB1dENv
bnRleHQgcHJvY2Vzc0lucHV0S2V5QmluZGluZ3M6aW5FdmVudF0pIHsKICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KaW5kZXggZWFkNTkzNjk2ZDRiOWE5NzY2YTNjYmNl
MDNlYWQ2ZWFmZDA3OTU3OS4uNmQwNmM3MDEwYzUyYjgxZDUzMTUxZTE4NTJkNDE0NDFiOTEyOWQ5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvSWRlbnRpZmllclJlcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVy
Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBleHRlcm4gIkMiIHsKICNpbXBvcnQg
IldlYktpdFBsdWdpbkhvc3QuaCIKQEAgLTIzMCwxMCArMjMxLDcgQEAgdm9pZCBOZXRzY2FwZVBs
dWdpbkhvc3RQcm94eTo6YmVnaW5Nb2RhbCgpCiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2lu
ZG93KTsKICAgICBBU1NFUlQoIW1fYWN0aXZhdGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRv
cHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFz
ayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgbV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0TlMoW1tX
ZWJQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFr
ZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAKICAgICBtX2FjdGl2
YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25XaWxsQmVjb21lQWN0aXZlTm90aWZpY2F0aW9u
IG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ0Jsb2NrOl4oTlNO
b3RpZmljYXRpb24gKil7IGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7IH1dOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDFiNGQzYTk2ZmE5YWU3YTE3N2U0NTEyZjQ1NjQx
ZGFhMjQzN2Q0YzkuLmFhMGRmNTQyNGE0MjZmZDNhZDc4MzQzNDZjZDdiMmFkNGMyOTU1MzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTY2LDYgKzY2LDcgQEAKICNpbXBvcnQg
PHV0aWxpdHk+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9S
ZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBleHRl
cm4gIkMiIHsKQEAgLTQ2NSwxNSArNDY2LDEyIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5OjpzeW50aGV0aWNLZXlEb3duV2l0aENvbW1hbmRNb2RpZmllcihpbnQga2V5Q29kCiB7
CiAgICAgTlNEYXRhICpjaGFyYWN0ZXJzRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczomY2hh
cmFjdGVyIGxlbmd0aDoxXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgIF9XS1BIUGx1Z2luSW5zdGFuY2VLZXlib2FyZEV2ZW50KG1fcGx1Z2luSG9zdFByb3h5LT5w
b3J0KCksIG1fcGx1Z2luSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBOUENvY29hRXZlbnRLZXlEb3duLCBOU0NvbW1hbmRLZXlN
YXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtl
eURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KFtjaGFyYWN0ZXJzRGF0YSBieXRlc10pKSwgW2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0s
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFtjaGFyYWN0ZXJzRGF0YSBieXRlc10pKSwg
W2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZhbHNlLCBrZXlDb2RlLCBjaGFyYWN0ZXIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZmxhZ3NDaGFu
Z2VkKE5TRXZlbnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDM3
NjY3MmI2ODY3MzdjNzczZWRjNmRmNjg0YjI4Nzk4Mjk2NGY1NDEuLmRmYzhjY2E3MjgyNDhhODk2
YTgxM2U2Zjc5MjQyYzA5NDJiMjVjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0K
QEAgLTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3
dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNDQzLDEwICs0NDQs
NyBAQCAtICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVjdAogewogICAgIGlmIChfY2FjaGVkU25h
cHNob3QpIHsKICAgICAgICAgTlNSZWN0IHNvdXJjZVJlY3QgPSB7IE5TWmVyb1BvaW50LCBbX2Nh
Y2hlZFNuYXBzaG90LmdldCgpIHNpemVdIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgICAgIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgZHJhd0luUmVjdDpbc2VsZiBi
b3VuZHNdIGZyb21SZWN0OnNvdXJjZVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3Zl
ciBmcmFjdGlvbjoxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW19j
YWNoZWRTbmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291
cmNlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rp
b246MV07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2Nv
YS5tbQppbmRleCBhMWQxNTlhZjk0ZTE0ODlhNDhiMDk5MjEwOGQwM2YzOTgwNWYyOTk2Li45YzUy
MDFmZTYyZDI2M2JkMzVlYjVlNzFkNGEzNzAxYWFhOTE3ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNvY29hLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaCIKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgogI2ltcG9ydCA8d3Rm
L1ZlY3Rvci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OldlYk5ldHNjYXBl
UGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EoV2ViTmV0c2NhcGVQbHVnaW5WaWV3KiBwbHVnaW5WaWV3
KQogICAgIDogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIocGx1Z2luVmlldykKQEAgLTE2
MSwxMCArMTYyLDcgQEAgdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpz
eW50aGV0aWNLZXlEb3duV2l0aENvbW1hbmRNb2RpZmllcihpbnQKICAgICAKICAgICBOUENvY29h
RXZlbnQgZXZlbnQ7CiAgICAgaW5pdGlhbGl6ZUV2ZW50KCZldmVudCwgTlBDb2NvYUV2ZW50S2V5
RG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgZXZlbnQuZGF0
YS5rZXkubW9kaWZpZXJGbGFncyA9IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgZXZlbnQuZGF0YS5rZXkubW9kaWZpZXJGbGFncyA9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIGV2ZW50LmRhdGEua2V5LmtleUNvZGUgPSBrZXlDb2Rl
OwogICAgIGV2ZW50LmRhdGEua2V5LmlzQVJlcGVhdCA9IGZhbHNlOwogICAgIGV2ZW50LmRhdGEu
a2V5LmNoYXJhY3RlcnMgPSAoTlBOU1N0cmluZyAqKWNoYXJhY3RlcnMuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KaW5kZXggYzQ2
NjcwYjRkNzlkOGNlODRmYmQ0MTE1OGZiNzMwODBhZTgwNDc5Yi4uNzlmMjhmYjgyY2I3ZmQ5Mzlj
ZDMzMjM0ZWM0N2VjMDM5NjZlZTUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9Qb3B1cE1lbnVDbGllbnQuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMv
QXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIApAQCAtOTAsMTcgKzkxLDExIEBAIHZvaWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgp
CiAgICAgICAgIH0KIAogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+
IHBhcmFncmFwaFN0eWxlID0gYWRvcHROUyhbW05TUGFyYWdyYXBoU3R5bGUgZGVmYXVsdFBhcmFn
cmFwaFN0eWxlXSBtdXRhYmxlQ29weV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0
aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBz
ZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNUZXh0QWxpZ25tZW50TGVm
dCA6IE5TVGV4dEFsaWdubWVudFJpZ2h0XTsKICAgICAgICAgTlNXcml0aW5nRGlyZWN0aW9uIHdy
aXRpbmdEaXJlY3Rpb24gPSBzdHlsZS50ZXh0RGlyZWN0aW9uKCkgPT0gTFRSID8gTlNXcml0aW5n
RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAg
ICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndyaXRpbmdEaXJl
Y3Rpb25dOwogICAgICAgICBpZiAoc3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCkpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFJldGFpblB0
cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVyIGFs
bG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TVGV4dFdyaXRpbmdEaXJl
Y3Rpb25PdmVycmlkZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtb
TlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0
aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PiB3
cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhP
YmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1ZS5nZXQoKSwgbmlsXSk7CiAgICAgICAgICAgICBb
YXR0cmlidXRlcyBzZXRPYmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpO
U1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1lXTsKICAgICAgICAgfQpAQCAtMjA2LDE4ICsy
MDEsMTUgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVW
aWV3KiB2LCBpbnQgaW5kZXgpCiAKICAgICBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplOwogICAg
IHN3aXRjaCAobV9jbGllbnQtPm1lbnVTdHlsZSgpLm1lbnVTaXplKCkpIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1l
bnVTaXplTm9ybWFsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TUmVndWxhckNvbnRyb2xTaXpl
OworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAg
ICAgIGNvbnRyb2xTaXplID0gTlNTbWFsbENvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6
ZSA9IE5TQ29udHJvbFNpemVTbWFsbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNNaW5p
Q29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZU1pbmk7CiAg
ICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAg
IFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyKSksIGR1bW15Vmll
dy5nZXQoKSwgaW5kZXgsIHRvTlNGb250KGZvbnQpLCBjb250cm9sU2l6ZSwgIW1fY2xpZW50LT5t
ZW51U3R5bGUoKS5oYXNEZWZhdWx0QXBwZWFyYW5jZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KaW5kZXgg
OTE0ZDhlMDYzZThlYjBmY2E5ZWFlOWQ3YmJiYzgxZjYxYjdiODhkNi4uYTM5YjkzZTc3ZTI2YTY0
MzNiOTI4ODhmMTkzM2EwOTk1NTE1YzYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KQEAgLTYwLDYgKzYw
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1VSTC5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTVByaXZhdGUuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMjY5LDEwICsyNzAsNyBAQCB2b2lkIFdlYkNv
bnRleHRNZW51Q2xpZW50OjpzaG93Q29udGV4dE1lbnUoKQogCiAgICAgTlNWaWV3KiB2aWV3ID0g
ZnJhbWVWaWV3LT5kb2N1bWVudFZpZXcoKTsKICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmll
dy0+Y29udGVudHNUb1dpbmRvdyhwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5oaXRUZXN0
UmVzdWx0KCkucm91bmRlZFBvaW50SW5Jbm5lck5vZGVGcmFtZSgpKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxh
Z3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVy
XSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlRG93biBsb2NhdGlvbjpwb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3dd
IHdpbmRvd051bWJlcl0gY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNz
dXJlOjFdOwogCiAgICAgLy8gU2hvdyB0aGUgY29udGV4dHVhbCBtZW51IGZvciB0aGlzIGV2ZW50
LgogICAgIGJvb2wgaXNTZXJ2aWNlc01lbnU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDExNDc2YTAz
Mjc2ZWRkOTRlNzU1NTEzOTMwYWI0NjE5YmNlZGY5NTMuLjAyN2U1NGI3MzdlYWViMDc4YTE2ZjBl
ZmQ2ZWU4ZGJlYzgzZjM0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNDYsNiArMTQ2LDggQEAK
ICNpbXBvcnQgIldlYktpdFZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldlYk1haWxEZWxlZ2F0
ZS5oIgogI2ltcG9ydCAiV2ViVUlLaXREZWxlZ2F0ZS5oIgorI2Vsc2UKKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBVU0Uo
UVVJQ0tfTE9PSykKQEAgLTE1NjEsMTcgKzE1NjMsMTQgQEAgTlNEaWN0aW9uYXJ5ICpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6YWN0aW9uRGljdGlvbmFyeShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBh
Y3QKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IFVJRXZlbnRXaXRoS2V5U3RhdGUqIGtl
eVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUoY29uc3RfY2FzdDxFdmVudCo+KGV2
ZW50KSk7CiAgICAgaWYgKGtleVN0YXRlRXZlbnQgJiYga2V5U3RhdGVFdmVudC0+aXNUcnVzdGVk
KCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgaWYgKGtl
eVN0YXRlRXZlbnQtPmN0cmxLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlND
b250cm9sS2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2w7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKSkKLSAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAgICAgICBp
ZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdTaGlmdDsKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFLZXkoKSkK
LSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgfQogI2Vsc2UKICAgICAvLyBObyBtb2RpZmllciBm
bGFncyBvbiBpT1MgcmlnaHQgbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggOTA3ODdkNjIwYjM4MWU1Mzhj
N2IxYWRkYzc2ZjJkMjljNTkzMjIwOS4uNzZiMmNkMmNiZjEwYjIwYTM5OTNjMmYzZjdiNzE5Y2Jl
N2E1ODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNTMsNiArNTMsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTUV4dGVuc2lvbnMuaD4K
ICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQu
aD4KIAogU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVG
cmFtZXdvcmtzLCBBKQpAQCAtMTkxLDEwICsxOTIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50OjphdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wgYXZhaWxhYmxlKQogCiBi
b29sIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpjYW5BdHRhY2goKQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250
cm9sbGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TRnVsbFNjcmVlbldpbmRvd01hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtbbV9mcm9udGVuZFdpbmRvd0NvbnRy
b2xsZXIgd2luZG93XSBzdHlsZU1hc2tdICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2NyZWVuKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gY2FuQXR0YWNoV2luZG93KCk7CkBA
IC00NjUsMTAgKzQ2Myw3IEBAIC0gKE5TV2luZG93ICopd2luZG93CiAgICAgaWYgKHdpbmRvdykK
ICAgICAgICAgcmV0dXJuIHdpbmRvdzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNrIHwgTlND
bG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TUmVzaXph
YmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNVSW50ZWdlciBzdHlsZU1hc2sgPSBOU1dpbmRv
d1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dpbmRvd1N0
eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUgfCBOU1dp
bmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXc7CiAgICAgd2luZG93ID0gW1tOU1dpbmRv
dyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIGluaXRpYWxXaW5k
b3dXaWR0aCwgaW5pdGlhbFdpbmRvd0hlaWdodCkgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0RGVsZWdh
dGU6c2VsZl07CiAgICAgW3dpbmRvdyBzZXRNaW5TaXplOk5TTWFrZVNpemUobWluaW11bVdpbmRv
d1dpZHRoLCBtaW5pbXVtV2luZG93SGVpZ2h0KV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4IDAyYTc1NmY3Njc3MzE1YzYy
MmRkODFkOTlhMjlmYWMzZmI1YmY5ZTIuLjY2N2IyYzVhNTQ0N2FhZTQ2YTVlNjA3YzU3NDE0NDAy
NzJiNDYyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJO
b2RlSGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJO
b2RlSGlnaGxpZ2h0Lm1tCkBAIC0zOSw2ICszOSw4IEBACiAjaW1wb3J0ICJXZWJWaWV3LmgiCiAj
aW1wb3J0IDxXZWJDb3JlL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0FLV2lu
ZG93Lmg+CisjZWxzZQorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05MSwxMCAr
OTMsNyBAQCAtIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5z
cGVjdG9yQ29udHJvbGxlcjooSW5zcGVjdG9yQ29udAogICAgIF9pbnNwZWN0b3JDb250cm9sbGVy
ID0gaW5zcGVjdG9yQ29udHJvbGxlcjsKIAogI2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaW50IHN0eWxlTWFzayA9IE5TQm9yZGVybGVz
c1dpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaW50IHN0eWxl
TWFzayA9IE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzczsKICAgICBOU1JlY3QgY29udGVudFJl
Y3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JGcmFtZVJlY3Q6W3NlbGYgX2NvbXB1dGVIaWdo
bGlnaHRXaW5kb3dGcmFtZV0gc3R5bGVNYXNrOnN0eWxlTWFza107CiAgICAgX2hpZ2hsaWdodFdp
bmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qg
c3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dOwogICAgIFtfaGlnaGxpZ2h0V2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBj
bGVhckNvbG9yXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCmlu
ZGV4IDVlYzE5Nzg1ZGE3Mjk3YjFhMjQ0YzU3NjMyMDcwYzRiZGU5NDZiMDUuLjViODY3MTU0MGU2
ZjhhMTIzMWVjZTFmNTQ5NDRiMTU4ODkzNzRiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC04Myw2ICs4Myw3IEBACiAjZWxzZQogI2ltcG9ydCAiV2Vi
TlNQYXN0ZWJvYXJkRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJOU1dpbmRvd0V4dHJhcy5oIgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjZW5kaWYK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05MTUsOSArOTE2LDcgQEAgLSAodm9pZClr
ZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgQk9PTCBjYWxsU3VwZXIgPSBZRVM7CiAgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIEJPT0wgbWFpbnRhaW5z
QmFja0ZvcndhcmRMaXN0ID0gY29yZUZyYW1lICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlz
dCo+KGNvcmVGcmFtZS0+cGFnZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+ZW5hYmxlZCgp
ID8gWUVTIDogTk87Ci0gICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisK
ICAgICBjb3VudCA9IFtjaGFyYWN0ZXJzIGxlbmd0aF07CiAgICAgZm9yIChpbmRleCA9IDA7IGlu
ZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgc3dpdGNoIChbY2hhcmFjdGVycyBjaGFy
YWN0ZXJBdEluZGV4OmluZGV4XSkgewpAQCAtOTI4LDcgKzkyNyw3IEBAIC0gKHZvaWQpa2V5RG93
bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAv
LyBUaGlzIG9kZCBiZWhhdmlvciBtYXRjaGVzIHNvbWUgZXhpc3RpbmcgYnJvd3NlcnMsCiAgICAg
ICAgICAgICAgICAgLy8gaW5jbHVkaW5nIFdpbmRvd3MgSUUKLSAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpIHsKICAgICAgICAgICAgICAg
ICAgICAgW3NlbGYgX2dvRm9yd2FyZF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgX2dvQmFja107CkBAIC05NDMsNyArOTQyLDcgQEAgLSAodm9p
ZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBl
ciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spIHsKKyAg
ICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlm
dCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdl
RG93bjpuaWxdOwpAQCAtOTg0LDcgKzk4Myw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRl
ZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2Uu
Ci0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBO
U0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYg
KE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkg
ewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTk5OCw5ICs5OTcsOSBAQCAtICh2b2lk
KWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBb
c2VsZiBzY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VVcDpuaWxdOwogICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbExp
bmVVcDpuaWxdOwpAQCAtMTAwOSw3ICsxMDA4LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVu
dCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TRG93
bkFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNo
aWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hh
bmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNr
IHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC0xMDIzLDkgKzEwMjIsOSBAQCAt
ICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAg
ICAgICBbc2VsZiBzY3JvbGxUb0VuZE9mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VEb3duOm5pbF07CiAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xs
TGluZURvd246bmlsXTsKQEAgLTEwMzQsMTIgKzEwMzMsMTIgQEAgLSAodm9pZClrZXlEb3duOihX
ZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IE5TTGVmdEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFu
ZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZl
IGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRL
ZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFn
Q29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
Ly8gQ2hlY2sgYmFjay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICghbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKQEAgLTEwNTIsNyArMTA1MSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVu
dAogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5
TWFzaykgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRN
b2RpZmllckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdl
SG9yaXpvbnRhbGx5OllFU107CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBbc2VsZiBfc2Nyb2xsTGluZUhvcml6b250YWxseTpZRVNdOwpAQCAt
MTA2MiwxMiArMTA2MSwxMiBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNSaWdodEFycm93RnVuY3Rp
b25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29u
dHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgotICAgICAg
ICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlNDb250cm9s
S2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU0V2ZW50
TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgYmFjay9mb3J3
YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
Q29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbWFp
bnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsU3Vw
ZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEwODAsNyArMTA3
OSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
ICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAg
ICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24p
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdlSG9yaXpvbnRhbGx5Ok5PXTsK
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtz
ZWxmIF9zY3JvbGxMaW5lSG9yaXpvbnRhbGx5Ok5PXTsKQEAgLTEwOTAsNyArMTA4OSw2IEBAIC0g
KHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIGlmIChj
YWxsU3VwZXIpIHsKICAgICAgICAgW3N1cGVyIGtleURvd246ZXZlbnRdOwogICAgIH0gZWxzZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250
cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJv
bGxlci5tbQppbmRleCA5ZmQ5NTY2MTdmMDdjNmNmNmY0ODU3Y2M5ZTIyMTQwYjIxODhiMmU0Li5m
NTQzNDFmZGJiNGU0ZDNjZWQ5ZGVkMTYzZjE4NDMyYjA0NmQ5YjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTQ3
LDYgKzQ3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViV2luZG93QW5pbWF0aW9uLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtODYsMTEgKzg3LDggQEAgQGltcGxlbWVudGF0
aW9uIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyCiAjcHJhZ21hIG1hcmsgSW5pdGlhbGl6YXRpb24K
IC0gKGlkKWluaXQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAv
LyBEbyBub3QgZGVmZXIgd2luZG93IGNyZWF0aW9uLCB0byBtYWtlIHN1cmUgLXdpbmRvd051bWJl
ciBpcyBjcmVhdGVkIChuZWVkZWQgYnkgV2ViV2luZG93U2NhbGVBbmltYXRpb24pLgotICAgIE5T
V2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TQ2xvc2FibGVXaW5kb3dNYXNrIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZUZ1bGxTY3JlZW5X
aW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6TlNX
aW5kb3dTdHlsZU1hc2tDbG9zYWJsZSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6Tk9dOwogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsKICAgICBb
d2luZG93IHJlbGVhc2VdOwogICAgIGlmICghc2VsZikKQEAgLTQ2MiwxMCArNDYwLDcgQEAgLSAo
dm9pZClfc3dhcFZpZXc6KE5TVmlldyopdmlldyB3aXRoOihOU1ZpZXcqKW90aGVyVmlldwogCiBz
dGF0aWMgUmV0YWluUHRyPE5TV2luZG93PiBjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRv
dyhOU1JlY3QgZnJhbWUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6ZnJhbWUgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6
TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW3dpbmRvdyBzZXRPcGFxdWU6
WUVTXTsKICAgICBbd2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBibGFja0NvbG9y
XV07CiAgICAgW3dpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNTVmMWFlMmQ0NThmNTYxMzk1ZmMzMjZh
YWNiYzYwZjRkYjMyMTNjNC4uMDg0ZmU0NTU3ZTdhYjg1MzQzN2FjYzUxZTllMjc4N2FmZmE1MGMx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xNDAsMTIg
KzE0MCwxMyBAQAogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogI2lmICFQTEFURk9STShJT1Mp
CisjaW1wb3J0ICJXZWJOU0V2ZW50RXh0cmFzLmgiCisjaW1wb3J0ICJXZWJOU1Bhc3RlYm9hcmRF
eHRyYXMuaCIKICNpbXBvcnQgPEFwcEtpdC9OU0FjY2Vzc2liaWxpdHkuaD4KICNpbXBvcnQgPEFw
cGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9OU01lbnVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMu
aD4KLSNpbXBvcnQgIldlYk5TRXZlbnRFeHRyYXMuaCIKLSNpbXBvcnQgIldlYk5TUGFzdGVib2Fy
ZEV4dHJhcy5oIgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAjZW5kaWYKIAogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CkBAIC0x
MzUxLDEyICsxMzUyLDkgQEAgLSAodm9pZClfcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJk
OihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkCiAKIC0gKHZvaWQpX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6KE5TRXZlbnQgKilmbGFnc0NoYW5nZWRFdmVudAog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246
ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVh
bQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1v
dXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQogICAgICAgICBtb2RpZmllckZsYWdzOmZs
YWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1wOmZsYWdzQ2hhbmdlZEV2ZW50
LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93TnVtYmVyCiAg
ICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3Vy
ZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbc2VsZiBtb3VzZU1vdmVk
OmZha2VFdmVudF07CiB9CiAKQEAgLTE1MDYsMTAgKzE1MDQsNyBAQCAtICh2b2lkKV9zZXRNb3Vz
ZURvd25FdmVudDooV2ViRXZlbnQgKilldmVudAogI2VuZGlmCiB7CiAjaWYgIVBMQVRGT1JNKElP
UykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoIWV2ZW50
IHx8IFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5T
UmlnaHRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TT3RoZXJNb3VzZURvd24pOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVPdGhlck1v
dXNlRG93bik7CiAjZWxzZQogICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9PSBXZWJF
dmVudE1vdXNlRG93bik7CiAjZW5kaWYKQEAgLTE2NjEsMTYgKzE2NTYsMTcgQEAgLSAoaWQpX2Jy
aWRnZQogCiAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50CiB7CisgICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TW91c2VNb3ZlZAorICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQogI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKLSAgICAgICAgbG9jYXRpb246W1tzZWxm
IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAg
ICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1
cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGlt
ZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dOdW1iZXI6W1tzZWxm
IHdpbmRvd10gd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAg
ZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAKICAgICBbc2VsZiBfdXBkYXRlTW91c2VvdmVyV2l0aEV2ZW50OmZha2VF
dmVudF07CiB9CkBAIC0xODY4LDExICsxODY0LDggQEAgLSAoQk9PTClfaW5zaWRlQW5vdGhlckhU
TUxWaWV3CiAjaWYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBCT09MIGlzUXVpY2tMb29rRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgY29uc3QgaW50IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJlbGVh
c2VkID0gOTsKLSAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TU3lzdGVtRGVmaW5lZCAmJiBb
ZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9u
UmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVN5c3RlbURl
ZmluZWQgJiYgW2V2ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlD
b21iaW5hdGlvblJlbGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0gJ2xrdXAnOwogfQogI2VuZGlm
CiAKQEAgLTE5MjgsMTQgKzE5MjEsMTEgQEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClw
b2ludAogICAgIGVsc2UgewogICAgICAgICAvLyBGSVhNRTogV2h5IGRvZXNuJ3QgdGhpcyBpbmNs
dWRlIG1vdXNlIGVudGVyZWQvZXhpdGVkIGV2ZW50cywgb3Igb3RoZXIgbW91c2UgYnV0dG9uIGV2
ZW50cz8KICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbW3NlbGYgd2luZG93XSBjdXJyZW50RXZl
bnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXB0dXJl
SGl0c09uU3Vidmlld3MgPSAhKFtldmVudCB0eXBlXSA9PSBOU01vdXNlTW92ZWQKLSAgICAgICAg
ICAgIHx8IFtldmVudCB0eXBlXSA9PSBOU1JpZ2h0TW91c2VEb3duCi0gICAgICAgICAgICB8fCAo
W2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNDb250cm9sS2V5TWFzaykgIT0gMCkKLSAgICAgICAgICAgIHx8IFtldmVudCB0eXBlXSA9
PSBOU0ZsYWdzQ2hhbmdlZAorICAgICAgICBjYXB0dXJlSGl0c09uU3Vidmlld3MgPSAhKFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgIHx8IFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCisgICAgICAgICAgICB8fCAoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiBbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKKyAgICAgICAgICAgIHx8IFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZAogICAgICAgICAgICAgfHwgaXNRdWlja0xv
b2tFdmVudChldmVudCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAog
ICAgIGlmICghY2FwdHVyZUhpdHNPblN1YnZpZXdzKSB7CkBAIC0yMDIzLDkgKzIwMTMsNyBAQCAt
ICh2b2lkKV9yZW1vdmVUcmFja2luZ1JlY3RzOihOU1RyYWNraW5nUmVjdFRhZyAqKXRhZ3MgY291
bnQ6KGludCljb3VudAogLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogewogICAgIC8v
IE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJE
YXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZh
a2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUV4aXRlZAor
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVNb3VzZUV4aXRlZAogICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAw
KQogICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTIwMzQs
MTYgKzIwMjIsMTMgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogICAgICAgICBl
dmVudE51bWJlcjowCiAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAg
ICAgICAgIHVzZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW19wcml2YXRlLT50cmFja2luZ1JlY3RPd25lciBt
b3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQogCiAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRW50
ZXJlZAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8vIE5vdGhp
bmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4
aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVkCiAgICAgICAgIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1l
c3RhbXA6MApAQCAtMjA1Myw3ICsyMDM4LDYgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUVu
dGVyZWQKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAg
dXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJEYXRhXTsKICAgICBbX3ByaXZhdGUt
PnRyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogfQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKQEAgLTIwODks
MjEgKzIwNzMsMTggQEAgLSAoTlNTdHJpbmcgKil2aWV3OihOU1ZpZXcgKil2aWV3IHN0cmluZ0Zv
clRvb2xUaXA6KE5TVG9vbFRpcFRhZyl0YWcgcG9pbnQ6KE5TUG8KIHN0YXRpYyBib29sIG1vdXNl
RXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIH0KIApAQCAtMjEzNCwx
NiArMjExNSwxNCBAQCAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRoRXZlbnQ6KE5TRXZlbnQg
KilldmVudAogICAgICAgICBmbG9hdCB5U2Nyb2xsID0gdmlzaWJsZVJlY3Qub3JpZ2luLnk7CiAg
ICAgICAgIGZsb2F0IHhTY3JvbGwgPSB2aXNpYmxlUmVjdC5vcmlnaW4ueDsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKKyAgICAgICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAg
ICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgtMSAtIHhTY3JvbGwsIC0xIC0geVNjcm9s
bCkKICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlm
aWVyRmxhZ3NdCiAgICAgICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5j
ZVJlZmVyZW5jZURhdGVdCiAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10g
d2luZG93TnVtYmVyXQogICAgICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgICAgICBl
dmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKwogICAgICAgICBpZiAoRnJhbWUqIGxhc3RIaXRDb3JlRnJhbWUgPSBjb3Jl
KFtsYXN0SGl0VmlldyBfZnJhbWVdKSkKICAgICAgICAgICAgIGxhc3RIaXRDb3JlRnJhbWUtPmV2
ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoZXZlbnQsIFtbc2VsZiBfd2ViVmlld10gX3ByZXNzdXJl
RXZlbnRdKTsKICAgICB9CkBAIC0yMzMwLDE2ICsyMzA5LDE4IEBAIC0gKHZvaWQpX2F1dG9zY3Jv
bGwKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQK
KyAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNMZWZ0TW91c2VEcmFnZ2VkCi0gICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5k
b3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAgICAg
IGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50
RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRl
cnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5k
b3ddIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorCiAgICAgW3NlbGYgbW91c2VEcmFnZ2VkOmZha2VFdmVudF07CiAjZW5kaWYKIH0K
QEAgLTMzNTQsMTIgKzMzMzUsOSBAQCAtIChCT09MKWFjY2VwdHNGaXJzdFJlc3BvbmRlcgogICAg
IC8vIG9yIGZyb20gY2FsbHMgYmFjayBmcm9tIFdlYkNvcmUgb25jZSB3ZSBiZWdpbiBtb3VzZS1k
b3duIGV2ZW50IGhhbmRsaW5nLgogI2lmICFQTEFURk9STShJT1MpICAgICAgICAgICAgCiAgICAg
TlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93
bgorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duCiAgICAg
ICAgICAgICAmJiAhX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3duRXZlbnQKICAgICAgICAgICAg
ICYmIE5TUG9pbnRJblJlY3QoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbc2VsZiBjb252ZXJ0
UmVjdDpbc2VsZiB2aXNpYmxlUmVjdF0gdG9WaWV3Om5pbF0pKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgICAgIHJldHVybiBOTzsKICAgICB9CiAjZWxzZQpAQCAtMzUyOCwx
MyArMzUwNiwxMCBAQCAtICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKIAogI2lmICFQTEFURk9S
TShJT1MpCiAgICAgICAgIGlmICghX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgX3ByaXZh
dGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZv
ckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1hc2sgaGFuZGxlcjpeKE5TRXZlbnQg
KmZsYWdzQ2hhbmdlZEV2ZW50KSB7CisgICAgICAgICAgICBfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2Vk
RXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdN
YXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6XihOU0V2ZW50ICpmbGFnc0NoYW5n
ZWRFdmVudCkgewogICAgICAgICAgICAgICAgIFtzZWxmIF9wb3N0RmFrZU1vdXNlTW92ZWRFdmVu
dEZvckZsYWdzQ2hhbmdlZEV2ZW50OmZsYWdzQ2hhbmdlZEV2ZW50XTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CiAgICAgICAgICAgICB9XTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIFtOU0V2
ZW50IHJlbW92ZU1vbml0b3I6X3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcl07CkBA
IC00NTQwLDExICs0NTE1LDEyIEBAIC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAqKWV2ZW50
CiAgICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBbTlNJbnB1dE1hbmFn
ZXIgY3VycmVudElucHV0TWFuYWdlcl07CiAKICAgICBpZiAoIVtjdXJyZW50SW5wdXRNYW5hZ2Vy
IHdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gfHwgIVtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRs
ZU1vdXNlRXZlbnQ6ZXZlbnRdKSB7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
ICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5P
IG1vdmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUgd2ViIHBhZ2UgaGFuZGxlcyB0aGUg
Y29udGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6IHJldHVybnMgbmlsLCB3ZSdsbCBn
ZXQgY29udHJvbCBjbGljayBldmVudHMgaGVyZS4KICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0
byBwYXNzIHRoZW0gYWxvbmcgdG8gS0hUTUwgYSBzZWNvbmQgdGltZS4KLSAgICAgICAgaWYgKCEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgaWYg
KCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7
CiAgICAgICAgICAgICBfcHJpdmF0ZS0+aWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMgPSBOTzsK
IAogICAgICAgICAgICAgLy8gTGV0IFdlYkNvcmUgZ2V0IGEgY2hhbmNlIHRvIGRlYWwgd2l0aCB0
aGUgZXZlbnQuIFRoaXMgd2lsbCBjYWxsIGJhY2sgdG8gdXMKQEAgLTQ1NTMsNyArNDUyOSw2IEBA
IC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgY29y
ZWZyYW1lLT5ldmVudEhhbmRsZXIoKS5tb3VzZURvd24oZXZlbnQsIFtbc2VsZiBfd2ViVmlld10g
X3ByZXNzdXJlRXZlbnRdKTsKICAgICAgICAgfQogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICNlbmRpZgogCiAgICAgX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3duRXZlbnQg
PSBOTzsKQEAgLTQ4MTgsMTkgKzQ3OTMsMTIgQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRF
dmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlEb3duOiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0KKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogewogICAgICAgICBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1FdmVudCA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBwbGF0Zm9ybUV2
ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsK
ICAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwbGF0Zm9ybUV2ZW50LCBjb3Jl
RnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5VXA6Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgogICAgICAgICByZXR1cm4g
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9y
bUtleWJvYXJkRXZlbnQoZXZlbnQpLCBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAwOwpAQCAtNTUyNCwxMSArNTQ5Miw4
IEBAIC0gKEJPT0wpX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50CiAg
ICAgaWYgKCFbc2VsZiBfY2FuRWRpdF0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykgIT0gTlNDb21tYW5k
S2V5TWFzaykKKyAgICBpZiAoKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykgIT0gTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bW1hbmQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IAogICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAgICAgaWYgKFtz
dHJpbmcgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAImIiXSA9PSBOU09yZGVyZWRTYW1lKSB7CkBA
IC02NDQ4LDE0ICs2NDEzLDExIEBAIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihLZXlib2Fy
ZEV2ZW50KilldmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdDb21tCiAgICAgICAgIHJl
dHVybiBOTzsKIAogICAgIE5TRXZlbnQgKm1hY0V2ZW50ID0gcGxhdGZvcm1FdmVudC0+bWFjRXZl
bnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW21hY0V2
ZW50IHR5cGVdID09IE5TS2V5RG93biAmJiBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVy
IGZpbHRlcktleURvd246bWFjRXZlbnRdKQorICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNF
dmVudFR5cGVLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZmlsdGVy
S2V5RG93bjptYWNFdmVudF0pCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgCi0gICAgaWYgKFtt
YWNFdmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKKyAgICBpZiAoW21hY0V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgCiAgICAgcGFyYW1ldGVycy5ldmVudCA9IGV2ZW50
OwogICAgIF9wcml2YXRlLT5pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzID0gJnBhcmFtZXRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggNzhmNTZlNDkx
ZTA4NmFhZTk4M2IzODA2OTlhNTUxNTdjZDk4ZmRiYS4uOTYwYzYzNzlkMWFjZTYwMDdiZTEyMDUy
YWUyODQ3NDczNTQ3ZDg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5t
bQpAQCAtNjUsNiArNjUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJOU0F0dHJpYnV0ZWRTdHJp
bmdFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvQ3Vy
cmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPEFwcGxpY2F0
aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlc1ByaXYuaD4KQEAgLTMyMSwxMCArMzIyLDcg
QEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClwb2ludAogICAgIC8vIE92ZXJyaWRlIGhp
dFRlc3Qgc28gd2UgY2FuIG92ZXJyaWRlIG1lbnVGb3JFdmVudC4KICAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAgIE5TRXZlbnRUeXBlIHR5cGUgPSBbZXZlbnQg
dHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHR5cGUg
PT0gTlNSaWdodE1vdXNlRG93biB8fCAodHlwZSA9PSBOU0xlZnRNb3VzZURvd24gJiYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spKSkKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAodHlwZSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8
ICh0eXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSkKICAgICAgICAgcmV0dXJuIHNlbGY7
CiAKICAgICByZXR1cm4gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOwpAQCAtMTAwOSwzOSArMTAwNywz
MyBAQCAtICh2b2lkKVBERlZpZXdXaWxsQ2xpY2tPbkxpbms6KFBERlZpZXcgKilzZW5kZXIgd2l0
aFVSTDooTlNVUkwgKilVUkwKICAgICBpbnQgYnV0dG9uID0gbm9CdXR0b247CiAgICAgUmVmUHRy
PEV2ZW50PiBldmVudDsKICAgICBzd2l0Y2ggKFtuc0V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAg
ICAgICAgICAgIGJ1dHRvbiA9IDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBO
U1JpZ2h0TW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IDE7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IFtu
c0V2ZW50IGJ1dHRvbk51bWJlcl07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBO
U0tleURvd246IHsKLSAgICAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRm
b3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7Ci0g
ICAgICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3
S2V5RG93bik7Ci0gICAgICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwg
MCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgICAgICBidXR0b24gPSAwOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgICAgICBidXR0b24gPSAx
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAg
ICAgICBidXR0b24gPSBbbnNFdmVudCBidXR0b25OdW1iZXJdOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogeworICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQgcGUgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50
KG5zRXZlbnQpOworICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1F
dmVudDo6UmF3S2V5RG93bik7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRl
KHBlLCAwKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7CiAgICAgICAgIGV2ZW50
ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVl
LCBjdXJyZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrLAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29udHJvbCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ09wdGlvbiwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0LAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCwKICAgICAgICAgICAgIGJ1dHRv
biwgMCwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCAwLCAwLCB0cnVlKTsKICAgICB9CiAKQEAgLTEx
NDksOSArMTE0MSw3IEBAIC0gKE5TRXZlbnQgKilfZmFrZUtleUV2ZW50V2l0aEZ1bmN0aW9uS2V5
Oih1bmljaGFyKWZ1bmN0aW9uS2V5CiAgICAgLy8gRklYTUUgNDQwMDQ4MDogd2hlbiBQREZWaWV3
IGltcGxlbWVudHMgdGhlIHN0YW5kYXJkIHNjcm9sbGluZyBzZWxlY3RvcnMgdGhhdCB0aGlzCiAg
ICAgLy8gbWV0aG9kIGlzIHVzZWQgdG8gbWltaWMsIHdlIGNhbiBlbGltaW5hdGUgdGhpcyBtZXRo
b2QgYW5kIGNhbGwgdGhlbSBkaXJlY3RseS4KICAgICBOU1N0cmluZyAqa2V5QXNTdHJpbmcgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmZ1bmN0aW9uS2V5IGxlbmd0aDoxXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleURvd24KKyAgICByZXR1cm4gW05TRXZlbnQga2V5RXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh
dGlvbjpOU1plcm9Qb2ludAogICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0xMTYxLDcgKzExNTEs
NiBAQCAtIChOU0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhGdW5jdGlvbktleToodW5pY2hhcilm
dW5jdGlvbktleQogICAgICAgICAgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmtleUFzU3Ry
aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FSZXBlYXQ6Tk8KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga2V5Q29kZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIH0KIAogLSAodm9pZClfbG9va1VwSW5EaWN0aW9uYXJ5RnJvbU1lbnU6KGlkKXNlbmRlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNv
bnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbQppbmRleCA0MzgyYjA0NDc0ZTYwYzhjMjM3MzMwNDdiODEzOTY0YTRmNzg0
MjYzLi43YjllNWRiY2Y0OGMyMTZiNmM1NjYzMTBjMTc0ZTQzMTJjNTYyOGU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJv
bGxlci5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5oIgog
I2ltcG9ydCAiV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2Ug
TlNXaW5kb3cgKFdlYk5TV2luZG93RGV0YWlscykKIC0gKHZvaWQpX3NldEZvcmNlQWN0aXZlQ29u
dHJvbHM6KEJPT0wpZmxhZzsKQEAgLTExMiwxMCArMTEzLDcgQEAgLSAodm9pZClfYnVpbGRVSQog
ICAgIFtzY3JvbGxWaWV3IHNldERvY3VtZW50VmlldzpfdGFibGVWaWV3XTsKICAgICBbX3RhYmxl
VmlldyByZWxlYXNlXTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBfcG9wdXBXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
OnNjcm9sbEZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgX3BvcHVwV2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW19wb3B1cFdpbmRv
dyBzZXRBbHBoYVZhbHVlOjAuODhmXTsKICAgICBbX3BvcHVwV2luZG93IHNldENvbnRlbnRWaWV3
OnNjcm9sbFZpZXddOwogICAgIFtzY3JvbGxWaWV3IHJlbGVhc2VdOwpAQCAtMTU1LDggKzE1Myw4
IEBAIC0gKHZvaWQpX3BsYWNlUG9wdXBXaW5kb3c6KE5TUG9pbnQpdG9wTGVmdAogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1Nj
cm9sbFZpZXcgZnJhbWVTaXplRm9yQ29udGVudFNpemU6TlNNYWtlU2l6ZShtYXhXaWR0aCwgMTAw
LjBmKSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9y
ZGVyVHlwZTpOU05vQm9yZGVyXS53aWR0aCk7Ci0gICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05T
V2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4
V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2tdLnNpemUud2lk
dGgpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBtYXhXaWR0aCA9IGNl
aWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAu
MGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3NdLnNpemUud2lkdGgpOwogICAgICAgICBtYXhXaWR0aCArPSA1LjBmOwogICAgICAgICB3aW5k
b3dGcmFtZS5zaXplLndpZHRoID0gc3RkOjptYXgobWF4V2lkdGgsIHdpbmRvd0ZyYW1lLnNpemUu
d2lkdGgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3Y2Zh
YTg3YjU1NmViNDc2YmYzYzVmZWQ1ZTAzZTY4ZmJhMmRlNGJmLi43ODdlNzE2YTZiNGJjYTM0ZDc0
N2UwMjUyZDYzMjYwZTU2OTE3OWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC0yMzAsNiArMjMwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2Vsc2UKICNpbXBvcnQgIk1lbW9yeU1lYXN1
cmUuaCIKICNpbXBvcnQgIldlYkNhcmV0Q2hhbmdlTGlzdGVuZXIuaCIKQEAgLTYwOTUsMTAgKzYw
OTYsNyBAQCAtIChEcmFnQXBwbGljYXRpb25GbGFncylhcHBsaWNhdGlvbkZsYWdzOihpZCA8TlNE
cmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRp
b25IYXNBdHRhY2hlZFNoZWV0OwogICAgIGlmIChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNl
XSA9PSBzZWxmKQogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1tOU0FwcCBjdXJyZW50
RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJG
bGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBmbGFncyB8PSBEcmFn
QXBwbGljYXRpb25Jc0NvcHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEcmFnQXBw
bGljYXRpb25GbGFncz4oZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0No
aWxkUHJvY2Vzc01hYy5tbQppbmRleCAyZTY1ODA2ZGI1ZDY4ZjBhNGEyODJkMzgzYjk2ZTdiNDUx
NmI5MDQwLi5iMGM1NTRkNGRhNjIzZDk5YjAxNDM1ODY3YjIwNzcyNWI4Njc0NTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtMzksNiArMzks
NyBAQAogI2ltcG9ydCA8cHdkLmg+CiAjaW1wb3J0IDxzdGRsaWIuaD4KICNpbXBvcnQgPHN5c2V4
aXRzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KIAogI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCkBAIC0xOTcsMTAgKzE5OCw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjpz
dG9wTlNBcHBSdW5Mb29wKCkKICAgICBBU1NFUlQoW05TQXBwIGlzUnVubmluZ10pOwogICAgIFtO
U0FwcCBzdG9wOm5pbF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0
aW9uRGVmaW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGlt
ZXN0YW1wOjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBk
YXRhMjowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVm
aW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBkYXRhMjow
XTsKICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07CiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggYTg1
ZWZjYWVlOWE1MmQ4YzA0NTY2NmQ5NGM0OTE4NzBjYTY4YTdkMy4uOWY1M2Y2OGNkMzE4MjNiZDE0
NGYzMTRlYTYwOGE4NTdhODVlZThmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2Ny
b2xsYmFyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CiAjaW1w
b3J0IDx3dGYvQVNDSUlDVHlwZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmls
aXR5RGVjbGFyYXRpb25zLmg+CiAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02Myw3
OCArNjQsNjkgQEAgc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBjdXJyZW50TW91c2VCdXR0
b24oKQogCiBzdGF0aWMgV2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNlQnV0dG9uRm9yRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURy
YWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVw
OgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
V2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93
bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRv
bjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOworICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdl
Yk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNl
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok1p
ZGRsZUJ1dHRvbjsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKQotICAgICAgICBjYXNlIE5TRXZlbnRU
eXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0gICAg
ICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAg
ICAgICAgICAgIHJldHVybiBjdXJyZW50TW91c2VCdXR0b24oKTsKLSAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoK
KyAgICAgICAgcmV0dXJuIGN1cnJlbnRNb3VzZUJ1dHRvbigpOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKICAgICB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBXZWJFdmVudDo6VHlwZSBtb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNl
IE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwotICAgICAgICBjYXNlIE5T
TGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNl
RG93bjsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgcmV0dXJu
IFdlYkV2ZW50OjpNb3VzZVVwOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJu
IFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdn
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICAgICAg
cmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VVcDoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwogICAgIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KIAogc3RhdGljIGludCBjbGlja0NvdW50Rm9y
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2Fz
ZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBb
ZXZlbnQgY2xpY2tDb3VudF07Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4g
MDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAg
IGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAg
ICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gMDsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBO
U1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC0xNDMsMjIgKzEz
NSwxOSBAQCBzdGF0aWMgTlNQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50
KQogI2lmIGRlZmluZWQoX19MUDY0X18pCiAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgog
I2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0xl
ZnRNb3VzZURvd246Ci0gICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU0xl
ZnRNb3VzZVVwOgotICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgY2FzZSBOU01vdXNlRXhp
dGVkOgotICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoK
LSAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VVcDoK
LSAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2Vk
OgotICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91
c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBO
U0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURy
YWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Omdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRv
d10pOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBOU1plcm9Qb2ludDsKQEAgLTE3MSwy
MiArMTYwLDE5IEBAIHN0YXRpYyBOU1BvaW50IHBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQs
IE5TVmlldyAqd2luZG93VmlldykKICNpZiBkZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFn
Z2VkOgotICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgot
ICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNl
IE5TT3RoZXJNb3VzZURvd246Ci0gICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNh
c2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2Ug
TlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2Ug
TlNTY3JvbGxXaGVlbDogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGNhc2Ug
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVl
bDogewogICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBpdHMgb3JpZ2luIGF0IHRoZSBi
b3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dWaWV3IGlzIGZsaXBwZWQuCiAg
ICAgICAgIC8vIEluIHRob3NlIGNhc2VzLCB0aGUgWSBjb29yZGluYXRlIGdldHMgZmxpcHBlZCBi
eSBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdy4KICAgICAgICAgTlNQb2ludCBs
b2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKQEAgLTI0MCwxMCArMjI2LDcgQEAg
c3RhdGljIGlubGluZSBTdHJpbmcgdGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCBy
ZXBsYWNlc1NvZnRTcGFjZSkKIHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdz
Q2hhbmdlZCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmlu
ZyhbZXZlbnQgY2hhcmFjdGVyc10pOwogfQpAQCAtMjUyLDEwICsyMzUsNyBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyB1bm1vZGlmaWVkVGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCBy
ZXBsYWNlc1NvZnRTcAogewogICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKICAgICAgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFu
Z2VkKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAgICByZXR1cm4gU3RyaW5nKFtl
dmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdKTsKIH0KQEAgLTI2NCw3NCArMjQ0LDY4
IEBAIHN0YXRpYyBib29sIGlzS2V5cGFkRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgLy8g
Q2hlY2sgdGhhdCB0aGlzIGlzIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIGEga2V5Q29kZS4K
ICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgICAgICBjYXNlIE5TS2V5RG93bjoKLSAgICAgICAgY2FzZSBOU0tleVVwOgot
ICAgICAgICBjYXNlIE5TRmxhZ3NDaGFuZ2VkOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246CisgICAgY2FzZSBOU0V2ZW50
VHlwZUtleVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQ6CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBz
d2l0Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBjYXNlIDcxOiAvLyBDbGVhcgotICAg
ICAgICBjYXNlIDgxOiAvLyA9Ci0gICAgICAgIGNhc2UgNzU6IC8vIC8KLSAgICAgICAgY2FzZSA2
NzogLy8gKgotICAgICAgICBjYXNlIDc4OiAvLyAtCi0gICAgICAgIGNhc2UgNjk6IC8vICsKLSAg
ICAgICAgY2FzZSA3NjogLy8gRW50ZXIKLSAgICAgICAgY2FzZSA2NTogLy8gLgotICAgICAgICBj
YXNlIDgyOiAvLyAwCi0gICAgICAgIGNhc2UgODM6IC8vIDEKLSAgICAgICAgY2FzZSA4NDogLy8g
MgotICAgICAgICBjYXNlIDg1OiAvLyAzCi0gICAgICAgIGNhc2UgODY6IC8vIDQKLSAgICAgICAg
Y2FzZSA4NzogLy8gNQotICAgICAgICBjYXNlIDg4OiAvLyA2Ci0gICAgICAgIGNhc2UgODk6IC8v
IDcKLSAgICAgICAgY2FzZSA5MTogLy8gOAotICAgICAgICBjYXNlIDkyOiAvLyA5Ci0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgfQorICAgIGNhc2UgNzE6IC8vIENsZWFyCisgICAgY2Fz
ZSA4MTogLy8gPQorICAgIGNhc2UgNzU6IC8vIC8KKyAgICBjYXNlIDY3OiAvLyAqCisgICAgY2Fz
ZSA3ODogLy8gLQorICAgIGNhc2UgNjk6IC8vICsKKyAgICBjYXNlIDc2OiAvLyBFbnRlcgorICAg
IGNhc2UgNjU6IC8vIC4KKyAgICBjYXNlIDgyOiAvLyAwCisgICAgY2FzZSA4MzogLy8gMQorICAg
IGNhc2UgODQ6IC8vIDIKKyAgICBjYXNlIDg1OiAvLyAzCisgICAgY2FzZSA4NjogLy8gNAorICAg
IGNhc2UgODc6IC8vIDUKKyAgICBjYXNlIDg4OiAvLyA2CisgICAgY2FzZSA4OTogLy8gNworICAg
IGNhc2UgOTE6IC8vIDgKKyAgICBjYXNlIDkyOiAvLyA5CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KICAgICAgCiAgICAgIHJldHVybiBmYWxzZTsKIH0KIAogc3RhdGljIGlubGluZSBib29s
IGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAg
ICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBl
XSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBl
XSA9PSBOU0V2ZW50VHlwZUtleVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlm
IHRoZSB1c2VyIHByZXNzZXMgYm90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgog
ICAgIC8vIHdlIHRyZWF0IHJlbGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3
aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1h
bmQKLSAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4g
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAg
ICAgICAgIAotICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6
IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6
IC8vIExlZnQgQWx0Ci0gICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAg
cmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7
Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNh
c2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDYzOiAvLyBGdW5jdGlvbgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0Z1bmN0aW9uS2V5TWFzaykgPT0gMDsKKyAgICBjYXNlIDU0OiAvLyBSaWdodCBD
b21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAgIHJldHVybiAhKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKTsKKworICAg
IGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBjYXNlIDU2OiAvLyBM
ZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAgICAgcmV0dXJuICEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KTsKKworICAg
IGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0CisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2MjogLy8gUmlnaHQg
Q3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgorICAgICAgICBy
ZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b24pOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKQEAgLTMzOSw3ICszMTMsNiBAQCBzdGF0aWMgaW5saW5lIFdlYkV2ZW50OjpNb2Rp
ZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgdW5zaWduZWQg
bW9kaWZpZXJzID0gMDsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMjAwCiAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZs
YWdDYXBzTG9jaykKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpDYXBzTG9ja0tleTsK
ICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0
KQpAQCAtMzUwLDE4ICszMjMsNiBAQCBzdGF0aWMgaW5saW5lIFdlYkV2ZW50OjpNb2RpZmllcnMg
bW9kaWZpZXJzRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBX
ZWJFdmVudDo6QWx0S2V5OwogICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29tbWFuZCkKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRh
S2V5OwotI2Vsc2UKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBoYVNoaWZ0
S2V5TWFzaykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpDYXBzTG9ja0tleTsKLSAg
ICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1hc2spCi0gICAgICAgIG1v
ZGlmaWVycyB8PSBXZWJFdmVudDo6U2hpZnRLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29udHJvbEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6
Q29udHJvbEtleTsKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkFsdEtleTsKLSAgICBpZiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykKLSAgICAgICAgbW9kaWZp
ZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5OwotI2VuZGlmCiAKICAgICByZXR1cm4gKFdlYkV2ZW50
OjpNb2RpZmllcnMpbW9kaWZpZXJzOwogfQpAQCAtNDg0LDEwICs0NDUsNyBAQCBXZWJLZXlib2Fy
ZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpl
dmVudCwgYm9vbCBoYQogICAgIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUgICAgICAgPSB3aW5k
b3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKICAgICBpbnQgbmF0aXZlVmlydHVhbEtleUNv
ZGUgICAgICAgID0gW2V2ZW50IGtleUNvZGVdOwogICAgIGludCBtYWNDaGFyQ29kZSAgICAgICAg
ICAgICAgICAgPSBXS0dldE5TRXZlbnRLZXlDaGFyKGV2ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBib29sIGF1dG9SZXBlYXQgICAgICAgICAgICAgICAgID0g
KFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkgJiYgW2V2ZW50IGlzQVJlcGVhdF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgYm9vbCBhdXRvUmVwZWF0ICAgICAgICAg
ICAgICAgICA9IFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCAmJiBbZXZl
bnQgaXNBUmVwZWF0XTsKICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNL
ZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9
IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2Vi
RXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uQWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmln
YXRpb25BY3Rpb24ubW0KaW5kZXggYmExOTk2YjIxNzRlMjNlNDc3ODQ2MzdlZDcyMTA3Yzc1MWIw
YzNjZS4uOGE2ZDk2ZTQxZmRlZjJjOTM0OTdhN2VkYjI3MWUxMzEwNGU5MGJmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25B
Y3Rpb24ubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwu
aCIKICNpbXBvcnQgIl9XS1VzZXJJbml0aWF0ZWRBY3Rpb25JbnRlcm5hbC5oIgogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBXS05hdmlnYXRpb25BY3Rpb24KIApAQCAt
NzksNyArODAsNiBAQCBzdGF0aWMgTlNFdmVudE1vZGlmaWVyRmxhZ3MgdG9OU0V2ZW50TW9kaWZp
ZXJGbGFncyhXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcnMgbQogewogICAgIE5TRXZlbnRNb2Rp
ZmllckZsYWdzIG1vZGlmaWVyRmxhZ3MgPSAwOwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVu
dDo6Q2Fwc0xvY2tLZXkpCiAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ0NhcHNMb2NrOwogICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpTaGlm
dEtleSkKQEAgLTkwLDE4ICs5MCw2IEBAIHN0YXRpYyBOU0V2ZW50TW9kaWZpZXJGbGFncyB0b05T
RXZlbnRNb2RpZmllckZsYWdzKFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVycyBtCiAgICAgICAg
IG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICBpZiAobW9k
aWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6TWV0YUtleSkKICAgICAgICAgbW9kaWZpZXJGbGFn
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKLSNlbHNlCi0gICAgaWYgKG1vZGlmaWVy
cyAmIFdlYktpdDo6V2ViRXZlbnQ6OkNhcHNMb2NrS2V5KQotICAgICAgICBtb2RpZmllckZsYWdz
IHw9IE5TQWxwaGFTaGlmdEtleU1hc2s7Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2Vi
RXZlbnQ6OlNoaWZ0S2V5KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNr
OwotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpDb250cm9sS2V5KQotICAg
ICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29udHJvbEtleU1hc2s7Ci0gICAgaWYgKG1vZGlmaWVy
cyAmIFdlYktpdDo6V2ViRXZlbnQ6OkFsdEtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBO
U0FsdGVybmF0ZUtleU1hc2s7Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6
Ok1ldGFLZXkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKLSNl
bmRpZgogCiAgICAgcmV0dXJuIG1vZGlmaWVyRmxhZ3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggMzJlNjM5YzRkOTE5YWQxNmU5YTk0
ODJiOTM1Y2VmMDQ2Mzc3MWZiYS4uNzYzZDkwNjA1NzU5OTNkOGNiMDczYzZhYTRlMDk1YzBkYmI0
YTgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQpAQCAtOTMsNiArOTMsNyBAQAogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAj
aW1wb3J0IDxzeXMvc3RhdC5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1w
b3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViVmlld0lt
cGxJbmNsdWRlcy5oPgpAQCAtNjIwLDExICs2MjEsOCBAQCBib29sIFdlYlZpZXdJbXBsOjpiZWNv
bWVGaXJzdFJlc3BvbmRlcigpCiAgICAgaWYgKGRpcmVjdGlvbiAhPSBOU0RpcmVjdFNlbGVjdGlv
bikgewogICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAg
ICAgICBOU0V2ZW50ICprZXlib2FyZEV2ZW50ID0gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgICAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8fCBb
ZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkKKyAgICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2
ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApCiAgICAg
ICAgICAgICBrZXlib2FyZEV2ZW50ID0gZXZlbnQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgICAgIG1fcGFnZS0+c2V0SW5pdGlhbEZvY3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVj
dGluZ05leHQsIGtleWJvYXJkRXZlbnQgIT0gbmlsLCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGtl
eWJvYXJkRXZlbnQsIGZhbHNlLCBmYWxzZSwgeyB9KSwgW10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6
OkVycm9yKSB7IH0pOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg0OCwxMCArODQ2LDcg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljKCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdmlldy53aW5kb3c7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKCh3aW5kb3cuc3R5bGVN
YXNrICYgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93TWFzaykgJiYgIXdpbmRvdy50aXRsZWJh
ckFwcGVhcnNUcmFuc3BhcmVudCAmJiAhW21fdmlldyBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICgod2luZG93LnN0eWxlTWFzayAm
IE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVDb250ZW50VmlldykgJiYgIXdpbmRvdy50aXRsZWJh
ckFwcGVhcnNUcmFuc3BhcmVudCAmJiAhW21fdmlldyBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgewog
ICAgICAgICBOU1JlY3QgY29udGVudExheW91dFJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0Ondp
bmRvdy5jb250ZW50TGF5b3V0UmVjdCBmcm9tVmlldzpuaWxdOwogICAgICAgICBDR0Zsb2F0IG5l
d1RvcENvbnRlbnRJbnNldCA9IE5TTWF4WShjb250ZW50TGF5b3V0UmVjdCkgLSBOU0hlaWdodChj
b250ZW50TGF5b3V0UmVjdCk7CiAgICAgICAgIGlmIChtX3RvcENvbnRlbnRJbnNldCAhPSBuZXdU
b3BDb250ZW50SW5zZXQpCkBAIC0xMjI4LDEwICsxMjIzLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
dmlld0RpZE1vdmVUb1dpbmRvdygpCiAKICAgICAgICAgaWYgKCFtX2ZsYWdzQ2hhbmdlZEV2ZW50
TW9uaXRvcikgewogICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIG1fZmxhZ3ND
aGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0
Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2VkTWFzayBoYW5kbGVyOlt3ZWFrVGhpc10gKE5TRXZlbnQg
KmZsYWdzQ2hhbmdlZEV2ZW50KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9u
aXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0V2ZW50TWFza0ZsYWdzQ2hhbmdlZCBoYW5kbGVy
Olt3ZWFrVGhpc10gKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CiAgICAgICAgICAgICAg
ICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+cG9zdEZha2VN
b3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChmbGFnc0NoYW5nZWRFdmVudCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzQ2hhbmdlZEV2ZW50OwpAQCAtMTMwMiwxMiArMTI5
NCw5IEBAIE5TVmlldyAqV2ViVmlld0ltcGw6OmhpdFRlc3QoQ0dQb2ludCBwb2ludCkKIAogdm9p
ZCBXZWJWaWV3SW1wbDo6cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVu
dChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5t
b3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQg
PSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0
aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRT
dHJlYW0KICAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFnc0NoYW5nZWRFdmVudC5tb2RpZmllckZs
YWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50aW1lc3RhbXAgd2luZG93TnVtYmVyOmZs
YWdzQ2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgogICAgICAgICBjb250ZXh0Om51bGxwdHIgZXZl
bnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCiAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChmYWtlRXZlbnQsIG1f
bGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7CiAgICAgbV9wYWdlLT5oYW5kbGVNb3Vz
ZUV2ZW50KHdlYkV2ZW50KTsKIH0KQEAgLTE2NTYsMTAgKzE2NDUsNyBAQCBOU1ZpZXcgKldlYlZp
ZXdJbXBsOjpmdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3KCkKIE5TV2luZG93ICpXZWJWaWV3SW1w
bDo6Y3JlYXRlRnVsbFNjcmVlbldpbmRvdygpCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHJldHVybiBbW1tXZWJD
b3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVu
IG1haW5TY3JlZW5dIGZyYW1lXSBzdHlsZU1hc2s6KE5TQm9yZGVybGVzc1dpbmRvd01hc2sgfCBO
U1Jlc2l6YWJsZVdpbmRvd01hc2spIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZl
cjpOT10gYXV0b3JlbGVhc2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJl
dHVybiBbW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGZyYW1lXSBzdHlsZU1hc2s6KE5TV2luZG93U3R5bGVN
YXNrQm9yZGVybGVzcyB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlKSBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dIGF1dG9yZWxlYXNlXTsKICNlbHNlCiAgICAgcmV0
dXJuIG5pbDsKICNlbmRpZgpAQCAtMjYzMSw5ICsyNjE3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
cmVtb3ZlVHJhY2tpbmdSZWN0cyhOU1RyYWNraW5nUmVjdFRhZyAqdGFncywgaW50IGNvdW50KQog
dm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUV4aXRlZCgpCiB7CiAgICAgLy8gTm90
aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEu
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2
ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRXhpdGVkCisgICAg
TlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZU1vdXNlRXhpdGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjY0MiwxNiAr
MjYyNiwxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNraW5nTnVtYmVy
OlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1c2VyRGF0YTptX3RyYWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBbbV90cmFja2luZ1JlY3RPd25lciBtb3VzZUV4aXRlZDpm
YWtlRXZlbnRdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJl
ZCgpCiB7CiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVt
YmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpO
U01vdXNlRW50ZXJlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhp
dEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUVudGVyZWQKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFn
czowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVz
dGFtcDowCkBAIC0yNjYwLDcgKzI2NDEsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRp
cE1vdXNlRW50ZXJlZCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGE6bV90cmFja2luZ1JlY3RVc2Vy
RGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW21fdHJhY2tpbmdSZWN0
T3duZXIgbW91c2VFbnRlcmVkOmZha2VFdmVudF07CiB9CiAKQEAgLTI4MTYsMTAgKzI3OTYsNyBA
QCBzdGF0aWMgV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MgYXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcoTlNWaWV3ICp2aWV3LCBpZCA8TgogICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFn
QXBwbGljYXRpb25IYXNBdHRhY2hlZFNoZWV0OwogICAgIGlmIChkcmFnZ2luZ0luZm8uZHJhZ2dp
bmdTb3VyY2UgPT0gdmlldykKICAgICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0
aW9uSXNTb3VyY2U7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYg
KFtOU0FwcCBjdXJyZW50RXZlbnRdLm1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2sp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtOU0FwcCBjdXJyZW50RXZl
bnRdLm1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBm
bGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25Jc0NvcHlLZXlEb3duOwogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncz4oZmxhZ3MpOwogCkBA
IC0zMzU5LDEwICszMzM2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2
ZW50KE5TRXZlbnQgKmV2ZW50KQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRMYXN0TW91c2VEb3du
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09IE5TTGVmdE1vdXNlRG93biB8
fCBldmVudC50eXBlID09IE5TUmlnaHRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU090aGVy
TW91c2VEb3duKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBU1NFUlQoIWV2
ZW50IHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5
cGUgPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURvd24pOwogCiAgICAgaWYgKGV2ZW50ID09IG1fbGFzdE1vdXNlRG93bkV2
ZW50LmdldCgpKQogICAgICAgICByZXR1cm47CkBAIC0zMzk5LDExICszMzczLDggQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKIAogdm9pZCBXZWJWaWV3SW1w
bDo6ZG9uZVdpdGhLZXlFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBldmVudFdhc0hhbmRsZWQp
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0
eXBlXSAhPSBOU0tleURvd24pCisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtl
eURvd24pCiAgICAgICAgIHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAog
ICAgIGlmICh0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKGV2ZW50
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ3OSwxMSArMzQ1MCw4IEBAIFZlY3RvcjxXZWJDb3Jl
OjpLZXlwcmVzc0NvbW1hbmQ+IFdlYlZpZXdJbXBsOjpjb2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21t
YW5kc0ZvckV2CiB7CiAgICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gY29tbWFu
ZHM7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50
IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBl
S2V5RG93bikKICAgICAgICAgcmV0dXJuIGNvbW1hbmRzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogCiAgICAgQVNTRVJUKCFtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMpOwogICAg
IG1fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kcyA9ICZjb21tYW5kczsKQEAgLTM4NTgsMTEgKzM4
MjYsOCBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2ZW50ICpl
dmVudCkKICAgICAvLyBXZSBnZXQgRXNjIGtleSBoZXJlIGFmdGVyIHByb2Nlc3NpbmcgZWl0aGVy
IEVzYyBvciBDbWQrcGVyaW9kLiBUaGUgZm9ybWVyIHN0YXJ0cyBhcyBhIGtleURvd24sIGFuZCB0
aGUgbGF0dGVyIHN0YXJ0cyBhcyBhIGtleSBlcXVpdmFsZW50LAogICAgIC8vIGJ1dCBib3RoIGdl
dCB0cmFuc2Zvcm1lZCB0byBhIGNhbmNlbE9wZXJhdGlvbjogY29tbWFuZCwgZXhlY3V0aW5nIHdo
aWNoIHBhc3NlcyBhbiBFc2Mga2V5IGV2ZW50IHRvIC1wZXJmb3JtS2V5RXF1aXZhbGVudDouCiAg
ICAgLy8gRG9uJ3QgaW50ZXJwcmV0IHRoaXMgZXZlbnQgYWdhaW4sIGF2b2lkaW5nIHJlLWVudHJh
bmN5IGFuZCBpbmZpbml0ZSBsb29wcy4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdIGlzRXF1YWxU
b1N0cmluZzpAIlxlIl0gJiYgIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0RldmljZUluZGVw
ZW5kZW50TW9kaWZpZXJGbGFnc01hc2spKQorICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNJZ25v
cmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykp
CiAgICAgICAgIHJldHVybiBbbV92aWV3IF93ZWJfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpl
dmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBpZiAobV9rZXlEb3du
RXZlbnRCZWluZ1Jlc2VudCkgewogICAgICAgICAvLyBXZWJDb3JlIGhhcyBhbHJlYWR5IHNlZW4g
dGhlIGV2ZW50LCBubyBuZWVkIGZvciBjdXN0b20gcHJvY2Vzc2luZy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1By
b3h5TWFjLm1tCmluZGV4IGYwN2QyNzlkNjM3ZDMwZjhmNTA1MzE3ZDhmMDk2MDU1N2ExMWQyZDIu
LjhmMzdkNDI2MTUyYjYxN2Q1NWM5MTQ4ODE1MTE0ZjhjMzM5ZTdjNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nl
c3NQcm94eU1hYy5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCA8Y3J0X2V4dGVybnMuaD4K
ICNpbXBvcnQgPG1hY2gtby9keWxkLmg+CiAjaW1wb3J0IDxzcGF3bi5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKIEBpbnRlcmZhY2UgV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IDogTlNX
aW5kb3cgCkBAIC0yMzEsMTAgKzIzMiw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdp
bk1vZGFsKCkKICAgICBBU1NFUlQoIW1fcGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFTU0VSVCgh
bV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV0tQbGFjZWhvbGRl
ck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwg
MSwgMSkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdT
dG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV0tQbGFjZWhvbGRlck1vZGFsV2lu
ZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5
bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgW21fcGxhY2Vob2xkZXJXaW5kb3cgc2V0UmVsZWFz
ZWRXaGVuQ2xvc2VkOk5PXTsKICAgICAKICAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBw
bGljYXRpb25XaWxsQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpu
aWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1l
bnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1l
bnVQcm94eU1hYy5tbQppbmRleCBhNDgzOTY0ZDhmMWYyMjZkNGFlY2MyN2NjYjBmMDc2MDcxYjdi
YmQxLi5iYjVhZDdjMjFlODEwY2EzNjU2NWVjYzc3N2QwNmFmMzFiYjAyODY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFj
Lm1tCkBAIC00OCw2ICs0OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05TU2hhcmluZ1NlcnZpY2VT
UEkuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NjMsMTAgKzQ2NCw3IEBA
IHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKGNv
bnN0IFZlY3RvcjxXZWJDb250ZXh0TWVuCiAgICAgW1tXS01lbnVUYXJnZXQgc2hhcmVkTWVudVRh
cmdldF0gc2V0TWVudVByb3h5OnRoaXNdOwogCiAgICAgTlNQb2ludCBtZW51TG9jYXRpb24gPSBb
bV93ZWJWaWV3IGNvbnZlcnRQb2ludDptX2NvbnRleHQubWVudUxvY2F0aW9uKCkgdG9WaWV3Om5p
bF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlVXAgbG9jYXRpb246
bWVudUxvY2F0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93
ZWJWaWV3LndpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
TlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVS
aWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3Rh
bXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpu
aWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CiAgICAgW05TTWVudSBw
b3BVcENvbnRleHRNZW51Om1fbWVudS5nZXQoKSB3aXRoRXZlbnQ6ZXZlbnQgZm9yVmlldzptX3dl
YlZpZXddOwogCiAgICAgaWYgKG1fY29udGV4dE1lbnVMaXN0ZW5lcikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXgg
MGE3OTkxMzQ2ZDE1Y2NmYWM3NzQzNWVmMzBlZjhkZjgyMmFmYWUyMy4uZjA2YjU4NDJhY2Q1MzRk
ZmUyNDEwZmVjYTlhMWFkZmI2ZWE5Nzc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCkBAIC00MSw2ICs0MSw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2lu
Zy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4KIAogU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdP
UksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVGcmFtZXdvcmtzLCBBKQpAQCAtNDgsMTAgKzQ5LDcg
QEAgU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVGcmFt
ZXdvcmtzLCBBKQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi1zdGF0aWMgY29uc3Qg
TlNVSW50ZWdlciB3aW5kb3dTdHlsZU1hc2sgPSBOU1RpdGxlZFdpbmRvd01hc2sgfCBOU0Nsb3Nh
YmxlV2luZG93TWFzayB8IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVX
aW5kb3dNYXNrIHwgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93TWFzazsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHdpbmRvd1N0eWxlTWFz
ayA9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVkIHwgTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZSB8
IE5TV2luZG93U3R5bGVNYXNrTWluaWF0dXJpemFibGUgfCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6
YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVDb250ZW50VmlldzsKIAogLy8gVGhlIHRp
bWUgd2Uga2VlcCBvdXIgV2ViVmlldyBhbGl2ZSBiZWZvcmUgY2xvc2luZyBpdCBhbmQgaXRzIHBy
b2Nlc3MuCiAvLyBSZXVzaW5nIHRoZSBXZWJWaWV3IGltcHJvdmVzIHN0YXJ0IHVwIHRpbWUgZm9y
IHBlb3BsZSB0aGF0IGp1bXAgaW4gYW5kIG91dCBvZiB0aGUgSW5zcGVjdG9yLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KaW5k
ZXggZDI5ZDA4OTA1MmM4ODdhZmI4NjQyMzg0NTVhYTE4ODRiNGRkNDY1Yy4uYzIyOWZiZDBiOGJl
YmJhZjExNWMzNTNlODNjN2UwODQ2NTA2MDM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgIldlYlBvcHVwSXRlbS5oIgog
I2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtp
dENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKQEAgLTc0LDE5ICs3NSwxMyBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpwb3B1bGF0
ZShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIE5TRm9udCAqZgogICAgICAgICAg
ICAgUmV0YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0eWxlPiBwYXJhZ3JhcGhTdHlsZSA9IGFk
b3B0TlMoW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNv
cHldKTsKICAgICAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uID0g
aXRlbXNbaV0ubV90ZXh0RGlyZWN0aW9uID09IExUUiA/IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRU
b1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbcGFy
YWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246d3JpdGluZ0RpcmVjdGlvbl07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBbcGFyYWdyYXBo
U3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TTGVmdFRleHRB
bGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0
RGlyZWN0aW9uID09IExUUiA/IE5TVGV4dEFsaWdubWVudExlZnQgOiBOU1RleHRBbGlnbm1lbnRS
aWdodF07CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gYXR0cmli
dXRlcyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aE9iamVj
dHNBbmRLZXlzOgogICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0eWxlLmdldCgpLCBOU1BhcmFn
cmFwaFN0eWxlQXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgICAgICBmb250LCBOU0ZvbnRBdHRy
aWJ1dGVOYW1lLAogICAgICAgICAgICAgbmlsXSk7CiAgICAgICAgICAgICBpZiAoaXRlbXNbaV0u
bV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJl
Y3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndy
aXRpbmdEaXJlY3Rpb24gKyBOU1RleHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1i
ZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5p
dFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1dyaXRpbmdEaXJlY3Rpb25PdmVycmlk
ZV0pOwogICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PiB3cml0aW5nRGlyZWN0aW9u
QXJyYXkgPSBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOndyaXRpbmdE
aXJlY3Rpb25WYWx1ZS5nZXQoKSwgbmlsXSk7CiAgICAgICAgICAgICAgICAgW2F0dHJpYnV0ZXMg
c2V0T2JqZWN0OndyaXRpbmdEaXJlY3Rpb25BcnJheS5nZXQoKSBmb3JLZXk6TlNXcml0aW5nRGly
ZWN0aW9uQXR0cmlidXRlTmFtZV07CiAgICAgICAgICAgICB9CkBAIC0xNTQsMTggKzE0OSwxNSBA
QCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3Qm
IHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogCiAgICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6
ZTsKICAgICBzd2l0Y2ggKGRhdGEubWVudVNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKICAgICBjYXNlIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVT
aXplTm9ybWFsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TUmVndWxhckNvbnRyb2xTaXplOwor
ICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6
Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNTbWFsbENvbnRyb2xTaXplOworICAgICAgICBjb250
cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVTbWFsbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBX
ZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRy
b2xTaXplID0gTlNNaW5pQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250
cm9sU2l6ZU1pbmk7CiAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIH0KIAogICAgIFJlZjxXZWJQb3B1cE1lbnVQcm94eU1hYz4gcHJvdGVjdCgqdGhpcyk7
CkBAIC0xODMsMTMgKzE3NSwxMSBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9w
dXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgIGlmICgh
bV9jbGllbnQtPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCkpCiAgICAgICAgIHJl
dHVybjsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBOU0V2
ZW50KiBpbml0aWF0aW5nTlNFdmVudCA9IG1fY2xpZW50LT5jdXJyZW50bHlQcm9jZXNzZWRNb3Vz
ZURvd25FdmVudCgpLT5uYXRpdmVFdmVudCgpOwotICAgIGlmIChbaW5pdGlhdGluZ05TRXZlbnQg
dHlwZV0gIT0gTlNMZWZ0TW91c2VEb3duKQorICAgIGlmIChbaW5pdGlhdGluZ05TRXZlbnQgdHlw
ZV0gIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKQogICAgICAgICByZXR1cm47CiAKLSAgICBO
U0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91
c2VVcAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nTlNFdmVudCBsb2NhdGlvbkluV2luZG93
XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpb
aW5pdGlhdGluZ05TRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFt
cF0KQEAgLTE5OCwxMyArMTg4LDE0IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQ
b3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOltpbml0aWF0aW5n
TlNFdmVudCBldmVudE51bWJlcl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsaWNrQ291bnQ6W2luaXRpYXRpbmdOU0V2ZW50IGNsaWNrQ291bnRdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlOltpbml0aWF0aW5n
TlNFdmVudCBwcmVzc3VyZV1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAg
W05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOworICAgIGZha2VFdmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1ttX3dlYlZpZXcgd2luZG93
XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGZha2VFdmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1ttX3dlYlZpZXcgd2luZG93XSBjb252ZXJ0U2Ny
ZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICAgICAgICAgICAgICAg
ICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlm
aWVyRmxhZ3M6W2luaXRpYXRpbmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nTlNFdmVudCB0aW1lc3Rh
bXBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOltpbml0aWF0
aW5nTlNFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC0yMTIsNyArMjAzLDYgQEAgdm9pZCBXZWJQb3B1
cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGly
ZWN0aW9uIHRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6
MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDowCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVT
XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9EZXByZWNhdGVkUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IDVlZGU1NmVlZTQwYWNmZGI5OTAx
MTlkZTdhY2U5MThlNjc4YmM2NjYuLjEyNTE4ZGYzMzRjZjNmZGQ2NThkZjg5MTljMzM2MWIwODQy
ZTJkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
RGVwcmVjYXRlZFBERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTgwLDYgKzgwLDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC0xMjc4LDMzICsxMjc5LDI4IEBAIHZvaWQgUERGUGx1Z2luOjpkaWRF
dmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QsIGNvbnN0IFdURjo6U3RyaW5nJikKICAgICAKIHN0
YXRpYyBOU1VJbnRlZ2VyIG1vZGlmaWVyRmxhZ3NGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQm
IGV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHJldHVy
biAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TU2hpZnRLZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZl
bnQuY29udHJvbEtleSgpID8gTlNDb250cm9sS2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50
LmFsdEtleSgpID8gTlNBbHRlcm5hdGVLZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQubWV0
YUtleSgpID8gTlNDb21tYW5kS2V5TWFzayA6IDApOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdT
aGlmdCA6IDApCisgICAgICAgIHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/IE5TRXZlbnRNb2RpZmll
ckZsYWdDb250cm9sIDogMCkKKyAgICAgICAgfCAoZXZlbnQuYWx0S2V5KCkgPyBOU0V2ZW50TW9k
aWZpZXJGbGFnT3B0aW9uIDogMCkKKyAgICAgICAgfCAoZXZlbnQubWV0YUtleSgpID8gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQgOiAwKTsKIH0KICAgICAKIHN0YXRpYyBib29sIGdldEV2ZW50
VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVu
dFR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNo
IChldmVudC50eXBlKCkpIHsKICAgICBjYXNlIFdlYkV2ZW50OjpLZXlEb3duOgotICAgICAgICBl
dmVudFR5cGUgPSBOU0tleURvd247CisgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5
RG93bjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBXZWJFdmVudDo6S2V5VXA6Ci0g
ICAgICAgIGV2ZW50VHlwZSA9IE5TS2V5VXA7CisgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRU
eXBlS2V5VXA7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNl
RG93bjoKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4o
ZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRv
bjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93bjsKKyAgICAgICAgICAg
IGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgotICAgICAg
ICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlRG93bjsKKyAgICAgICAgICAgIGV2ZW50VHlw
ZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd247CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMTIsMTAg
KzEzMDgsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdl
YkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBjYXNlIFdlYkV2ZW50OjpN
b3VzZVVwOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQm
PihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0
dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VVcDsKKyAgICAgICAgICAg
IGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAg
ICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZVVwOworICAgICAgICAgICAgZXZlbnRUeXBlID0g
TlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMjMsMTMgKzEzMTks
MTMgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50
JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZU1v
dmU6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2
ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246
Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CisgICAgICAgICAg
ICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAg
ICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZURyYWdnZWQ7CisgICAgICAgICAgICBl
dmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6Tm9CdXR0b246Ci0gICAgICAg
ICAgICBldmVudFR5cGUgPSBOU01vdXNlTW92ZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBO
U0V2ZW50VHlwZU1vdXNlTW92ZWQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMzcsNyArMTMzMyw2IEBA
IHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZl
bnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KICAgICAKIE5TRXZl
bnQgKlBERlBsdWdpbjo6bnNFdmVudEZvcldlYk1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVu
dCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQppbmRleCA2YzYwYmRkZTk1
ZmRkMzE3ZjZiNzE0ZTFmNDRmNmVlYjJmMzNkMzBiLi42MDMxYzU5MGRjMjMxZWNjZmVlYTIwYTA0
N2Y4NTY5NmNhNWQ4YTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KQEAgLTQ0
LDYgKzQ0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTFRleHRBcmVhRWxlbWVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTMsMjEgKzU0LDE4IEBAIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcgY3NzQWxpZ25tZW50VmFsdWVG
b3JOU1RleHRBbGlnbm1lbnQoTlNUZXh0QWxpZ25tZW50IGFsaWdubWVudCkKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKGFsaWdubWVudCkgewotICAg
IGNhc2UgTlNMZWZ0VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudExlZnQ6
CiAgICAgICAgIHJldHVybiAibGVmdCI7Ci0gICAgY2FzZSBOU1JpZ2h0VGV4dEFsaWdubWVudDoK
KyAgICBjYXNlIE5TVGV4dEFsaWdubWVudFJpZ2h0OgogICAgICAgICByZXR1cm4gInJpZ2h0IjsK
LSAgICBjYXNlIE5TQ2VudGVyVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVu
dENlbnRlcjoKICAgICAgICAgcmV0dXJuICJjZW50ZXIiOwotICAgIGNhc2UgTlNKdXN0aWZpZWRU
ZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50SnVzdGlmaWVkOgogICAgICAg
ICByZXR1cm4gImp1c3RpZnkiOwotICAgIGNhc2UgTlNOYXR1cmFsVGV4dEFsaWdubWVudDoKKyAg
ICBjYXNlIE5TVGV4dEFsaWdubWVudE5hdHVyYWw6CiAgICAgICAgIHJldHVybiAiLXdlYmtpdC1z
dGFydCI7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFn
Q2xpZW50TWFjLm1tCmluZGV4IGEzNmYzYjMyM2FiOTE2NTE0NzdiZDNjN2JlMjhjNmEyM2RlOWIx
N2QuLjYyNmU0MzZjNmFjNGZlNmI5YTdlYjUzYzJkMzU2YmY3OTZmZjQ0N2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGll
bnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9TdHJpbmdUcnVuY2F0b3IuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgog
I2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTYzLDEwICs2NCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRy
PFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9CaXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNv
bnN0IEluCiAgICAgUmV0YWluUHRyPE5TR3JhcGhpY3NDb250ZXh0PiBzYXZlZENvbnRleHQgPSBb
TlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdOwogCiAgICAgW05TR3JhcGhpY3NDb250
ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRX
aXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBl
ZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbaW1hZ2Ug
ZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRoKCksIGJpdG1h
cC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBv
c2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MSByZXNwZWN0RmxpcHBlZDpZRVMgaGludHM6bmlsXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01h
a2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdo
dCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9u
U291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwogCiAg
ICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4dC5nZXQo
KV07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294125</attachid>
            <date>2016-11-07 19:39:52 -0800</date>
            <delta_ts>2016-11-07 20:12:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107193543.patch</filename>
            <type>text/plain</type>
            <size>163335</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBL
aXRTdHVicy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVi
cy5oCmluZGV4IDExNjYxODkwMjY0YjU3Nzk5OTNiZDM3YWVjMzU0M2JhMTMwZDE0MDQuLjQyOGQ2
OTM4NjVhZDViN2QyM2VjNmI4YTJhNjk2ZDU5ODUxZjE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLQXBwS2l0U3R1YnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS0FwcEtpdFN0dWJzLmgKQEAgLTE1NCwxNSArMTU0LDE1
IEBAIHR5cGVkZWYgTlNVSW50ZWdlciBOU1JlY3RFZGdlOwogCiAvKiBEZXZpY2UtaW5kZXBlbmRl
bnQgYml0cyBmb3VuZCBpbiBldmVudCBtb2RpZmllciBmbGFncyAqLwogZW51bSB7Ci0gICAgTlNB
bHBoYVNoaWZ0S2V5TWFzayA9IDEgPDwgMTYsCi0gICAgTlNTaGlmdEtleU1hc2sgPSAgICAgIDEg
PDwgMTcsCi0gICAgTlNDb250cm9sS2V5TWFzayA9ICAgIDEgPDwgMTgsCi0gICAgTlNBbHRlcm5h
dGVLZXlNYXNrID0gIDEgPDwgMTksCi0gICAgTlNDb21tYW5kS2V5TWFzayA9ICAgIDEgPDwgMjAs
Ci0gICAgTlNOdW1lcmljUGFkS2V5TWFzayA9IDEgPDwgMjEsCi0gICAgTlNIZWxwS2V5TWFzayA9
ICAgICAgIDEgPDwgMjIsCi0gICAgTlNGdW5jdGlvbktleU1hc2sgPSAgIDEgPDwgMjMsCi0gICAg
TlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKKyAgICBO
U0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2sgPSAxIDw8IDE2LAorICAgIE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdCA9IDEgPDwgMTcsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSAx
IDw8IDE4LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gPSAxIDw8IDE5LAorICAgIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kID0gMSA8PCAyMCwKKyAgICBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZCA9IDEgPDwgMjEsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgPSAx
IDw8IDIyLAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbiA9IDEgPDwgMjMsCisgICAg
TlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrID0gMHhmZmZmMDAw
MFUKIH07CiAKIHR5cGVkZWYgZW51bSBfV0tXcml0aW5nRGlyZWN0aW9uIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5
YzBiZDBmNjY5ZWIyNTRkMGMuLjcyOGQzNDRhOTQ1MDM0YjljN2EyMDg1ZjQ1NjNkYzFiYjY5NjRl
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtMjksNiAr
MjksNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50
ZXJmYWNlIFdlYkNvcmVDdXJzb3JCdW5kbGUgOiBOU09iamVjdCB7IH0KIEBlbmQKQEAgLTY0LDEw
ICs2NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJ
bWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTCiAgICAgICAgIE5TUmVjdCBmcm9tUmVj
dCA9IE5TTWFrZVJlY3QoMCwgMCwgaW1hZ2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CiAK
ICAgICAgICAgW2V4cGFuZGVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJl
Y3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVj
dDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRp
b25Tb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwogICAgICAgICBbZXhwYW5kZWRJbWFnZSB1bmxvY2tG
b2N1c107CiAKICAgICAgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0N1cnNvciBhbGxvY10gaW5pdFdp
dGhJbWFnZTpleHBhbmRlZEltYWdlLmdldCgpIGhvdFNwb3Q6aG90U3BvdF0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggNjgyNDZiZWZhNTIzZWRm
ZjNiNjA1YzYwMTE4NzE5ZDQ3Mjk4ZDA5Yi4uMGZmNDIwMjAwY2M4YmQzNDg3ZTQ1NmY3NzkwZWRl
ZTk1ZThmNTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIKICNpbXBv
cnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzUsMTAgKzc2LDcgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZl
RHJhZ0ltYWdlVG9GcmFjdGlvbihSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGZsb2F0IGQKICAg
ICBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVkSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBh
bGxvY10gaW5pdFdpdGhTaXplOltpbWFnZS5nZXQoKSBzaXplXV0pOwogICAgIAogICAgIFtkaXNz
b2x2ZWRJbWFnZS5nZXQoKSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIFtpbWFnZS5nZXQoKSBkcmF3QXRQb2ludDpOU1plcm9Qb2ludCBmcm9tUmVj
dDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXplXS53aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdo
dCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weSBmcmFjdGlvbjpkZWx0YV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5TWmVyb1Bv
aW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ug
c2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvbkNvcHkgZnJhY3Rp
b246ZGVsdGFdOwogICAgIFtkaXNzb2x2ZWRJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICByZXR1cm4gZGlzc29sdmVkSW1hZ2U7CkBAIC0xMTksMTAgKzExNyw4IEBAIFJldGFpblB0cjxO
U0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpCiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgc2V0VHJhbnNm
b3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QqKSZ0cmFuc2Zvcm1dOwogICAgICAg
ICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIGNvbmNhdF07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkg
ZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlv
bjoxLjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW2ltYWdl
LT5zbmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJl
Y3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3Np
dGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKKwogICAgICAgICAgICAgW3Jv
dGF0ZWREcmFnSW1hZ2UuZ2V0KCkgdW5sb2NrRm9jdXNdOwogCiAgICAgICAgICAgICByZXR1cm4g
cm90YXRlZERyYWdJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9FdmVudExvb3BNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29w
TWFjLm1tCmluZGV4IGFmMGEzOTkyYjY2ZTlkNmZmYzAxNzcxMjQ4NTc2MjZhMDA1YTVlOTAuLmI5
Y2M1NDVhOTg0OTM0ZDU0NjBkZGJkZjViZDRlYzNlYTcxNTkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQpAQCAtMjUsMTYgKzI1LDE0IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlIDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQogewogICAgIFtOU0FwcCBzZXRXaW5kb3dz
TmVlZFVwZGF0ZTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0FueUV2ZW50
TWFzayB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjAuMDVd
IGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU11dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1h
dGNoaW5nTWFzazpOU0V2ZW50TWFza0FueSB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJ
bnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVl
OllFU11dOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGE1ZGYzNDc0YzMxMWM2YTc1NjFkN2Y0
ZDQ0NTUzMTRhYTA0ZDAwNzAuLjFjNGUzYzE5ODAzMWNmZmE2ZmE5YjY2NTI3MWFiZmE0NzMyZDc2
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBA
IC01NSw2ICs1NSw3IEBACiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2ltcG9ydCA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIApAQCAt
NjUzLDExICs2NTQsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBsb2NhdGlvbikKICAgICAvLyBIYWNrOiBXZSBtdXN0
IHBvc3QgYW4gZXZlbnQgdG8gd2FrZSB1cCB0aGUgTlNEcmFnTWFuYWdlciwgd2hpY2ggaXMgc2l0
dGluZyBpbiBhIG5leHRFdmVudCBjYWxsCiAgICAgLy8gdXAgdGhlIHN0YWNrIGZyb20gdXMgYmVj
YXVzZSB0aGUgQ29yZUZvdW5kYXRpb24gZHJhZyBtYW5hZ2VyIGRvZXMgbm90IHVzZSB0aGUgcnVu
IGxvb3AgYnkgaXRzZWxmLgogICAgIC8vIFRoaXMgaXMgdGhlIG1vc3QgaW5ub2N1b3VzIGV2ZW50
IHRvIHVzZSwgcGVyIEtyaXN0ZW4gRm9yc3Rlci4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU01vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9pbnQKKyAgICBOU0V2ZW50KiBldmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRp
b246TlNaZXJvUG9pbnQKICAgICAgICAgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRv
d051bWJlcjowIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6
ZXZlbnQgYXRTdGFydDpZRVNdOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggZDM0ZDZlYWU5
NDhmN2FmY2JhYjMzMDMxNGZkY2JhNzhlOWU0MDBiOC4uMGQyZTMxOGVjZGZiMTMwNDIzODc3YTcz
MmQ4MmY4NjkxOTc2OTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNTIsMjcgKzUyLDI0IEBAIHN0YXRp
YyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQ
cmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3Vz
ZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2lu
ZG93XSwgW2V2ZW50IHdpbmRvd10pOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIHsgMCwgMCB9OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKKyAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtl
dmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiB7IDAsIDAgfTsKICAgICB9CiB9CiAKQEAgLTgwLDMzICs3NywzMCBAQCBz
dGF0aWMgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5k
b3dWaWV3KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQ
NjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJl
OgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNh
c2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgot
ICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNTY3JvbGxXaGVlbDogewotICAg
ICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9t
IGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgotICAgICAg
ICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5
IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93LgotICAgICAgICAgICAgTlNQb2lu
dCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKLSAgICAgICAgICAgIGlmICh3
aW5kb3dWaWV3KQotICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW3dpbmRvd1ZpZXcgY29udmVy
dFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9p
bnQobG9jYXRpb24pOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQoKTsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hl
ZWw6IHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUg
Ym90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgor
ICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQg
YnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCisgICAgICAgIE5TUG9pbnQg
bG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIGlmICh3aW5kb3dW
aWV3KQorICAgICAgICAgICAgbG9jYXRpb24gPSBbd2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9j
YXRpb24gZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgcmV0dXJuIEludFBvaW50KGxvY2F0aW9uKTsK
KyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CiAgICAgfQog
fQogCkBAIC0xMTQsNzIgKzEwOCw2MyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91c2VCdXR0b25G
b3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewog
I2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJl
dHVybiBMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIE5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIExlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gUmlnaHRC
dXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBOb0J1dHRvbjsKICAgICB9CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBl
IG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6
Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92
ZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJl
dHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2Vk
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3Nl
ZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKIHN0YXRp
YyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNs
aWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVy
biBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogfQogCkBAIC00OTcsMjggKzQ4MiwyOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktl
eUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVGbGFnc0NoYW5nZWQpIHsKICAgICAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsK
LSAgICAgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgICAgIGNhc2Ug
NTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2siKTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgICAgIGNhc2Ug
NjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0g
ICAgICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgICAgICByZXR1cm4g
U3RyaW5nKCJBbHQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTk6IC8v
IExlZnQgQ3RybAotICAgICAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgNTQ6IC8v
IFJpZ2h0IENvbW1hbmQKKyAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
ICAgICByZXR1cm4gU3RyaW5nKCJNZXRhIik7CisKKyAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xv
Y2sKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7CisKKyAgICAgICAgY2Fz
ZSA1NjogLy8gTGVmdCBTaGlmdAorICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKworICAgICAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAorICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoIkFsdCIpOworCisgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgICAg
ICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDb250
cm9sIik7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgCkBAIC01MzQsNDQgKzUxOSwzOCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5T
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBl
dmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246
Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAg
ICAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
RmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TTnVtZXJpY1BhZEtleU1hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFy
Ci0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBj
YXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8g
KwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAg
ICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0
OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAg
ICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4
OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAg
ICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAg
ICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVy
CisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAx
CisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0
CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3
CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNTg1LDEwICs1NjQs
NyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAv
LyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29k
ZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlz
LiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVu
dCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NL
ZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlE
b3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9
PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXAp
KSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdF
UlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5T
U3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3Ro
XSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0p
IDogMDsKQEAgLTY0NiwzNSArNjIyLDMyIEBAIGRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3
MChOU0V2ZW50KiBldmVudCkKIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2ZW50
IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZs
YWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtl
eVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNzZXMg
Ym90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0IHJl
bGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNv
ZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2FzZSA1
NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2Fz
ZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0g
ICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNr
KSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAg
ICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0
cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9u
S2V5TWFzaykgPT0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIDU0
OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21t
YW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1No
aWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQg
QWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2
MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAg
Kzc5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9rZXkgPSBrZXlGb3JLZXlFdmVudChldmVudCk7
CiAgICAgICAgIG1fY29kZSA9IGNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIG1fYXV0b1JlcGVhdCA9
IFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50
IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwog
ICAgICAgICBtX2lzS2V5cGFkID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgICAgIG1faXNT
eXN0ZW1LZXkgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFj
LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
bW0KaW5kZXggOTFjYmVkZDBjZGEwNzA2NWIzYmYzZjE3MDE1OGYxZDYyNzczMTgzZi4uNjRkODU0
YThlODRjODYyYTkwYWJkNDU3NWNlNjNlYmVlNGQyZWUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtNDIsNiArNDIsNyBAQAog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIC8vIEZJWE1FOiBUaGVyZSBh
cmUgcmVwYWludGluZyBwcm9ibGVtcyBkdWUgdG8gQXF1YSBzY3JvbGwgYmFyIGJ1dHRvbnMnIHZp
c3VhbCBvdmVyZmxvdy4KIApAQCAtMTM5LDE4ICsxNDAsMTUgQEAgc3RhdGljIFNjcm9sbGJhckJ1
dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVF
bmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoY29udHJvbFNpemUpIHsKICAgICBj
YXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6
ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGNhc2UgU21hbGxT
Y3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIH0KIAogdm9pZCBT
Y3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggMDI0NzJjOWE2
OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4uYjEwMDQxYjVlYjE3MmY0MzcyYzQwMDU1
YjE2OTk3YzEzOTRjMjNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHN0YXRpYyBOU1JlY3QgZm9jdXNSaW5nQ2xpcFJlY3Q7CiBzdGF0aWMgQk9PTCB0aGVtZVdp
bmRvd0hhc0tleUFwcGVhcmFuY2U7CkBAIC02NywxMSArNjgsOCBAQCAtIChOU1dpbmRvdyAqKXdp
bmRvdwogewogICAgIC8vIFVzaW5nIGRlZmVyOllFUyBwcmV2ZW50cyB1cyBmcm9tIHdhc3Rpbmcg
YW55IHdpbmRvdyBzZXJ2ZXIgcmVzb3VyY2VzIGZvciB0aGlzIHdpbmRvdywgc2luY2Ugd2UncmUg
bm90IGFjdHVhbGx5CiAgICAgLy8gZ29pbmcgdG8gZHJhdyBpbnRvIGl0LiBUaGUgb3RoZXIgYXJn
dW1lbnRzIG1hdGNoIHdoYXQgeW91IGdldCB3aGVuIGNhbGxpbmcgLVtOU1dpbmRvdyBpbml0XS4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzdGF0aWMgV2ViQ29yZVRo
ZW1lV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVUaGVtZVdpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCkKLSAgICAgICAgc3R5bGVN
YXNrOk5TVGl0bGVkV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrVGl0bGVkIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpZRVNdOwogICAgIHJldHVybiB3aW5kb3c7CiB9CiAKQEAgLTE0NCwxNSArMTQyLDEyIEBA
IFRoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKIAogc3RhdGljIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAg
ICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNp
emU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICBpZiAoZm9udFNp
emUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWlu
aTsKIH0KIAogc3RhdGljIExlbmd0aFNpemUgc2l6ZUZyb21OU0NvbnRyb2xTaXplKE5TQ29udHJv
bFNpemUgbnNDb250cm9sU2l6ZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvciwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMpCkBAIC0xNzUs
MTYgKzE3MCwxMyBAQCBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbUZvbnQoY29uc3QgRm9udENh
c2NhZGUmIGZvbnQsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZAogCiBzdGF0aWMgQ29udHJvbFNp
emUgY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4m
IHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChtaW5ab29tZWRT
aXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6
ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3IpICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0
KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwot
ICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tO
U1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5a
b29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNTbWFsbENv
bnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19j
YXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tRmFjdG9y
KQorICAgICAgICAmJiBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53
aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0
aCgpICogem9vbUZhY3RvcikKKyAgICAgICAgJiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4g
TlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldENvbnRyb2xTaXplKE5TQ2Vs
bCogY2VsbCwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNp
emUmIG1pblpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpCkBAIC00ODAsMTAgKzQ3Miw3IEBA
IHN0YXRpYyB2b2lkIHNldFVwQnV0dG9uQ2VsbChOU0J1dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTCiB7CiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUg
YmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFpbnRpbmcgaW50by4KICAgICBjb25zdCBz
dGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcyA9IGJ1dHRvblNpemVzKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFy
dCB8fCB6b29tZWRTaXplLmhlaWdodCgpID4gYnV0dG9uU2l6ZXMoKVtOU1JlZ3VsYXJDb250cm9s
U2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRTaXplLmhlaWdo
dCgpID4gYnV0dG9uU2l6ZXMoKVtOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSB7CiAgICAgICAgIC8vIFVzZSB0aGUgc3F1YXJlIGJ1dHRvbgogICAgICAgICBpZiAo
W2NlbGwgYmV6ZWxTdHlsZV0gIT0gTlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZSkKICAgICAg
ICAgICAgIFtjZWxsIHNldEJlemVsU3R5bGU6TlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZV07
CkBAIC01NzksMTUgKzU2OCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAz
PiYgc3RlcHBlclNpemVzKCkKIC8vIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNzIHRoYW4gdGhl
IGNvcnJlc3BvbmRpbmcgdGV4dCBmaWVsZCBoZWlnaHQsCiBzdGF0aWMgTlNDb250cm9sU2l6ZSBz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQu
cGl4ZWxTaXplKCk7CiAgICAgaWYgKGZvbnRTaXplID49IDE4KQotICAgICAgICByZXR1cm4gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsK
ICAgICBpZiAoZm9udFNpemUgPj0gMTMpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNp
emU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBO
U0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xT
dGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqKQpAQCAtNjAwLDE1ICs1
ODYsMTIgQEAgc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGRyYXdJbmZvLnN0YXRlID0gY29u
dmVydENvbnRyb2xTdGF0ZXNUb1RoZW1lRHJhd1N0YXRlKGtUaGVtZUluY0RlY0J1dHRvbiwgc3Rh
dGVzKTsKICAgICBkcmF3SW5mby5hZG9ybm1lbnQgPSBrVGhlbWVBZG9ybm1lbnREZWZhdWx0Owog
ICAgIENvbnRyb2xTaXplIGNvbnRyb2xTaXplID0gY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKHN0
ZXBwZXJTaXplcygpLCBJbnRTaXplKHpvb21lZFJlY3Quc2l6ZSgpKSwgem9vbUZhY3Rvcik7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xTaXplID09
IE5TU21hbGxDb250cm9sU2l6ZSkKKyAgICBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6
ZVNtYWxsKQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uU21hbGw7
Ci0gICAgZWxzZSBpZiAoY29udHJvbFNpemUgPT0gTlNNaW5pQ29udHJvbFNpemUpCisgICAgZWxz
ZSBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZU1pbmkpCiAgICAgICAgIGRyYXdJbmZv
LmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b25NaW5pOwogICAgIGVsc2UKICAgICAgICAgZHJhd0lu
Zm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIAogICAgIEludFJlY3QgcmVjdCh6b29tZWRSZWN0KTsKICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CkBAIC03NDksMTIgKzczMiw5IEBAIExlbmd0
aFNpemUgVGhlbWVNYWM6Om1pbmltdW1Db250cm9sU2l6ZShDb250cm9sUGFydCBwYXJ0LCBjb25z
dCBGb250Q2FzY2FkZSYgZm9uCiAgICAgICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICAgICAgICAg
IHJldHVybiBMZW5ndGhTaXplKExlbmd0aCgwLCBGaXhlZCksIExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KDE1ICogem9vbUZhY3RvciksIEZpeGVkKSk7CiAgICAgICAgIGNhc2UgSW5uZXJTcGluQnV0
dG9uUGFydDp7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAg
ICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU01pbmlDb250cm9sU2l6ZV07CisgICAg
ICAgICAgICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU0NvbnRyb2xTaXplTWluaV07
CiAgICAgICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZShMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pihi
YXNlLndpZHRoKCkgKiB6b29tRmFjdG9yKSwgRml4ZWQpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oYmFzZS5oZWlnaHQoKSAqIHpvb21GYWN0
b3IpLCBGaXhlZCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gVGhlbWU6Om1pbmltdW1Db250cm9s
U2l6ZShwYXJ0LCBmb250LCB6b29tRmFjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KaW5kZXggZDNiOWVlOThkZjk0MjBjY2Q3MTE2YjA0MDM1NjM4M2NmYzc0NmY5
MC4uYjQ4NjA2Y2I1YTc0NGQ4NzBiODYxOTM0MzY2Mjg5OGJhOWZmNGVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxWaWRlb0Vs
ZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0
Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtNzMsMTAgKzc0LDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdwogLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0KWNv
bnRlbnRSZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilhU3R5bGUgYmFja2luZzooTlNCYWNraW5n
U3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxhZwogewogICAgIFVOVVNFRF9Q
QVJBTShhU3R5bGUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6TlNC
b3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENv
bnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3MgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmZsYWddOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKIApAQCAtMTIyLDE1ICsxMjAsMTIgQEAgLSAoQk9PTClyZXNpZ25G
aXJzdFJlc3BvbmRlcgogCiAtIChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICop
ZXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBCbG9j
ayBhbGwgY29tbWFuZCBrZXkgZXZlbnRzIHdoaWxlIHRoZSBmdWxsc2NyZWVuIHdpbmRvdyBpcyB1
cC4KLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5
cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotICAg
IGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spKQorICAgIGlm
ICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSkK
ICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIHJl
dHVybiBZRVM7CiB9CiAKQEAgLTE0NSwxMSArMTQwLDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIKIAogLSAoaWQpaW5pdAogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dl
YlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01h
a2VSZWN0KDAsIDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCB3aW5kb3dXaWR0aCwg
d2luZG93SGVpZ2h0KSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBp
bml0V2l0aFdpbmRvdzp3aW5kb3ddOwogICAgIFt3aW5kb3cgc2V0RGVsZWdhdGU6c2VsZl07CiAg
ICAgW3dpbmRvdyByZWxlYXNlXTsKQEAgLTE4OCwyMCArMTc5LDE3IEBAIC0gKHZvaWQpa2V5RG93
bjooTlNFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICBjYXNlICcgJzoKICAgICAgICAgICAgICAg
ICBbc2VsZiB0b2dnbGVQbGF5aW5nOm5pbF07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKLSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNBbHRlcm5hdGVLZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAg
ICBbc2VsZiBzZXRWb2x1bWU6W3NlbGYgbWF4Vm9sdW1lXV07CiAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBpbmNyZW1lbnRWb2x1bWVdOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToK
LSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzZXRWb2x1
bWU6MF07CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBk
ZWNyZW1lbnRWb2x1bWVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC0zNzgsMTcgKzM2NiwxMSBAQCAtICh2b2lkKXdpbmRvd0RpZExvYWQKICAgICBbY29u
dGVudFZpZXcgYWRkU3VidmlldzpfdGltZWxpbmVdOwogCiAgICAgX2VsYXBzZWRUaW1lVGV4dCA9
IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZVRleHRG
aWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtf
ZWxhcHNlZFRpbWVUZXh0IHNldEFsaWdubWVudDpOU0xlZnRUZXh0QWxpZ25tZW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX2VsYXBzZWRUaW1lVGV4dCBzZXRBbGlnbm1l
bnQ6TlNUZXh0QWxpZ25tZW50TGVmdF07CiAgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X2Vs
YXBzZWRUaW1lVGV4dF07CiAKICAgICBfcmVtYWluaW5nVGltZVRleHQgPSBjcmVhdGVUaW1lVGV4
dEZpZWxkKE5TTWFrZVJlY3Qod2luZG93V2lkdGggLSB0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiAtIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0
RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX3Jl
bWFpbmluZ1RpbWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAg
W2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X3JlbWFpbmluZ1RpbWVUZXh0XTsKIAogICAgIFt3aW5k
b3cgcmVjYWxjdWxhdGVLZXlWaWV3TG9vcF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQppbmRleCA0NTk4YTAzZWQyZmEzMjE1MGU2NGFm
OWNiYjY0NTk5NDY5ZmRkZjc3Li43ZGU1ZWI1MzdjN2ZhMDIzNTIyYmNlZjY4MzMyM2IyNTg0ZWNj
NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5p
bWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmlt
YXRpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zOCwxMCArMzksNyBAQCBzdGF0aWMg
Y29uc3QgQ0dGbG9hdCBzbG93TW90aW9uRmFjdG9yID0gMTA7CiAKIHN0YXRpYyBOU1RpbWVJbnRl
cnZhbCBXZWJXaW5kb3dBbmltYXRpb25EdXJhdGlvbkZyb21EdXJhdGlvbihOU1RpbWVJbnRlcnZh
bCBkdXJhdGlvbikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBy
ZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlN
YXNrKSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1v
ZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSA/IGR1cmF0aW9uICogc2xv
d01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwogfQogCiBzdGF0aWMgTlNSZWN0IHNjYWxlZFJlY3Qo
TlNSZWN0IF9pbml0aWFsRnJhbWUsIE5TUmVjdCBfZmluYWxGcmFtZSwgQ0dGbG9hdCBmYWN0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggM2VkZGMw
M2U0ZDhlOWY2MzUxN2M1MjcxZjIwMWI1Njc4MjJiOTAyOC4uODU3NjQyMzUyM2E5MGM4YTUyNTE4
MDU0YWQ5MmI1MTQ0ZjQxOTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtODEsNiArODEsNyBAQAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgog
I2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNpbXBvcnQgPG1hdGguaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgRU5BQkxFKE1FVEVS
X0VMRU1FTlQpCiAjaW1wb3J0ICJSZW5kZXJNZXRlci5oIgpAQCAtMzc5LDIyICszODAsMTMgQEAg
dm9pZCBSZW5kZXJUaGVtZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENT
U1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm8KICAgICAgICAgICAgIGZvbnROYW1lID0gQXRvbWljU3Ry
aW5nKCItYXBwbGUtc3RhdHVzLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNaW5p
Q29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAg
IGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZv
ckNvbnRyb2xTaXplOk5TTWluaUNvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0Zv
bnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplTWluaV1dOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0
ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF1dOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDb250cm9sOgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lz
dGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNSZWd1
bGFyQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1bGFyXV07CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZv
bnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZV1dOwpAQCAtNzc3LDMwICs3NjksMjQgQEAg
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvKSBjb25zdAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVG
b3JGb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpbnQgZm9udFNp
emUgPSBzdHlsZS5mb250U2l6ZSgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGlmIChmb250U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRy
b2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZv
bnRTaXplID49IDExKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJl
dHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6
ZU1pbmk7CiB9CiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9y
Q2VsbChOU0NlbGwqLCBjb25zdCBJbnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6
ZSwgZmxvYXQgem9vbUxldmVsKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXpl
c1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21MZXZlbCkKLSAgICAgICAgJiYg
bWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tTGV2ZWwpCisgICAgICAg
ICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xT
aXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVJlZ3VsYXI7CiAKLSAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0
PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxldmVsKQotICAg
ICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFs
bENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1Nt
YWxsQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lkdGgoKSAqIHpvb21MZXZlbCkKKyAgICAg
ICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJv
bFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVNtYWxsOwogCi0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAog
dm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBJ
bnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSwgZmxvYXQgem9vbUxldmVsKQpA
QCAtODU3LDE1ICs4NDMsMTIgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250
cm9sU2l6ZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmIHN0eWxlLAogCiBOU0NvbnRyb2xT
aXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0gICAgaWYgKGZvbnRTaXpl
ID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9s
U2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAoZm9u
dFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250
cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250
cm9sU2l6ZVJlZ3VsYXJdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7Cisg
ICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpO
U0NvbnRyb2xTaXplU21hbGxdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOwor
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6
cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiByKQpAQCAtMTE0NywxMCArMTEzMCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50UHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgY29uc3QgYXV0byYgcmVuZGVyUHJvZ3Jlc3MgPSBkb3du
Y2FzdDxSZW5kZXJQcm9ncmVzcz4ocmVuZGVyT2JqZWN0KTsKICAgICBISVRoZW1lVHJhY2tEcmF3
SW5mbyB0cmFja0luZm87CiAgICAgdHJhY2tJbmZvLnZlcnNpb24gPSAwOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU1JlZ3VsYXJD
b250cm9sU2l6ZSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoY29udHJv
bFNpemUgPT0gTlNDb250cm9sU2l6ZVJlZ3VsYXIpCiAgICAgICAgIHRyYWNrSW5mby5raW5kID0g
cmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBrVGhlbWVMYXJnZUluZGV0ZXJtaW5hdGVC
YXIgOiBrVGhlbWVMYXJnZVByb2dyZXNzQmFyOwogICAgIGVsc2UKICAgICAgICAgdHJhY2tJbmZv
LmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZU1lZGl1bUluZGV0
ZXJtaW5hdGVCYXIgOiBrVGhlbWVNZWRpdW1Qcm9ncmVzc0JhcjsKQEAgLTE0MzgsMTUgKzE0MTgs
MTIgQEAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgUmVuZGVyVGhlbWVNYWM6OnBvcHVw
TWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICBOU1BvcFVwQnV0dG9uQ2VsbCogcG9w
dXBCdXR0b24gPSB0aGlzLT5wb3B1cEJ1dHRvbigpOwogICAgIE5TQ29udHJvbFNpemUgc2l6ZSA9
IGNvbnRyb2xTaXplRm9yQ2VsbChwb3B1cEJ1dHRvbiwgcG9wdXBCdXR0b25TaXplcygpLCByZWN0
LnNpemUoKSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICBzd2l0Y2ggKHNpemUpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TUmVndWxhckNvbnRy
b2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVJlZ3VsYXI6CiAgICAgICAgIHJldHVybiBQ
b3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsKLSAgICBjYXNlIE5TU21hbGxDb250
cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVTbWFsbDoKICAgICAgICAgcmV0dXJuIFBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw7Ci0gICAgY2FzZSBOU01pbmlDb250cm9s
U2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVNaW5pOgogICAgICAgICByZXR1cm4gUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU5vcm1hbDsKICAgICB9CkBAIC0yMDU1LDEyICsyMDMyLDkgQEAgTlNTbGlkZXJDZWxsKiBS
ZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJIb3Jpem9udGFsKCkgY29uc3QKIHsKICAgICBpZiAo
IW1fc2xpZGVyVGh1bWJIb3Jpem9udGFsKSB7CiAgICAgICAgIG1fc2xpZGVyVGh1bWJIb3Jpem9u
dGFsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxvY10gaW5pdF0pOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwu
Z2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRlclRo
dW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdOwor
ICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1Ns
aWRlclR5cGVMaW5lYXJdOworICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkg
c2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1
bWJIb3Jpem9udGFsLmdldCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJp
b3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIHJldHVybiBt
X3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKTsKQEAgLTIwNzAsMTEgKzIwNDQsOCBAQCBOU1Ns
aWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYlZlcnRpY2FsKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fc2xpZGVyVGh1bWJWZXJ0aWNhbCkgewogICAgICAgICBtX3NsaWRlclRodW1i
VmVydGljYWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0XSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRlclRodW1iVmVydGlj
YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRl
clRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0
aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFtt
X3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRGb2N1c1JpbmdU
eXBlOk5TRm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXggZjJhMzU5NzNhNzFlMDY4
MjYwYTkxYzk2N2QyOTA1MGQyZWRlNzYwZC4uYTY5ZjZmMWZhNTBhOWE0YWRkODYzZjQ3OTViYzFk
NzEyZjBiYTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW0KQEAgLTc2LDYgKzc2LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RF
eHRyYXMuaCIKQEAgLTE3MywxMyArMTc0LDE0IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93
UmVmOihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAK
ICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBzdHlsZSBtYXNrLgogICAgIHN0eWxlTWFz
ayA9IFdLQ2FyYm9uV2luZG93TWFzaygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRl
KSBzdHlsZU1hc2sgfD0gTlNDbG9zYWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0F0dHJp
YnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKSBzdHlsZU1hc2sgfD0gTlNSZXNpemFi
bGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBz
ZSkgc3R5bGVNYXNrIHw9IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5k
b3dGZWF0dXJlcyAmIGtXaW5kb3dIYXNUaXRsZUJhcikgc3R5bGVNYXNrIHw9IE5TVGl0bGVkV2lu
ZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAod2luZG93QXR0
cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0dHJpYnV0ZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9
IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBr
V2luZG93UmVzaXphYmxlQXR0cmlidXRlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dT
dHlsZU1hc2tSZXNpemFibGU7CisgICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0NhbkNv
bGxhcHNlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6
YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpCisgICAg
ICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZDsKIAogICAgIG9zU3RhdHVz
ID0gR2V0V2luZG93TW9kYWxpdHkoX3dpbmRvd1JlZiwgJndpbmRvd01vZGFsaXR5LCBOVUxMKTsK
ICAgICBpZiAob3NTdGF0dXMgIT0gbm9FcnIpIHsKQEAgLTM5MywxOCArMzk1LDEyIEBAIC0gKHZv
aWQpc2VuZFN1cGVyRXZlbnQ6KE5TRXZlbnQgKilpbkV2ZW50IHsKICAgICAvLyBJZ25vcmUgc29t
ZSB1bmtub3duIGV2ZW50IHRoYXQgZ2V0cyBzZW50IHdoZW4gTlNUZXh0Vmlld3MgaW4gcHJpbnRp
bmcgYWNjZXNzb3J5IHZpZXdzIGFyZSBmb2N1c2VkLiAgTS5QLiBOb3RpY2UgLSAxMi83LzAwCiAg
ICAgQk9PTCBpZ25vcmVFdmVudCA9IE5POwogICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IFtp
bkV2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
IChldmVudFR5cGU9PU5TU3lzdGVtRGVmaW5lZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZpbmVkKSB7CiAg
ICAgICAgIHNob3J0IGV2ZW50U3VidHlwZSA9IFtpbkV2ZW50IHN1YnR5cGVdOwotICAgICAgICBp
ZiAoZXZlbnRTdWJ0eXBlPT03KSB7CisgICAgICAgIGlmIChldmVudFN1YnR5cGUgPT0gNykgewog
ICAgICAgICAgICAgaWdub3JlRXZlbnQgPSBZRVM7CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBOU0tleURv
d24pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICB9IGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAgICAgICAgLy8gSGFuZGxlIGNvbW1hbmQt
c3BhY2UgYXMgW05TQXBwIHNlbmRFdmVudDpdIGRvZXMuCiAgICAgICAgIGlmIChbTlNJbnB1dENv
bnRleHQgcHJvY2Vzc0lucHV0S2V5QmluZGluZ3M6aW5FdmVudF0pIHsKICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KaW5kZXggZWFkNTkzNjk2ZDRiOWE5NzY2YTNjYmNl
MDNlYWQ2ZWFmZDA3OTU3OS4uNmQwNmM3MDEwYzUyYjgxZDUzMTUxZTE4NTJkNDE0NDFiOTEyOWQ5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvSWRlbnRpZmllclJlcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVy
Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBleHRlcm4gIkMiIHsKICNpbXBvcnQg
IldlYktpdFBsdWdpbkhvc3QuaCIKQEAgLTIzMCwxMCArMjMxLDcgQEAgdm9pZCBOZXRzY2FwZVBs
dWdpbkhvc3RQcm94eTo6YmVnaW5Nb2RhbCgpCiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2lu
ZG93KTsKICAgICBBU1NFUlQoIW1fYWN0aXZhdGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRv
cHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFz
ayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgbV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0TlMoW1tX
ZWJQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFr
ZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAKICAgICBtX2FjdGl2
YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25XaWxsQmVjb21lQWN0aXZlTm90aWZpY2F0aW9u
IG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ0Jsb2NrOl4oTlNO
b3RpZmljYXRpb24gKil7IGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7IH1dOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDFiNGQzYTk2ZmE5YWU3YTE3N2U0NTEyZjQ1NjQx
ZGFhMjQzN2Q0YzkuLmFhMGRmNTQyNGE0MjZmZDNhZDc4MzQzNDZjZDdiMmFkNGMyOTU1MzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTY2LDYgKzY2LDcgQEAKICNpbXBvcnQg
PHV0aWxpdHk+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9S
ZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBleHRl
cm4gIkMiIHsKQEAgLTQ2NSwxNSArNDY2LDEyIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5OjpzeW50aGV0aWNLZXlEb3duV2l0aENvbW1hbmRNb2RpZmllcihpbnQga2V5Q29kCiB7
CiAgICAgTlNEYXRhICpjaGFyYWN0ZXJzRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczomY2hh
cmFjdGVyIGxlbmd0aDoxXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgIF9XS1BIUGx1Z2luSW5zdGFuY2VLZXlib2FyZEV2ZW50KG1fcGx1Z2luSG9zdFByb3h5LT5w
b3J0KCksIG1fcGx1Z2luSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBOUENvY29hRXZlbnRLZXlEb3duLCBOU0NvbW1hbmRLZXlN
YXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtl
eURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KFtjaGFyYWN0ZXJzRGF0YSBieXRlc10pKSwgW2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0s
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFtjaGFyYWN0ZXJzRGF0YSBieXRlc10pKSwg
W2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZhbHNlLCBrZXlDb2RlLCBjaGFyYWN0ZXIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZmxhZ3NDaGFu
Z2VkKE5TRXZlbnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDM3
NjY3MmI2ODY3MzdjNzczZWRjNmRmNjg0YjI4Nzk4Mjk2NGY1NDEuLmRmYzhjY2E3MjgyNDhhODk2
YTgxM2U2Zjc5MjQyYzA5NDJiMjVjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0K
QEAgLTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3
dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNDQzLDEwICs0NDQs
NyBAQCAtICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVjdAogewogICAgIGlmIChfY2FjaGVkU25h
cHNob3QpIHsKICAgICAgICAgTlNSZWN0IHNvdXJjZVJlY3QgPSB7IE5TWmVyb1BvaW50LCBbX2Nh
Y2hlZFNuYXBzaG90LmdldCgpIHNpemVdIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgICAgIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgZHJhd0luUmVjdDpbc2VsZiBi
b3VuZHNdIGZyb21SZWN0OnNvdXJjZVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3Zl
ciBmcmFjdGlvbjoxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW19j
YWNoZWRTbmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291
cmNlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rp
b246MV07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2Nv
YS5tbQppbmRleCBhMWQxNTlhZjk0ZTE0ODlhNDhiMDk5MjEwOGQwM2YzOTgwNWYyOTk2Li45YzUy
MDFmZTYyZDI2M2JkMzVlYjVlNzFkNGEzNzAxYWFhOTE3ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNvY29hLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaCIKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgogI2ltcG9ydCA8d3Rm
L1ZlY3Rvci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OldlYk5ldHNjYXBl
UGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EoV2ViTmV0c2NhcGVQbHVnaW5WaWV3KiBwbHVnaW5WaWV3
KQogICAgIDogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIocGx1Z2luVmlldykKQEAgLTE2
MSwxMCArMTYyLDcgQEAgdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpz
eW50aGV0aWNLZXlEb3duV2l0aENvbW1hbmRNb2RpZmllcihpbnQKICAgICAKICAgICBOUENvY29h
RXZlbnQgZXZlbnQ7CiAgICAgaW5pdGlhbGl6ZUV2ZW50KCZldmVudCwgTlBDb2NvYUV2ZW50S2V5
RG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgZXZlbnQuZGF0
YS5rZXkubW9kaWZpZXJGbGFncyA9IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgZXZlbnQuZGF0YS5rZXkubW9kaWZpZXJGbGFncyA9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIGV2ZW50LmRhdGEua2V5LmtleUNvZGUgPSBrZXlDb2Rl
OwogICAgIGV2ZW50LmRhdGEua2V5LmlzQVJlcGVhdCA9IGZhbHNlOwogICAgIGV2ZW50LmRhdGEu
a2V5LmNoYXJhY3RlcnMgPSAoTlBOU1N0cmluZyAqKWNoYXJhY3RlcnMuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KaW5kZXggYzQ2
NjcwYjRkNzlkOGNlODRmYmQ0MTE1OGZiNzMwODBhZTgwNDc5Yi4uNzlmMjhmYjgyY2I3ZmQ5Mzlj
ZDMzMjM0ZWM0N2VjMDM5NjZlZTUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9Qb3B1cE1lbnVDbGllbnQuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMv
QXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIApAQCAtOTAsMTcgKzkxLDExIEBAIHZvaWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgp
CiAgICAgICAgIH0KIAogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+
IHBhcmFncmFwaFN0eWxlID0gYWRvcHROUyhbW05TUGFyYWdyYXBoU3R5bGUgZGVmYXVsdFBhcmFn
cmFwaFN0eWxlXSBtdXRhYmxlQ29weV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0
aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBz
ZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNUZXh0QWxpZ25tZW50TGVm
dCA6IE5TVGV4dEFsaWdubWVudFJpZ2h0XTsKICAgICAgICAgTlNXcml0aW5nRGlyZWN0aW9uIHdy
aXRpbmdEaXJlY3Rpb24gPSBzdHlsZS50ZXh0RGlyZWN0aW9uKCkgPT0gTFRSID8gTlNXcml0aW5n
RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAg
ICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndyaXRpbmdEaXJl
Y3Rpb25dOwogICAgICAgICBpZiAoc3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCkpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFJldGFpblB0
cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVyIGFs
bG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TVGV4dFdyaXRpbmdEaXJl
Y3Rpb25PdmVycmlkZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtb
TlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0
aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PiB3
cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhP
YmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1ZS5nZXQoKSwgbmlsXSk7CiAgICAgICAgICAgICBb
YXR0cmlidXRlcyBzZXRPYmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpO
U1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1lXTsKICAgICAgICAgfQpAQCAtMjA2LDE4ICsy
MDEsMTUgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVW
aWV3KiB2LCBpbnQgaW5kZXgpCiAKICAgICBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplOwogICAg
IHN3aXRjaCAobV9jbGllbnQtPm1lbnVTdHlsZSgpLm1lbnVTaXplKCkpIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1l
bnVTaXplTm9ybWFsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TUmVndWxhckNvbnRyb2xTaXpl
OworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAg
ICAgIGNvbnRyb2xTaXplID0gTlNTbWFsbENvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6
ZSA9IE5TQ29udHJvbFNpemVTbWFsbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNNaW5p
Q29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZU1pbmk7CiAg
ICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAg
IFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyKSksIGR1bW15Vmll
dy5nZXQoKSwgaW5kZXgsIHRvTlNGb250KGZvbnQpLCBjb250cm9sU2l6ZSwgIW1fY2xpZW50LT5t
ZW51U3R5bGUoKS5oYXNEZWZhdWx0QXBwZWFyYW5jZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KaW5kZXgg
OTE0ZDhlMDYzZThlYjBmY2E5ZWFlOWQ3YmJiYzgxZjYxYjdiODhkNi4uYTM5YjkzZTc3ZTI2YTY0
MzNiOTI4ODhmMTkzM2EwOTk1NTE1YzYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KQEAgLTYwLDYgKzYw
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1VSTC5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTVByaXZhdGUuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMjY5LDEwICsyNzAsNyBAQCB2b2lkIFdlYkNv
bnRleHRNZW51Q2xpZW50OjpzaG93Q29udGV4dE1lbnUoKQogCiAgICAgTlNWaWV3KiB2aWV3ID0g
ZnJhbWVWaWV3LT5kb2N1bWVudFZpZXcoKTsKICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmll
dy0+Y29udGVudHNUb1dpbmRvdyhwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5oaXRUZXN0
UmVzdWx0KCkucm91bmRlZFBvaW50SW5Jbm5lck5vZGVGcmFtZSgpKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxh
Z3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVy
XSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlRG93biBsb2NhdGlvbjpwb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3dd
IHdpbmRvd051bWJlcl0gY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNz
dXJlOjFdOwogCiAgICAgLy8gU2hvdyB0aGUgY29udGV4dHVhbCBtZW51IGZvciB0aGlzIGV2ZW50
LgogICAgIGJvb2wgaXNTZXJ2aWNlc01lbnU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDExNDc2YTAz
Mjc2ZWRkOTRlNzU1NTEzOTMwYWI0NjE5YmNlZGY5NTMuLjAyN2U1NGI3MzdlYWViMDc4YTE2ZjBl
ZmQ2ZWU4ZGJlYzgzZjM0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNDYsNiArMTQ2LDggQEAK
ICNpbXBvcnQgIldlYktpdFZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldlYk1haWxEZWxlZ2F0
ZS5oIgogI2ltcG9ydCAiV2ViVUlLaXREZWxlZ2F0ZS5oIgorI2Vsc2UKKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBVU0Uo
UVVJQ0tfTE9PSykKQEAgLTE1NjEsMTcgKzE1NjMsMTQgQEAgTlNEaWN0aW9uYXJ5ICpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6YWN0aW9uRGljdGlvbmFyeShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBh
Y3QKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IFVJRXZlbnRXaXRoS2V5U3RhdGUqIGtl
eVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUoY29uc3RfY2FzdDxFdmVudCo+KGV2
ZW50KSk7CiAgICAgaWYgKGtleVN0YXRlRXZlbnQgJiYga2V5U3RhdGVFdmVudC0+aXNUcnVzdGVk
KCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgaWYgKGtl
eVN0YXRlRXZlbnQtPmN0cmxLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlND
b250cm9sS2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2w7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKSkKLSAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAgICAgICBp
ZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdTaGlmdDsKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFLZXkoKSkK
LSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgfQogI2Vsc2UKICAgICAvLyBObyBtb2RpZmllciBm
bGFncyBvbiBpT1MgcmlnaHQgbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggOTA3ODdkNjIwYjM4MWU1Mzhj
N2IxYWRkYzc2ZjJkMjljNTkzMjIwOS4uNzZiMmNkMmNiZjEwYjIwYTM5OTNjMmYzZjdiNzE5Y2Jl
N2E1ODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNTMsNiArNTMsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTUV4dGVuc2lvbnMuaD4K
ICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQu
aD4KIAogU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVG
cmFtZXdvcmtzLCBBKQpAQCAtMTkxLDEwICsxOTIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50OjphdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wgYXZhaWxhYmxlKQogCiBi
b29sIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpjYW5BdHRhY2goKQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250
cm9sbGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TRnVsbFNjcmVlbldpbmRvd01hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtbbV9mcm9udGVuZFdpbmRvd0NvbnRy
b2xsZXIgd2luZG93XSBzdHlsZU1hc2tdICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2NyZWVuKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gY2FuQXR0YWNoV2luZG93KCk7CkBA
IC00NjUsMTAgKzQ2Myw3IEBAIC0gKE5TV2luZG93ICopd2luZG93CiAgICAgaWYgKHdpbmRvdykK
ICAgICAgICAgcmV0dXJuIHdpbmRvdzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNrIHwgTlND
bG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TUmVzaXph
YmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNVSW50ZWdlciBzdHlsZU1hc2sgPSBOU1dpbmRv
d1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dpbmRvd1N0
eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUgfCBOU1dp
bmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXc7CiAgICAgd2luZG93ID0gW1tOU1dpbmRv
dyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIGluaXRpYWxXaW5k
b3dXaWR0aCwgaW5pdGlhbFdpbmRvd0hlaWdodCkgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0RGVsZWdh
dGU6c2VsZl07CiAgICAgW3dpbmRvdyBzZXRNaW5TaXplOk5TTWFrZVNpemUobWluaW11bVdpbmRv
d1dpZHRoLCBtaW5pbXVtV2luZG93SGVpZ2h0KV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4IDAyYTc1NmY3Njc3MzE1YzYy
MmRkODFkOTlhMjlmYWMzZmI1YmY5ZTIuLjY2N2IyYzVhNTQ0N2FhZTQ2YTVlNjA3YzU3NDE0NDAy
NzJiNDYyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJO
b2RlSGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJO
b2RlSGlnaGxpZ2h0Lm1tCkBAIC0zOSw2ICszOSw4IEBACiAjaW1wb3J0ICJXZWJWaWV3LmgiCiAj
aW1wb3J0IDxXZWJDb3JlL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0FLV2lu
ZG93Lmg+CisjZWxzZQorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05MSwxMCAr
OTMsNyBAQCAtIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5z
cGVjdG9yQ29udHJvbGxlcjooSW5zcGVjdG9yQ29udAogICAgIF9pbnNwZWN0b3JDb250cm9sbGVy
ID0gaW5zcGVjdG9yQ29udHJvbGxlcjsKIAogI2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaW50IHN0eWxlTWFzayA9IE5TQm9yZGVybGVz
c1dpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaW50IHN0eWxl
TWFzayA9IE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzczsKICAgICBOU1JlY3QgY29udGVudFJl
Y3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JGcmFtZVJlY3Q6W3NlbGYgX2NvbXB1dGVIaWdo
bGlnaHRXaW5kb3dGcmFtZV0gc3R5bGVNYXNrOnN0eWxlTWFza107CiAgICAgX2hpZ2hsaWdodFdp
bmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qg
c3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dOwogICAgIFtfaGlnaGxpZ2h0V2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBj
bGVhckNvbG9yXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCmlu
ZGV4IDVlYzE5Nzg1ZGE3Mjk3YjFhMjQ0YzU3NjMyMDcwYzRiZGU5NDZiMDUuLjViODY3MTU0MGU2
ZjhhMTIzMWVjZTFmNTQ5NDRiMTU4ODkzNzRiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC04Myw2ICs4Myw3IEBACiAjZWxzZQogI2ltcG9ydCAiV2Vi
TlNQYXN0ZWJvYXJkRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJOU1dpbmRvd0V4dHJhcy5oIgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjZW5kaWYK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05MTUsOSArOTE2LDcgQEAgLSAodm9pZClr
ZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgQk9PTCBjYWxsU3VwZXIgPSBZRVM7CiAgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIEJPT0wgbWFpbnRhaW5z
QmFja0ZvcndhcmRMaXN0ID0gY29yZUZyYW1lICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlz
dCo+KGNvcmVGcmFtZS0+cGFnZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+ZW5hYmxlZCgp
ID8gWUVTIDogTk87Ci0gICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisK
ICAgICBjb3VudCA9IFtjaGFyYWN0ZXJzIGxlbmd0aF07CiAgICAgZm9yIChpbmRleCA9IDA7IGlu
ZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgc3dpdGNoIChbY2hhcmFjdGVycyBjaGFy
YWN0ZXJBdEluZGV4OmluZGV4XSkgewpAQCAtOTI4LDcgKzkyNyw3IEBAIC0gKHZvaWQpa2V5RG93
bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAv
LyBUaGlzIG9kZCBiZWhhdmlvciBtYXRjaGVzIHNvbWUgZXhpc3RpbmcgYnJvd3NlcnMsCiAgICAg
ICAgICAgICAgICAgLy8gaW5jbHVkaW5nIFdpbmRvd3MgSUUKLSAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpIHsKICAgICAgICAgICAgICAg
ICAgICAgW3NlbGYgX2dvRm9yd2FyZF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgX2dvQmFja107CkBAIC05NDMsNyArOTQyLDcgQEAgLSAodm9p
ZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBl
ciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spIHsKKyAg
ICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlm
dCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdl
RG93bjpuaWxdOwpAQCAtOTg0LDcgKzk4Myw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRl
ZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2Uu
Ci0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBO
U0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYg
KE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkg
ewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTk5OCw5ICs5OTcsOSBAQCAtICh2b2lk
KWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBb
c2VsZiBzY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VVcDpuaWxdOwogICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbExp
bmVVcDpuaWxdOwpAQCAtMTAwOSw3ICsxMDA4LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVu
dCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TRG93
bkFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNo
aWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hh
bmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNr
IHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC0xMDIzLDkgKzEwMjIsOSBAQCAt
ICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAg
ICAgICBbc2VsZiBzY3JvbGxUb0VuZE9mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VEb3duOm5pbF07CiAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xs
TGluZURvd246bmlsXTsKQEAgLTEwMzQsMTIgKzEwMzMsMTIgQEAgLSAodm9pZClrZXlEb3duOihX
ZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IE5TTGVmdEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFu
ZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZl
IGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRL
ZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFn
Q29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
Ly8gQ2hlY2sgYmFjay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICghbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKQEAgLTEwNTIsNyArMTA1MSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVu
dAogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5
TWFzaykgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRN
b2RpZmllckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdl
SG9yaXpvbnRhbGx5OllFU107CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBbc2VsZiBfc2Nyb2xsTGluZUhvcml6b250YWxseTpZRVNdOwpAQCAt
MTA2MiwxMiArMTA2MSwxMiBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNSaWdodEFycm93RnVuY3Rp
b25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29u
dHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgotICAgICAg
ICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlNDb250cm9s
S2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU0V2ZW50
TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgYmFjay9mb3J3
YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
Q29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbWFp
bnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsU3Vw
ZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEwODAsNyArMTA3
OSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
ICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAg
ICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24p
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdlSG9yaXpvbnRhbGx5Ok5PXTsK
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtz
ZWxmIF9zY3JvbGxMaW5lSG9yaXpvbnRhbGx5Ok5PXTsKQEAgLTEwOTAsNyArMTA4OSw2IEBAIC0g
KHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIGlmIChj
YWxsU3VwZXIpIHsKICAgICAgICAgW3N1cGVyIGtleURvd246ZXZlbnRdOwogICAgIH0gZWxzZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250
cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJv
bGxlci5tbQppbmRleCA5ZmQ5NTY2MTdmMDdjNmNmNmY0ODU3Y2M5ZTIyMTQwYjIxODhiMmU0Li5m
NTQzNDFmZGJiNGU0ZDNjZWQ5ZGVkMTYzZjE4NDMyYjA0NmQ5YjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTQ3
LDYgKzQ3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViV2luZG93QW5pbWF0aW9uLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtODYsMTEgKzg3LDggQEAgQGltcGxlbWVudGF0
aW9uIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyCiAjcHJhZ21hIG1hcmsgSW5pdGlhbGl6YXRpb24K
IC0gKGlkKWluaXQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAv
LyBEbyBub3QgZGVmZXIgd2luZG93IGNyZWF0aW9uLCB0byBtYWtlIHN1cmUgLXdpbmRvd051bWJl
ciBpcyBjcmVhdGVkIChuZWVkZWQgYnkgV2ViV2luZG93U2NhbGVBbmltYXRpb24pLgotICAgIE5T
V2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TQ2xvc2FibGVXaW5kb3dNYXNrIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZUZ1bGxTY3JlZW5X
aW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6TlNX
aW5kb3dTdHlsZU1hc2tDbG9zYWJsZSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6Tk9dOwogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsKICAgICBb
d2luZG93IHJlbGVhc2VdOwogICAgIGlmICghc2VsZikKQEAgLTQ2MiwxMCArNDYwLDcgQEAgLSAo
dm9pZClfc3dhcFZpZXc6KE5TVmlldyopdmlldyB3aXRoOihOU1ZpZXcqKW90aGVyVmlldwogCiBz
dGF0aWMgUmV0YWluUHRyPE5TV2luZG93PiBjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRv
dyhOU1JlY3QgZnJhbWUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6ZnJhbWUgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6
TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW3dpbmRvdyBzZXRPcGFxdWU6
WUVTXTsKICAgICBbd2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBibGFja0NvbG9y
XV07CiAgICAgW3dpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNTVmMWFlMmQ0NThmNTYxMzk1ZmMzMjZh
YWNiYzYwZjRkYjMyMTNjNC4uMDg0ZmU0NTU3ZTdhYjg1MzQzN2FjYzUxZTllMjc4N2FmZmE1MGMx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xNDAsMTIg
KzE0MCwxMyBAQAogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogI2lmICFQTEFURk9STShJT1Mp
CisjaW1wb3J0ICJXZWJOU0V2ZW50RXh0cmFzLmgiCisjaW1wb3J0ICJXZWJOU1Bhc3RlYm9hcmRF
eHRyYXMuaCIKICNpbXBvcnQgPEFwcEtpdC9OU0FjY2Vzc2liaWxpdHkuaD4KICNpbXBvcnQgPEFw
cGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9OU01lbnVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMu
aD4KLSNpbXBvcnQgIldlYk5TRXZlbnRFeHRyYXMuaCIKLSNpbXBvcnQgIldlYk5TUGFzdGVib2Fy
ZEV4dHJhcy5oIgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAjZW5kaWYKIAogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CkBAIC0x
MzUxLDEyICsxMzUyLDkgQEAgLSAodm9pZClfcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJk
OihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkCiAKIC0gKHZvaWQpX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6KE5TRXZlbnQgKilmbGFnc0NoYW5nZWRFdmVudAog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246
ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVh
bQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1v
dXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQogICAgICAgICBtb2RpZmllckZsYWdzOmZs
YWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1wOmZsYWdzQ2hhbmdlZEV2ZW50
LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93TnVtYmVyCiAg
ICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3Vy
ZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbc2VsZiBtb3VzZU1vdmVk
OmZha2VFdmVudF07CiB9CiAKQEAgLTE1MDYsMTAgKzE1MDQsNyBAQCAtICh2b2lkKV9zZXRNb3Vz
ZURvd25FdmVudDooV2ViRXZlbnQgKilldmVudAogI2VuZGlmCiB7CiAjaWYgIVBMQVRGT1JNKElP
UykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoIWV2ZW50
IHx8IFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5T
UmlnaHRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TT3RoZXJNb3VzZURvd24pOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVPdGhlck1v
dXNlRG93bik7CiAjZWxzZQogICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9PSBXZWJF
dmVudE1vdXNlRG93bik7CiAjZW5kaWYKQEAgLTE2NjEsMTYgKzE2NTYsMTcgQEAgLSAoaWQpX2Jy
aWRnZQogCiAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50CiB7CisgICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TW91c2VNb3ZlZAorICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQogI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKLSAgICAgICAgbG9jYXRpb246W1tzZWxm
IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAg
ICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1
cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGlt
ZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dOdW1iZXI6W1tzZWxm
IHdpbmRvd10gd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAg
ZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAKICAgICBbc2VsZiBfdXBkYXRlTW91c2VvdmVyV2l0aEV2ZW50OmZha2VF
dmVudF07CiB9CkBAIC0xODY4LDExICsxODY0LDggQEAgLSAoQk9PTClfaW5zaWRlQW5vdGhlckhU
TUxWaWV3CiAjaWYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBCT09MIGlzUXVpY2tMb29rRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgY29uc3QgaW50IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJlbGVh
c2VkID0gOTsKLSAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TU3lzdGVtRGVmaW5lZCAmJiBb
ZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9u
UmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVN5c3RlbURl
ZmluZWQgJiYgW2V2ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlD
b21iaW5hdGlvblJlbGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0gJ2xrdXAnOwogfQogI2VuZGlm
CiAKQEAgLTE5MjgsMTQgKzE5MjEsMTEgQEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClw
b2ludAogICAgIGVsc2UgewogICAgICAgICAvLyBGSVhNRTogV2h5IGRvZXNuJ3QgdGhpcyBpbmNs
dWRlIG1vdXNlIGVudGVyZWQvZXhpdGVkIGV2ZW50cywgb3Igb3RoZXIgbW91c2UgYnV0dG9uIGV2
ZW50cz8KICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbW3NlbGYgd2luZG93XSBjdXJyZW50RXZl
bnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXB0dXJl
SGl0c09uU3Vidmlld3MgPSAhKFtldmVudCB0eXBlXSA9PSBOU01vdXNlTW92ZWQKLSAgICAgICAg
ICAgIHx8IFtldmVudCB0eXBlXSA9PSBOU1JpZ2h0TW91c2VEb3duCi0gICAgICAgICAgICB8fCAo
W2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNDb250cm9sS2V5TWFzaykgIT0gMCkKLSAgICAgICAgICAgIHx8IFtldmVudCB0eXBlXSA9
PSBOU0ZsYWdzQ2hhbmdlZAorICAgICAgICBjYXB0dXJlSGl0c09uU3Vidmlld3MgPSAhKFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgIHx8IFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCisgICAgICAgICAgICB8fCAoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiBbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKKyAgICAgICAgICAgIHx8IFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZAogICAgICAgICAgICAgfHwgaXNRdWlja0xv
b2tFdmVudChldmVudCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAog
ICAgIGlmICghY2FwdHVyZUhpdHNPblN1YnZpZXdzKSB7CkBAIC0yMDIzLDkgKzIwMTMsNyBAQCAt
ICh2b2lkKV9yZW1vdmVUcmFja2luZ1JlY3RzOihOU1RyYWNraW5nUmVjdFRhZyAqKXRhZ3MgY291
bnQ6KGludCljb3VudAogLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogewogICAgIC8v
IE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJE
YXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZh
a2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUV4aXRlZAor
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVNb3VzZUV4aXRlZAogICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAw
KQogICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTIwMzQs
MTYgKzIwMjIsMTMgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogICAgICAgICBl
dmVudE51bWJlcjowCiAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAg
ICAgICAgIHVzZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW19wcml2YXRlLT50cmFja2luZ1JlY3RPd25lciBt
b3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQogCiAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRW50
ZXJlZAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8vIE5vdGhp
bmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4
aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVkCiAgICAgICAgIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1l
c3RhbXA6MApAQCAtMjA1Myw3ICsyMDM4LDYgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUVu
dGVyZWQKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAg
dXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJEYXRhXTsKICAgICBbX3ByaXZhdGUt
PnRyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogfQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKQEAgLTIwODks
MjEgKzIwNzMsMTggQEAgLSAoTlNTdHJpbmcgKil2aWV3OihOU1ZpZXcgKil2aWV3IHN0cmluZ0Zv
clRvb2xUaXA6KE5TVG9vbFRpcFRhZyl0YWcgcG9pbnQ6KE5TUG8KIHN0YXRpYyBib29sIG1vdXNl
RXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIH0KIApAQCAtMjEzNCwx
NiArMjExNSwxNCBAQCAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRoRXZlbnQ6KE5TRXZlbnQg
KilldmVudAogICAgICAgICBmbG9hdCB5U2Nyb2xsID0gdmlzaWJsZVJlY3Qub3JpZ2luLnk7CiAg
ICAgICAgIGZsb2F0IHhTY3JvbGwgPSB2aXNpYmxlUmVjdC5vcmlnaW4ueDsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKKyAgICAgICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAg
ICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgtMSAtIHhTY3JvbGwsIC0xIC0geVNjcm9s
bCkKICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlm
aWVyRmxhZ3NdCiAgICAgICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5j
ZVJlZmVyZW5jZURhdGVdCiAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10g
d2luZG93TnVtYmVyXQogICAgICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgICAgICBl
dmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKwogICAgICAgICBpZiAoRnJhbWUqIGxhc3RIaXRDb3JlRnJhbWUgPSBjb3Jl
KFtsYXN0SGl0VmlldyBfZnJhbWVdKSkKICAgICAgICAgICAgIGxhc3RIaXRDb3JlRnJhbWUtPmV2
ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoZXZlbnQsIFtbc2VsZiBfd2ViVmlld10gX3ByZXNzdXJl
RXZlbnRdKTsKICAgICB9CkBAIC0yMzMwLDE2ICsyMzA5LDE4IEBAIC0gKHZvaWQpX2F1dG9zY3Jv
bGwKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQK
KyAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNMZWZ0TW91c2VEcmFnZ2VkCi0gICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5k
b3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAgICAg
IGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50
RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRl
cnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5k
b3ddIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorCiAgICAgW3NlbGYgbW91c2VEcmFnZ2VkOmZha2VFdmVudF07CiAjZW5kaWYKIH0K
QEAgLTMzNTQsMTIgKzMzMzUsOSBAQCAtIChCT09MKWFjY2VwdHNGaXJzdFJlc3BvbmRlcgogICAg
IC8vIG9yIGZyb20gY2FsbHMgYmFjayBmcm9tIFdlYkNvcmUgb25jZSB3ZSBiZWdpbiBtb3VzZS1k
b3duIGV2ZW50IGhhbmRsaW5nLgogI2lmICFQTEFURk9STShJT1MpICAgICAgICAgICAgCiAgICAg
TlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93
bgorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duCiAgICAg
ICAgICAgICAmJiAhX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3duRXZlbnQKICAgICAgICAgICAg
ICYmIE5TUG9pbnRJblJlY3QoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbc2VsZiBjb252ZXJ0
UmVjdDpbc2VsZiB2aXNpYmxlUmVjdF0gdG9WaWV3Om5pbF0pKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgICAgIHJldHVybiBOTzsKICAgICB9CiAjZWxzZQpAQCAtMzUyOCwx
MyArMzUwNiwxMCBAQCAtICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKIAogI2lmICFQTEFURk9S
TShJT1MpCiAgICAgICAgIGlmICghX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgX3ByaXZh
dGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZv
ckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1hc2sgaGFuZGxlcjpeKE5TRXZlbnQg
KmZsYWdzQ2hhbmdlZEV2ZW50KSB7CisgICAgICAgICAgICBfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2Vk
RXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdN
YXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6XihOU0V2ZW50ICpmbGFnc0NoYW5n
ZWRFdmVudCkgewogICAgICAgICAgICAgICAgIFtzZWxmIF9wb3N0RmFrZU1vdXNlTW92ZWRFdmVu
dEZvckZsYWdzQ2hhbmdlZEV2ZW50OmZsYWdzQ2hhbmdlZEV2ZW50XTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CiAgICAgICAgICAgICB9XTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIFtOU0V2
ZW50IHJlbW92ZU1vbml0b3I6X3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcl07CkBA
IC00NTQwLDExICs0NTE1LDEyIEBAIC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAqKWV2ZW50
CiAgICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBbTlNJbnB1dE1hbmFn
ZXIgY3VycmVudElucHV0TWFuYWdlcl07CiAKICAgICBpZiAoIVtjdXJyZW50SW5wdXRNYW5hZ2Vy
IHdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gfHwgIVtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRs
ZU1vdXNlRXZlbnQ6ZXZlbnRdKSB7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
ICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5P
IG1vdmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUgd2ViIHBhZ2UgaGFuZGxlcyB0aGUg
Y29udGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6IHJldHVybnMgbmlsLCB3ZSdsbCBn
ZXQgY29udHJvbCBjbGljayBldmVudHMgaGVyZS4KICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0
byBwYXNzIHRoZW0gYWxvbmcgdG8gS0hUTUwgYSBzZWNvbmQgdGltZS4KLSAgICAgICAgaWYgKCEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgaWYg
KCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7
CiAgICAgICAgICAgICBfcHJpdmF0ZS0+aWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMgPSBOTzsK
IAogICAgICAgICAgICAgLy8gTGV0IFdlYkNvcmUgZ2V0IGEgY2hhbmNlIHRvIGRlYWwgd2l0aCB0
aGUgZXZlbnQuIFRoaXMgd2lsbCBjYWxsIGJhY2sgdG8gdXMKQEAgLTQ1NTMsNyArNDUyOSw2IEBA
IC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgY29y
ZWZyYW1lLT5ldmVudEhhbmRsZXIoKS5tb3VzZURvd24oZXZlbnQsIFtbc2VsZiBfd2ViVmlld10g
X3ByZXNzdXJlRXZlbnRdKTsKICAgICAgICAgfQogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICNlbmRpZgogCiAgICAgX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3duRXZlbnQg
PSBOTzsKQEAgLTQ4MTgsMTkgKzQ3OTMsMTIgQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRF
dmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlEb3duOiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0KKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogewogICAgICAgICBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1FdmVudCA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBwbGF0Zm9ybUV2
ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsK
ICAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwbGF0Zm9ybUV2ZW50LCBjb3Jl
RnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5VXA6Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgogICAgICAgICByZXR1cm4g
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9y
bUtleWJvYXJkRXZlbnQoZXZlbnQpLCBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAwOwpAQCAtNTUyNCwxMSArNTQ5Miw4
IEBAIC0gKEJPT0wpX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50CiAg
ICAgaWYgKCFbc2VsZiBfY2FuRWRpdF0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykgIT0gTlNDb21tYW5k
S2V5TWFzaykKKyAgICBpZiAoKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykgIT0gTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bW1hbmQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IAogICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAgICAgaWYgKFtz
dHJpbmcgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAImIiXSA9PSBOU09yZGVyZWRTYW1lKSB7CkBA
IC02NDQ4LDE0ICs2NDEzLDExIEBAIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihLZXlib2Fy
ZEV2ZW50KilldmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdDb21tCiAgICAgICAgIHJl
dHVybiBOTzsKIAogICAgIE5TRXZlbnQgKm1hY0V2ZW50ID0gcGxhdGZvcm1FdmVudC0+bWFjRXZl
bnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW21hY0V2
ZW50IHR5cGVdID09IE5TS2V5RG93biAmJiBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVy
IGZpbHRlcktleURvd246bWFjRXZlbnRdKQorICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNF
dmVudFR5cGVLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZmlsdGVy
S2V5RG93bjptYWNFdmVudF0pCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgCi0gICAgaWYgKFtt
YWNFdmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKKyAgICBpZiAoW21hY0V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgCiAgICAgcGFyYW1ldGVycy5ldmVudCA9IGV2ZW50
OwogICAgIF9wcml2YXRlLT5pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzID0gJnBhcmFtZXRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggNzhmNTZlNDkx
ZTA4NmFhZTk4M2IzODA2OTlhNTUxNTdjZDk4ZmRiYS4uOTYwYzYzNzlkMWFjZTYwMDdiZTEyMDUy
YWUyODQ3NDczNTQ3ZDg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5t
bQpAQCAtNjUsNiArNjUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJOU0F0dHJpYnV0ZWRTdHJp
bmdFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvQ3Vy
cmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPEFwcGxpY2F0
aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlc1ByaXYuaD4KQEAgLTMyMSwxMCArMzIyLDcg
QEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClwb2ludAogICAgIC8vIE92ZXJyaWRlIGhp
dFRlc3Qgc28gd2UgY2FuIG92ZXJyaWRlIG1lbnVGb3JFdmVudC4KICAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAgIE5TRXZlbnRUeXBlIHR5cGUgPSBbZXZlbnQg
dHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHR5cGUg
PT0gTlNSaWdodE1vdXNlRG93biB8fCAodHlwZSA9PSBOU0xlZnRNb3VzZURvd24gJiYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spKSkKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAodHlwZSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8
ICh0eXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSkKICAgICAgICAgcmV0dXJuIHNlbGY7
CiAKICAgICByZXR1cm4gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOwpAQCAtMTAwOSwzOSArMTAwNywz
MyBAQCAtICh2b2lkKVBERlZpZXdXaWxsQ2xpY2tPbkxpbms6KFBERlZpZXcgKilzZW5kZXIgd2l0
aFVSTDooTlNVUkwgKilVUkwKICAgICBpbnQgYnV0dG9uID0gbm9CdXR0b247CiAgICAgUmVmUHRy
PEV2ZW50PiBldmVudDsKICAgICBzd2l0Y2ggKFtuc0V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAg
ICAgICAgICAgIGJ1dHRvbiA9IDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBO
U1JpZ2h0TW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IDE7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IFtu
c0V2ZW50IGJ1dHRvbk51bWJlcl07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBO
U0tleURvd246IHsKLSAgICAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRm
b3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7Ci0g
ICAgICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3
S2V5RG93bik7Ci0gICAgICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwg
MCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgICAgICBidXR0b24gPSAwOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgICAgICBidXR0b24gPSAx
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAg
ICAgICBidXR0b24gPSBbbnNFdmVudCBidXR0b25OdW1iZXJdOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogeworICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQgcGUgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50
KG5zRXZlbnQpOworICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1F
dmVudDo6UmF3S2V5RG93bik7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRl
KHBlLCAwKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7CiAgICAgICAgIGV2ZW50
ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVl
LCBjdXJyZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrLAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29udHJvbCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ09wdGlvbiwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0LAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCwKICAgICAgICAgICAgIGJ1dHRv
biwgMCwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCAwLCAwLCB0cnVlKTsKICAgICB9CiAKQEAgLTEx
NDksOSArMTE0MSw3IEBAIC0gKE5TRXZlbnQgKilfZmFrZUtleUV2ZW50V2l0aEZ1bmN0aW9uS2V5
Oih1bmljaGFyKWZ1bmN0aW9uS2V5CiAgICAgLy8gRklYTUUgNDQwMDQ4MDogd2hlbiBQREZWaWV3
IGltcGxlbWVudHMgdGhlIHN0YW5kYXJkIHNjcm9sbGluZyBzZWxlY3RvcnMgdGhhdCB0aGlzCiAg
ICAgLy8gbWV0aG9kIGlzIHVzZWQgdG8gbWltaWMsIHdlIGNhbiBlbGltaW5hdGUgdGhpcyBtZXRo
b2QgYW5kIGNhbGwgdGhlbSBkaXJlY3RseS4KICAgICBOU1N0cmluZyAqa2V5QXNTdHJpbmcgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmZ1bmN0aW9uS2V5IGxlbmd0aDoxXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleURvd24KKyAgICByZXR1cm4gW05TRXZlbnQga2V5RXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh
dGlvbjpOU1plcm9Qb2ludAogICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0xMTYxLDcgKzExNTEs
NiBAQCAtIChOU0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhGdW5jdGlvbktleToodW5pY2hhcilm
dW5jdGlvbktleQogICAgICAgICAgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmtleUFzU3Ry
aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FSZXBlYXQ6Tk8KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga2V5Q29kZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIH0KIAogLSAodm9pZClfbG9va1VwSW5EaWN0aW9uYXJ5RnJvbU1lbnU6KGlkKXNlbmRlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNv
bnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbQppbmRleCA0MzgyYjA0NDc0ZTYwYzhjMjM3MzMwNDdiODEzOTY0YTRmNzg0
MjYzLi43YjllNWRiY2Y0OGMyMTZiNmM1NjYzMTBjMTc0ZTQzMTJjNTYyOGU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJv
bGxlci5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5oIgog
I2ltcG9ydCAiV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2Ug
TlNXaW5kb3cgKFdlYk5TV2luZG93RGV0YWlscykKIC0gKHZvaWQpX3NldEZvcmNlQWN0aXZlQ29u
dHJvbHM6KEJPT0wpZmxhZzsKQEAgLTExMiwxMCArMTEzLDcgQEAgLSAodm9pZClfYnVpbGRVSQog
ICAgIFtzY3JvbGxWaWV3IHNldERvY3VtZW50VmlldzpfdGFibGVWaWV3XTsKICAgICBbX3RhYmxl
VmlldyByZWxlYXNlXTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBfcG9wdXBXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
OnNjcm9sbEZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgX3BvcHVwV2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW19wb3B1cFdpbmRv
dyBzZXRBbHBoYVZhbHVlOjAuODhmXTsKICAgICBbX3BvcHVwV2luZG93IHNldENvbnRlbnRWaWV3
OnNjcm9sbFZpZXddOwogICAgIFtzY3JvbGxWaWV3IHJlbGVhc2VdOwpAQCAtMTU1LDggKzE1Myw4
IEBAIC0gKHZvaWQpX3BsYWNlUG9wdXBXaW5kb3c6KE5TUG9pbnQpdG9wTGVmdAogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1Nj
cm9sbFZpZXcgZnJhbWVTaXplRm9yQ29udGVudFNpemU6TlNNYWtlU2l6ZShtYXhXaWR0aCwgMTAw
LjBmKSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9y
ZGVyVHlwZTpOU05vQm9yZGVyXS53aWR0aCk7Ci0gICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05T
V2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4
V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2tdLnNpemUud2lk
dGgpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBtYXhXaWR0aCA9IGNl
aWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAu
MGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3NdLnNpemUud2lkdGgpOwogICAgICAgICBtYXhXaWR0aCArPSA1LjBmOwogICAgICAgICB3aW5k
b3dGcmFtZS5zaXplLndpZHRoID0gc3RkOjptYXgobWF4V2lkdGgsIHdpbmRvd0ZyYW1lLnNpemUu
d2lkdGgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3Y2Zh
YTg3YjU1NmViNDc2YmYzYzVmZWQ1ZTAzZTY4ZmJhMmRlNGJmLi43ODdlNzE2YTZiNGJjYTM0ZDc0
N2UwMjUyZDYzMjYwZTU2OTE3OWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC0yMzAsNiArMjMwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2Vsc2UKICNpbXBvcnQgIk1lbW9yeU1lYXN1
cmUuaCIKICNpbXBvcnQgIldlYkNhcmV0Q2hhbmdlTGlzdGVuZXIuaCIKQEAgLTYwOTUsMTAgKzYw
OTYsNyBAQCAtIChEcmFnQXBwbGljYXRpb25GbGFncylhcHBsaWNhdGlvbkZsYWdzOihpZCA8TlNE
cmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRp
b25IYXNBdHRhY2hlZFNoZWV0OwogICAgIGlmIChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNl
XSA9PSBzZWxmKQogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1tOU0FwcCBjdXJyZW50
RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJG
bGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBmbGFncyB8PSBEcmFn
QXBwbGljYXRpb25Jc0NvcHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEcmFnQXBw
bGljYXRpb25GbGFncz4oZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0No
aWxkUHJvY2Vzc01hYy5tbQppbmRleCAyZTY1ODA2ZGI1ZDY4ZjBhNGEyODJkMzgzYjk2ZTdiNDUx
NmI5MDQwLi5iMGM1NTRkNGRhNjIzZDk5YjAxNDM1ODY3YjIwNzcyNWI4Njc0NTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtMzksNiArMzks
NyBAQAogI2ltcG9ydCA8cHdkLmg+CiAjaW1wb3J0IDxzdGRsaWIuaD4KICNpbXBvcnQgPHN5c2V4
aXRzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KIAogI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCkBAIC0xOTcsMTAgKzE5OCw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjpz
dG9wTlNBcHBSdW5Mb29wKCkKICAgICBBU1NFUlQoW05TQXBwIGlzUnVubmluZ10pOwogICAgIFtO
U0FwcCBzdG9wOm5pbF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0
aW9uRGVmaW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGlt
ZXN0YW1wOjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBk
YXRhMjowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVm
aW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBkYXRhMjow
XTsKICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07CiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggYTg1
ZWZjYWVlOWE1MmQ4YzA0NTY2NmQ5NGM0OTE4NzBjYTY4YTdkMy4uOWY1M2Y2OGNkMzE4MjNiZDE0
NGYzMTRlYTYwOGE4NTdhODVlZThmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2Ny
b2xsYmFyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CiAjaW1w
b3J0IDx3dGYvQVNDSUlDVHlwZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmls
aXR5RGVjbGFyYXRpb25zLmg+CiAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02Myw3
OCArNjQsNjkgQEAgc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBjdXJyZW50TW91c2VCdXR0
b24oKQogCiBzdGF0aWMgV2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNlQnV0dG9uRm9yRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURy
YWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVw
OgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
V2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93
bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRv
bjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOworICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdl
Yk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNl
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok1p
ZGRsZUJ1dHRvbjsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKQotICAgICAgICBjYXNlIE5TRXZlbnRU
eXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0gICAg
ICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAg
ICAgICAgICAgIHJldHVybiBjdXJyZW50TW91c2VCdXR0b24oKTsKLSAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoK
KyAgICAgICAgcmV0dXJuIGN1cnJlbnRNb3VzZUJ1dHRvbigpOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKICAgICB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBXZWJFdmVudDo6VHlwZSBtb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNl
IE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwotICAgICAgICBjYXNlIE5T
TGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNl
RG93bjsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgcmV0dXJu
IFdlYkV2ZW50OjpNb3VzZVVwOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJu
IFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdn
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICAgICAg
cmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VVcDoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwogICAgIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KIAogc3RhdGljIGludCBjbGlja0NvdW50Rm9y
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2Fz
ZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBb
ZXZlbnQgY2xpY2tDb3VudF07Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4g
MDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAg
IGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAg
ICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gMDsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBO
U1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC0xNDMsMjIgKzEz
NSwxOSBAQCBzdGF0aWMgTlNQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50
KQogI2lmIGRlZmluZWQoX19MUDY0X18pCiAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgog
I2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0xl
ZnRNb3VzZURvd246Ci0gICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU0xl
ZnRNb3VzZVVwOgotICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgY2FzZSBOU01vdXNlRXhp
dGVkOgotICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoK
LSAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VVcDoK
LSAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2Vk
OgotICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91
c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBO
U0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURy
YWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Omdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRv
d10pOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBOU1plcm9Qb2ludDsKQEAgLTE3MSwy
MiArMTYwLDE5IEBAIHN0YXRpYyBOU1BvaW50IHBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQs
IE5TVmlldyAqd2luZG93VmlldykKICNpZiBkZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFn
Z2VkOgotICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgot
ICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNl
IE5TT3RoZXJNb3VzZURvd246Ci0gICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNh
c2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2Ug
TlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2Ug
TlNTY3JvbGxXaGVlbDogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGNhc2Ug
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVl
bDogewogICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBpdHMgb3JpZ2luIGF0IHRoZSBi
b3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dWaWV3IGlzIGZsaXBwZWQuCiAg
ICAgICAgIC8vIEluIHRob3NlIGNhc2VzLCB0aGUgWSBjb29yZGluYXRlIGdldHMgZmxpcHBlZCBi
eSBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdy4KICAgICAgICAgTlNQb2ludCBs
b2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKQEAgLTI0MCwxMCArMjI2LDcgQEAg
c3RhdGljIGlubGluZSBTdHJpbmcgdGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCBy
ZXBsYWNlc1NvZnRTcGFjZSkKIHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdz
Q2hhbmdlZCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmlu
ZyhbZXZlbnQgY2hhcmFjdGVyc10pOwogfQpAQCAtMjUyLDEwICsyMzUsNyBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyB1bm1vZGlmaWVkVGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCBy
ZXBsYWNlc1NvZnRTcAogewogICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKICAgICAgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFu
Z2VkKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAgICByZXR1cm4gU3RyaW5nKFtl
dmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdKTsKIH0KQEAgLTI2NCw3NCArMjQ0LDY4
IEBAIHN0YXRpYyBib29sIGlzS2V5cGFkRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgLy8g
Q2hlY2sgdGhhdCB0aGlzIGlzIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIGEga2V5Q29kZS4K
ICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgICAgICBjYXNlIE5TS2V5RG93bjoKLSAgICAgICAgY2FzZSBOU0tleVVwOgot
ICAgICAgICBjYXNlIE5TRmxhZ3NDaGFuZ2VkOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246CisgICAgY2FzZSBOU0V2ZW50
VHlwZUtleVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQ6CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBz
d2l0Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBjYXNlIDcxOiAvLyBDbGVhcgotICAg
ICAgICBjYXNlIDgxOiAvLyA9Ci0gICAgICAgIGNhc2UgNzU6IC8vIC8KLSAgICAgICAgY2FzZSA2
NzogLy8gKgotICAgICAgICBjYXNlIDc4OiAvLyAtCi0gICAgICAgIGNhc2UgNjk6IC8vICsKLSAg
ICAgICAgY2FzZSA3NjogLy8gRW50ZXIKLSAgICAgICAgY2FzZSA2NTogLy8gLgotICAgICAgICBj
YXNlIDgyOiAvLyAwCi0gICAgICAgIGNhc2UgODM6IC8vIDEKLSAgICAgICAgY2FzZSA4NDogLy8g
MgotICAgICAgICBjYXNlIDg1OiAvLyAzCi0gICAgICAgIGNhc2UgODY6IC8vIDQKLSAgICAgICAg
Y2FzZSA4NzogLy8gNQotICAgICAgICBjYXNlIDg4OiAvLyA2Ci0gICAgICAgIGNhc2UgODk6IC8v
IDcKLSAgICAgICAgY2FzZSA5MTogLy8gOAotICAgICAgICBjYXNlIDkyOiAvLyA5Ci0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgfQorICAgIGNhc2UgNzE6IC8vIENsZWFyCisgICAgY2Fz
ZSA4MTogLy8gPQorICAgIGNhc2UgNzU6IC8vIC8KKyAgICBjYXNlIDY3OiAvLyAqCisgICAgY2Fz
ZSA3ODogLy8gLQorICAgIGNhc2UgNjk6IC8vICsKKyAgICBjYXNlIDc2OiAvLyBFbnRlcgorICAg
IGNhc2UgNjU6IC8vIC4KKyAgICBjYXNlIDgyOiAvLyAwCisgICAgY2FzZSA4MzogLy8gMQorICAg
IGNhc2UgODQ6IC8vIDIKKyAgICBjYXNlIDg1OiAvLyAzCisgICAgY2FzZSA4NjogLy8gNAorICAg
IGNhc2UgODc6IC8vIDUKKyAgICBjYXNlIDg4OiAvLyA2CisgICAgY2FzZSA4OTogLy8gNworICAg
IGNhc2UgOTE6IC8vIDgKKyAgICBjYXNlIDkyOiAvLyA5CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KICAgICAgCiAgICAgIHJldHVybiBmYWxzZTsKIH0KIAogc3RhdGljIGlubGluZSBib29s
IGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAg
ICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBl
XSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBl
XSA9PSBOU0V2ZW50VHlwZUtleVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlm
IHRoZSB1c2VyIHByZXNzZXMgYm90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgog
ICAgIC8vIHdlIHRyZWF0IHJlbGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3
aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1h
bmQKLSAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4g
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAg
ICAgICAgIAotICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6
IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6
IC8vIExlZnQgQWx0Ci0gICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAg
cmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7
Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNh
c2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDYzOiAvLyBGdW5jdGlvbgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0Z1bmN0aW9uS2V5TWFzaykgPT0gMDsKKyAgICBjYXNlIDU0OiAvLyBSaWdodCBD
b21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAgIHJldHVybiAhKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKTsKKworICAg
IGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBjYXNlIDU2OiAvLyBM
ZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAgICAgcmV0dXJuICEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KTsKKworICAg
IGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0CisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2MjogLy8gUmlnaHQg
Q3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgorICAgICAgICBy
ZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b24pOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKQEAgLTMzOSw3ICszMTMsNiBAQCBzdGF0aWMgaW5saW5lIFdlYkV2ZW50OjpNb2Rp
ZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgdW5zaWduZWQg
bW9kaWZpZXJzID0gMDsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMjAwCiAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZs
YWdDYXBzTG9jaykKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpDYXBzTG9ja0tleTsK
ICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0
KQpAQCAtMzUwLDE4ICszMjMsNiBAQCBzdGF0aWMgaW5saW5lIFdlYkV2ZW50OjpNb2RpZmllcnMg
bW9kaWZpZXJzRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBX
ZWJFdmVudDo6QWx0S2V5OwogICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29tbWFuZCkKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRh
S2V5OwotI2Vsc2UKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBoYVNoaWZ0
S2V5TWFzaykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpDYXBzTG9ja0tleTsKLSAg
ICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1hc2spCi0gICAgICAgIG1v
ZGlmaWVycyB8PSBXZWJFdmVudDo6U2hpZnRLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29udHJvbEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6
Q29udHJvbEtleTsKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkFsdEtleTsKLSAgICBpZiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykKLSAgICAgICAgbW9kaWZp
ZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5OwotI2VuZGlmCiAKICAgICByZXR1cm4gKFdlYkV2ZW50
OjpNb2RpZmllcnMpbW9kaWZpZXJzOwogfQpAQCAtNDg0LDEwICs0NDUsNyBAQCBXZWJLZXlib2Fy
ZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpl
dmVudCwgYm9vbCBoYQogICAgIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUgICAgICAgPSB3aW5k
b3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKICAgICBpbnQgbmF0aXZlVmlydHVhbEtleUNv
ZGUgICAgICAgID0gW2V2ZW50IGtleUNvZGVdOwogICAgIGludCBtYWNDaGFyQ29kZSAgICAgICAg
ICAgICAgICAgPSBXS0dldE5TRXZlbnRLZXlDaGFyKGV2ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBib29sIGF1dG9SZXBlYXQgICAgICAgICAgICAgICAgID0g
KFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkgJiYgW2V2ZW50IGlzQVJlcGVhdF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgYm9vbCBhdXRvUmVwZWF0ICAgICAgICAg
ICAgICAgICA9IFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCAmJiBbZXZl
bnQgaXNBUmVwZWF0XTsKICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNL
ZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9
IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2Vi
RXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uQWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmln
YXRpb25BY3Rpb24ubW0KaW5kZXggYmExOTk2YjIxNzRlMjNlNDc3ODQ2MzdlZDcyMTA3Yzc1MWIw
YzNjZS4uZTVhNTgxZTc4NTNkMTVmMWIxZDZiMTE5ZjM1Njk4NWFjMTI5YTMyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25B
Y3Rpb24ubW0KQEAgLTMzLDYgKzMzLDEwIEBACiAjaW1wb3J0ICJfV0tVc2VySW5pdGlhdGVkQWN0
aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAorI2lmIFBMQVRGT1JN
KE1BQykKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgorI2VuZGlmCisKIEBpbXBsZW1lbnRhdGlvbiBXS05hdmlnYXRpb25BY3Rpb24KIAogc3RhdGlj
IFdLTmF2aWdhdGlvblR5cGUgdG9XS05hdmlnYXRpb25UeXBlKFdlYkNvcmU6Ok5hdmlnYXRpb25U
eXBlIG5hdmlnYXRpb25UeXBlKQpAQCAtNzksNyArODMsNiBAQCBzdGF0aWMgTlNFdmVudE1vZGlm
aWVyRmxhZ3MgdG9OU0V2ZW50TW9kaWZpZXJGbGFncyhXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmll
cnMgbQogewogICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIG1vZGlmaWVyRmxhZ3MgPSAwOwogCi0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICBpZiAobW9k
aWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6Q2Fwc0xvY2tLZXkpCiAgICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOwogICAgIGlmIChtb2RpZmllcnMg
JiBXZWJLaXQ6OldlYkV2ZW50OjpTaGlmdEtleSkKQEAgLTkwLDE4ICs5Myw2IEBAIHN0YXRpYyBO
U0V2ZW50TW9kaWZpZXJGbGFncyB0b05TRXZlbnRNb2RpZmllckZsYWdzKFdlYktpdDo6V2ViRXZl
bnQ6Ok1vZGlmaWVycyBtCiAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ09wdGlvbjsKICAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6TWV0YUtl
eSkKICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsK
LSNlbHNlCi0gICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6OkNhcHNMb2NrS2V5
KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQWxwaGFTaGlmdEtleU1hc2s7Ci0gICAgaWYg
KG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6OlNoaWZ0S2V5KQotICAgICAgICBtb2RpZmll
ckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOwotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6Oldl
YkV2ZW50OjpDb250cm9sS2V5KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29udHJvbEtl
eU1hc2s7Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6OkFsdEtleSkKLSAg
ICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0FsdGVybmF0ZUtleU1hc2s7Ci0gICAgaWYgKG1vZGlm
aWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6Ok1ldGFLZXkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNDb21tYW5kS2V5TWFzazsKLSNlbmRpZgogCiAgICAgcmV0dXJuIG1vZGlmaWVyRmxhZ3M7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5k
ZXggMzJlNjM5YzRkOTE5YWQxNmU5YTk0ODJiOTM1Y2VmMDQ2Mzc3MWZiYS4uNzYzZDkwNjA1NzU5
OTNkOGNiMDczYzZhYTRlMDk1YzBkYmI0YTgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtOTMsNiArOTMsNyBAQAogI2ltcG9ydCA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxzeXMvc3RhdC5oPgogI2ltcG9ydCA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxX
ZWJLaXRBZGRpdGlvbnMvV2ViVmlld0ltcGxJbmNsdWRlcy5oPgpAQCAtNjIwLDExICs2MjEsOCBA
QCBib29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcigpCiAgICAgaWYgKGRpcmVj
dGlvbiAhPSBOU0RpcmVjdFNlbGVjdGlvbikgewogICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtO
U0FwcCBjdXJyZW50RXZlbnRdOwogICAgICAgICBOU0V2ZW50ICprZXlib2FyZEV2ZW50ID0gbmls
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBpZiAoW2V2ZW50
IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkKKyAgICAgICAg
aWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09
IE5TRXZlbnRUeXBlS2V5VXApCiAgICAgICAgICAgICBrZXlib2FyZEV2ZW50ID0gZXZlbnQ7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1fcGFnZS0+c2V0SW5pdGlhbEZv
Y3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJvYXJkRXZlbnQgIT0gbmlsLCBO
YXRpdmVXZWJLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZhbHNlLCBmYWxzZSwgeyB9KSwg
W10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7IH0pOwogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTg0OCwxMCArODQ2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlQ29udGVu
dEluc2V0c0lmQXV0b21hdGljKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNXaW5kb3cgKndp
bmRvdyA9IG1fdmlldy53aW5kb3c7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgaWYgKCh3aW5kb3cuc3R5bGVNYXNrICYgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93
TWFzaykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCAmJiAhW21fdmlldyBl
bmNsb3NpbmdTY3JvbGxWaWV3XSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IGlmICgod2luZG93LnN0eWxlTWFzayAmIE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVDb250ZW50
VmlldykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCAmJiAhW21fdmlldyBl
bmNsb3NpbmdTY3JvbGxWaWV3XSkgewogICAgICAgICBOU1JlY3QgY29udGVudExheW91dFJlY3Qg
PSBbbV92aWV3IGNvbnZlcnRSZWN0OndpbmRvdy5jb250ZW50TGF5b3V0UmVjdCBmcm9tVmlldzpu
aWxdOwogICAgICAgICBDR0Zsb2F0IG5ld1RvcENvbnRlbnRJbnNldCA9IE5TTWF4WShjb250ZW50
TGF5b3V0UmVjdCkgLSBOU0hlaWdodChjb250ZW50TGF5b3V0UmVjdCk7CiAgICAgICAgIGlmICht
X3RvcENvbnRlbnRJbnNldCAhPSBuZXdUb3BDb250ZW50SW5zZXQpCkBAIC0xMjI4LDEwICsxMjIz
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdygpCiAKICAgICAgICAg
aWYgKCFtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikgewogICAgICAgICAgICAgYXV0byB3ZWFr
VGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRk
TG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2VkTWFzayBoYW5k
bGVyOlt3ZWFrVGhpc10gKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRv
ciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0V2ZW50
TWFza0ZsYWdzQ2hhbmdlZCBoYW5kbGVyOlt3ZWFrVGhpc10gKE5TRXZlbnQgKmZsYWdzQ2hhbmdl
ZEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAg
ICAgICB3ZWFrVGhpcy0+cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVu
dChmbGFnc0NoYW5nZWRFdmVudCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzQ2hhbmdl
ZEV2ZW50OwpAQCAtMTMwMiwxMiArMTI5NCw5IEBAIE5TVmlldyAqV2ViVmlld0ltcGw6OmhpdFRl
c3QoQ0dQb2ludCBwb2ludCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6cG9zdEZha2VNb3VzZU1vdmVk
RXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9uOmZs
YWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0K
KyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3Vz
ZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KICAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFn
c0NoYW5nZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50
aW1lc3RhbXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgogICAg
ICAgICBjb250ZXh0Om51bGxwdHIgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6
MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgTmF0aXZlV2ViTW91c2VFdmVu
dCB3ZWJFdmVudChmYWtlRXZlbnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7
CiAgICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsKIH0KQEAgLTE2NTYsMTAg
KzE2NDUsNyBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3
KCkKIE5TV2luZG93ICpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNjcmVlbldpbmRvdygpCiB7CiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdp
dGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGZyYW1lXSBzdHlsZU1hc2s6KE5T
Qm9yZGVybGVzc1dpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2spIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVhc2VdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBh
bGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGZyYW1lXSBz
dHlsZU1hc2s6KE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyB8IE5TV2luZG93U3R5bGVNYXNr
UmVzaXphYmxlKSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dIGF1dG9y
ZWxlYXNlXTsKICNlbHNlCiAgICAgcmV0dXJuIG5pbDsKICNlbmRpZgpAQCAtMjYzMSw5ICsyNjE3
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVtb3ZlVHJhY2tpbmdSZWN0cyhOU1RyYWNraW5nUmVj
dFRhZyAqdGFncywgaW50IGNvdW50KQogdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3Vz
ZUV4aXRlZCgpCiB7CiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNr
aW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRo
VHlwZTpOU01vdXNlRXhpdGVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50
ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRXhpdGVkCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgw
LCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aW1lc3RhbXA6MApAQCAtMjY0MiwxNiArMjYyNiwxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YTptX3RyYWNraW5nUmVj
dFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbbV90cmFja2lu
Z1JlY3RPd25lciBtb3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBs
OjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJlZCgpCiB7CiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4
Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQg
ZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRW50ZXJlZAorICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUVu
dGVyZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yNjYwLDcgKzI2NDEsNiBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJlZCgpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNU
X1RBRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNl
ckRhdGE6bV90cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgW21fdHJhY2tpbmdSZWN0T3duZXIgbW91c2VFbnRlcmVkOmZha2VFdmVudF07CiB9
CiAKQEAgLTI4MTYsMTAgKzI3OTYsNyBAQCBzdGF0aWMgV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9u
RmxhZ3MgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcoTlNWaWV3ICp2aWV3LCBpZCA8TgogICAgICAg
ICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25IYXNBdHRhY2hlZFNoZWV0OwogICAg
IGlmIChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2UgPT0gdmlldykKICAgICAgICAgZmxhZ3Mg
fD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtOU0FwcCBjdXJyZW50RXZlbnRdLm1vZGlmaWVyRmxh
Z3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgaWYgKFtOU0FwcCBjdXJyZW50RXZlbnRdLm1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnT3B0aW9uKQogICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25J
c0NvcHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEcmFnQXBwbGlj
YXRpb25GbGFncz4oZmxhZ3MpOwogCkBAIC0zMzU5LDEwICszMzM2LDcgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50
eXBlID09IE5TTGVmdE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TUmlnaHRNb3VzZURvd24g
fHwgZXZlbnQudHlwZSA9PSBOU090aGVyTW91c2VEb3duKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVM
ZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8
fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24pOwogCiAgICAgaWYgKGV2
ZW50ID09IG1fbGFzdE1vdXNlRG93bkV2ZW50LmdldCgpKQogICAgICAgICByZXR1cm47CkBAIC0z
Mzk5LDExICszMzczLDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0
aW9uKCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChOU0V2ZW50ICpldmVu
dCwgYm9vbCBldmVudFdhc0hhbmRsZWQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCisgICAgaWYgKFtldmVu
dCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24pCiAgICAgICAgIHJldHVybjsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIGlmICh0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRLZXlEb3duKGV2ZW50KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ3OSwxMSAr
MzQ1MCw4IEBAIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IFdlYlZpZXdJbXBsOjpj
b2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2CiB7CiAgICAgVmVjdG9yPFdlYkNvcmU6
OktleXByZXNzQ29tbWFuZD4gY29tbWFuZHM7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2
ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuIGNvbW1hbmRz
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKCFtX2NvbGxlY3Rl
ZEtleXByZXNzQ29tbWFuZHMpOwogICAgIG1fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kcyA9ICZj
b21tYW5kczsKQEAgLTM4NTgsMTEgKzM4MjYsOCBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJmb3Jt
S2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVudCkKICAgICAvLyBXZSBnZXQgRXNjIGtleSBoZXJl
IGFmdGVyIHByb2Nlc3NpbmcgZWl0aGVyIEVzYyBvciBDbWQrcGVyaW9kLiBUaGUgZm9ybWVyIHN0
YXJ0cyBhcyBhIGtleURvd24sIGFuZCB0aGUgbGF0dGVyIHN0YXJ0cyBhcyBhIGtleSBlcXVpdmFs
ZW50LAogICAgIC8vIGJ1dCBib3RoIGdldCB0cmFuc2Zvcm1lZCB0byBhIGNhbmNlbE9wZXJhdGlv
bjogY29tbWFuZCwgZXhlY3V0aW5nIHdoaWNoIHBhc3NlcyBhbiBFc2Mga2V5IGV2ZW50IHRvIC1w
ZXJmb3JtS2V5RXF1aXZhbGVudDouCiAgICAgLy8gRG9uJ3QgaW50ZXJwcmV0IHRoaXMgZXZlbnQg
YWdhaW4sIGF2b2lkaW5nIHJlLWVudHJhbmN5IGFuZCBpbmZpbml0ZSBsb29wcy4KLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzSWdu
b3JpbmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0gJiYgIShbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2spKQorICAgIGlm
IChbW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAi
XGUiXSAmJiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdEZXZp
Y2VJbmRlcGVuZGVudEZsYWdzTWFzaykpCiAgICAgICAgIHJldHVybiBbbV92aWV3IF93ZWJfc3Vw
ZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAKICAgICBpZiAobV9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgewogICAgICAgICAvLyBX
ZWJDb3JlIGhhcyBhbHJlYWR5IHNlZW4gdGhlIGV2ZW50LCBubyBuZWVkIGZvciBjdXN0b20gcHJv
Y2Vzc2luZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21h
Yy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1
Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCmluZGV4IGYwN2QyNzlkNjM3ZDMwZjhm
NTA1MzE3ZDhmMDk2MDU1N2ExMWQyZDIuLjhmMzdkNDI2MTUyYjYxN2Q1NWM5MTQ4ODE1MTE0Zjhj
MzM5ZTdjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21h
Yy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpAQCAtMzksNiArMzksNyBAQAog
I2ltcG9ydCA8Y3J0X2V4dGVybnMuaD4KICNpbXBvcnQgPG1hY2gtby9keWxkLmg+CiAjaW1wb3J0
IDxzcGF3bi5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIEBpbnRlcmZhY2UgV0tQbGFj
ZWhvbGRlck1vZGFsV2luZG93IDogTlNXaW5kb3cgCkBAIC0yMzEsMTAgKzIzMiw3IEBAIHZvaWQg
UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1fcGxhY2Vob2xk
ZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwogICAgIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cg
PSBhZG9wdE5TKFtbV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRl
bnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRv
d01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBhZG9wdE5T
KFtbV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5T
TWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVz
cyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgW21fcGxh
Y2Vob2xkZXJXaW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKICAgICAKICAgICBtX2Fj
dGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25XaWxsQmVjb21lQWN0aXZlTm90aWZpY2F0
aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCBhNDgzOTY0ZDhmMWYy
MjZkNGFlY2MyN2NjYjBmMDc2MDcxYjdiYmQxLi5iYjVhZDdjMjFlODEwY2EzNjU2NWVjYzc3N2Qw
NmFmMzFiYjAyODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC00OCw2ICs0OCw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL05TU2hhcmluZ1NlcnZpY2VTUEkuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVy
ZmFjZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkBAIC00NjMsMTAgKzQ2NCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hv
d0NvbnRleHRNZW51V2l0aEl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVuCiAgICAgW1tX
S01lbnVUYXJnZXQgc2hhcmVkTWVudVRhcmdldF0gc2V0TWVudVByb3h5OnRoaXNdOwogCiAgICAg
TlNQb2ludCBtZW51TG9jYXRpb24gPSBbbV93ZWJWaWV3IGNvbnZlcnRQb2ludDptX2NvbnRleHQu
bWVudUxvY2F0aW9uKCkgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4
dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9u
IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRv
dy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJl
c3N1cmU6MF07CiAgICAgW05TTWVudSBwb3BVcENvbnRleHRNZW51Om1fbWVudS5nZXQoKSB3aXRo
RXZlbnQ6ZXZlbnQgZm9yVmlldzptX3dlYlZpZXddOwogCiAgICAgaWYgKG1fY29udGV4dE1lbnVM
aXN0ZW5lcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJ
bnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5z
cGVjdG9yUHJveHlNYWMubW0KaW5kZXggMGE3OTkxMzQ2ZDE1Y2NmYWM3NzQzNWVmMzBlZjhkZjgy
MmFmYWUyMy4uZjA2YjU4NDJhY2Q1MzRkZmUyNDEwZmVjYTlhMWFkZmI2ZWE5Nzc5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFj
Lm1tCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4KIAog
U09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVGcmFtZXdv
cmtzLCBBKQpAQCAtNDgsMTAgKzQ5LDcgQEAgU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2Vi
SW5zcGVjdG9yVUksIFByaXZhdGVGcmFtZXdvcmtzLCBBKQogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi1zdGF0aWMgY29uc3QgTlNVSW50ZWdlciB3aW5kb3dTdHlsZU1hc2sgPSBOU1Rp
dGxlZFdpbmRvd01hc2sgfCBOU0Nsb3NhYmxlV2luZG93TWFzayB8IE5TTWluaWF0dXJpemFibGVX
aW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrIHwgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3
V2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK3N0YXRpYyBjb25zdCBO
U1VJbnRlZ2VyIHdpbmRvd1N0eWxlTWFzayA9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVkIHwgTlNX
aW5kb3dTdHlsZU1hc2tDbG9zYWJsZSB8IE5TV2luZG93U3R5bGVNYXNrTWluaWF0dXJpemFibGUg
fCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVD
b250ZW50VmlldzsKIAogLy8gVGhlIHRpbWUgd2Uga2VlcCBvdXIgV2ViVmlldyBhbGl2ZSBiZWZv
cmUgY2xvc2luZyBpdCBhbmQgaXRzIHByb2Nlc3MuCiAvLyBSZXVzaW5nIHRoZSBXZWJWaWV3IGlt
cHJvdmVzIHN0YXJ0IHVwIHRpbWUgZm9yIHBlb3BsZSB0aGF0IGp1bXAgaW4gYW5kIG91dCBvZiB0
aGUgSW5zcGVjdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJQb3B1cE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
UG9wdXBNZW51UHJveHlNYWMubW0KaW5kZXggZDI5ZDA4OTA1MmM4ODdhZmI4NjQyMzg0NTVhYTE4
ODRiNGRkNDY1Yy4uYzIyOWZiZDBiOGJlYmJhZjExNWMzNTNlODNjN2UwODQ2NTA2MDM0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5
TWFjLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNp
bXBvcnQgIldlYlBvcHVwSXRlbS5oIgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTc0LDE5ICs3NSwxMyBAQCB2b2lkIFdlYlBv
cHVwTWVudVByb3h5TWFjOjpwb3B1bGF0ZShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRl
bXMsIE5TRm9udCAqZgogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0
eWxlPiBwYXJhZ3JhcGhTdHlsZSA9IGFkb3B0TlMoW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQ
YXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNvcHldKTsKICAgICAgICAgICAgIE5TV3JpdGluZ0RpcmVj
dGlvbiB3cml0aW5nRGlyZWN0aW9uID0gaXRlbXNbaV0ubV90ZXh0RGlyZWN0aW9uID09IExUUiA/
IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRU
b0xlZnQ7CiAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJlY3Rp
b246d3JpdGluZ0RpcmVjdGlvbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0
aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBbcGFyYWdyYXBoU3R5
bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVGV4dEFsaWdubWVu
dExlZnQgOiBOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNN
dXRhYmxlRGljdGlvbmFyeT4gYXR0cmlidXRlcyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0V2l0aE9iamVjdHNBbmRLZXlzOgogICAgICAgICAgICAgICAgIHBhcmFn
cmFwaFN0eWxlLmdldCgpLCBOU1BhcmFncmFwaFN0eWxlQXR0cmlidXRlTmFtZSwKICAgICAgICAg
ICAgICAgICBmb250LCBOU0ZvbnRBdHRyaWJ1dGVOYW1lLAogICAgICAgICAgICAgbmlsXSk7CiAg
ICAgICAgICAgICBpZiAoaXRlbXNbaV0ubV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgICAgICBSZXRhaW5Q
dHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBh
bGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1RleHRXcml0aW5nRGly
ZWN0aW9uT3ZlcnJpZGVdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0
TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBO
U1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgICAgIFJldGFpblB0cjxO
U0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10g
aW5pdFdpdGhPYmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1ZS5nZXQoKSwgbmlsXSk7CiAgICAg
ICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0OndyaXRpbmdEaXJlY3Rpb25BcnJheS5n
ZXQoKSBmb3JLZXk6TlNXcml0aW5nRGlyZWN0aW9uQXR0cmlidXRlTmFtZV07CiAgICAgICAgICAg
ICB9CkBAIC0xNTQsMTggKzE0OSwxNSBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93
UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogCiAgICAg
TlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZTsKICAgICBzd2l0Y2ggKGRhdGEubWVudVNpemUpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjYXNlIFdlYkNvcmU6OlBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOgotICAgICAgICBjb250cm9sU2l6ZSA9
IE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNp
emVSZWd1bGFyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlBvcHVwTWVudVN0
eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNTbWFsbENv
bnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVTbWFsbDsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNNaW5pQ29udHJvbFNpemU7CisgICAg
ICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZU1pbmk7CiAgICAgICAgIGJyZWFrOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIFJlZjxXZWJQb3B1cE1lbnVQ
cm94eU1hYz4gcHJvdGVjdCgqdGhpcyk7CkBAIC0xODMsMTMgKzE3NSwxMSBAQCB2b2lkIFdlYlBv
cHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHRE
aXJlY3Rpb24gdGV4dAogICAgIGlmICghbV9jbGllbnQtPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNl
RG93bkV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICAgICBOU0V2ZW50KiBpbml0aWF0aW5nTlNFdmVudCA9IG1fY2xpZW50
LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpLT5uYXRpdmVFdmVudCgpOwotICAg
IGlmIChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0gTlNMZWZ0TW91c2VEb3duKQorICAgIGlm
IChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5n
TlNFdmVudCBsb2NhdGlvbkluV2luZG93XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ05TRXZlbnQgbW9kaWZpZXJGbGFnc10K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2lu
aXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KQEAgLTE5OCwxMyArMTg4LDE0IEBAIHZvaWQgV2Vi
UG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4
dERpcmVjdGlvbiB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV2ZW50TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCBldmVudE51bWJlcl0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrQ291bnQ6W2luaXRpYXRpbmdOU0V2
ZW50IGNsaWNrQ291bnRdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByZXNzdXJlOltpbml0aWF0aW5nTlNFdmVudCBwcmVzc3VyZV1dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogCiAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFy
dDpZRVNdOworICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb246W1ttX3dlYlZpZXcgd2luZG93XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNl
TW92ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1ttX3dl
YlZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25d
XQorICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBt
b3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdOU0V2ZW50IG1vZGlm
aWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltp
bml0aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2luZG93TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC0yMTIs
NyArMjAzLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25z
dCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNz
dXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZl
bnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCmlu
ZGV4IDVlZGU1NmVlZTQwYWNmZGI5OTAxMTlkZTdhY2U5MThlNjc4YmM2NjYuLjEyNTE4ZGYzMzRj
ZjNmZGQ2NThkZjg5MTljMzM2MWIwODQyZTJkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0K
QEAgLTgwLDYgKzgwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9DdXJy
ZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMjc4LDMzICsxMjc5LDI4
IEBAIHZvaWQgUERGUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QsIGNvbnN0
IFdURjo6U3RyaW5nJikKICAgICAKIHN0YXRpYyBOU1VJbnRlZ2VyIG1vZGlmaWVyRmxhZ3NGcm9t
V2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TU2hpZnRLZXlN
YXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNDb250cm9sS2V5TWFz
ayA6IDApCi0gICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNBbHRlcm5hdGVLZXlNYXNrIDog
MCkKLSAgICAgICAgfCAoZXZlbnQubWV0YUtleSgpID8gTlNDb21tYW5kS2V5TWFzayA6IDApOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXko
KSA/IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCA6IDApCisgICAgICAgIHwgKGV2ZW50LmNvbnRy
b2xLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sIDogMCkKKyAgICAgICAgfCAoZXZl
bnQuYWx0S2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uIDogMCkKKyAgICAgICAgfCAo
ZXZlbnQubWV0YUtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQgOiAwKTsKIH0KICAg
ICAKIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYg
ZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsKICAgICBjYXNlIFdlYkV2
ZW50OjpLZXlEb3duOgotICAgICAgICBldmVudFR5cGUgPSBOU0tleURvd247CisgICAgICAgIGV2
ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5RG93bjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
Y2FzZSBXZWJFdmVudDo6S2V5VXA6Ci0gICAgICAgIGV2ZW50VHlwZSA9IE5TS2V5VXA7CisgICAg
ICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlRG93bjoKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2Fz
dDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2Ug
V2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVm
dE1vdXNlRG93bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNl
RG93bjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZl
bnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlRG93
bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd247CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTEzMTIsMTAgKzEzMDgsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRU
eXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50
VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZVVwOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19j
YXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2Fz
ZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNM
ZWZ0TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNl
VXA7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50
OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZVVwOwor
ICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTEzMjMsMTMgKzEzMTksMTMgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJv
bVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAg
ICBjYXNlIFdlYkV2ZW50OjpNb3VzZU1vdmU6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8
Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdl
Yk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRN
b3VzZURyYWdnZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURyYWdnZWQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3Vz
ZURyYWdnZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
cmFnZ2VkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VF
dmVudDo6Tm9CdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU01vdXNlTW92ZWQ7Cisg
ICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEzMzcsNyArMTMzMyw2IEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJF
dmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgZGVm
YXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKIH0KICAgICAKIE5TRXZlbnQgKlBERlBsdWdpbjo6bnNFdmVudEZvcldlYk1vdXNl
RXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3Rh
dGlvbi5tbQppbmRleCA2YzYwYmRkZTk1ZmRkMzE3ZjZiNzE0ZTFmNDRmNmVlYjJmMzNkMzBiLi42
MDMxYzU5MGRjMjMxZWNjZmVlYTIwYTA0N2Y4NTY5NmNhNWQ4YTNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
VGV4dEFubm90YXRpb24ubW0KQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRN
TFRleHRBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTMs
MjEgKzU0LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBjb25zdCBT
dHJpbmcgY3NzQWxpZ25tZW50VmFsdWVGb3JOU1RleHRBbGlnbm1lbnQoTlNUZXh0QWxpZ25tZW50
IGFsaWdubWVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBz
d2l0Y2ggKGFsaWdubWVudCkgewotICAgIGNhc2UgTlNMZWZ0VGV4dEFsaWdubWVudDoKKyAgICBj
YXNlIE5TVGV4dEFsaWdubWVudExlZnQ6CiAgICAgICAgIHJldHVybiAibGVmdCI7Ci0gICAgY2Fz
ZSBOU1JpZ2h0VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudFJpZ2h0Ogog
ICAgICAgICByZXR1cm4gInJpZ2h0IjsKLSAgICBjYXNlIE5TQ2VudGVyVGV4dEFsaWdubWVudDoK
KyAgICBjYXNlIE5TVGV4dEFsaWdubWVudENlbnRlcjoKICAgICAgICAgcmV0dXJuICJjZW50ZXIi
OwotICAgIGNhc2UgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxp
Z25tZW50SnVzdGlmaWVkOgogICAgICAgICByZXR1cm4gImp1c3RpZnkiOwotICAgIGNhc2UgTlNO
YXR1cmFsVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudE5hdHVyYWw6CiAg
ICAgICAgIHJldHVybiAiLXdlYmtpdC1zdGFydCI7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IGEzNmYzYjMyM2FiOTE2
NTE0NzdiZDNjN2JlMjhjNmEyM2RlOWIxN2QuLjYyNmU0MzZjNmFjNGZlNmI5YTdlYjUzYzJkMzU2
YmY3OTZmZjQ0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNDYsNiAr
NDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdUcnVuY2F0b3IuaD4KICNpbXBvcnQgPFdl
YktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTYzLDEwICs2
NCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9C
aXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEluCiAgICAgUmV0YWluUHRyPE5TR3JhcGhpY3ND
b250ZXh0PiBzYXZlZENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRd
OwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNz
Q29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNzQ29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1h
cC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1pl
cm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MSByZXNwZWN0
RmxpcHBlZDpZRVMgaGludHM6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRo
KCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlv
bjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlw
cGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRD
b250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294128</attachid>
            <date>2016-11-07 20:12:25 -0800</date>
            <delta_ts>2016-11-07 21:06:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107200816.patch</filename>
            <type>text/plain</type>
            <size>169275</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBL
aXRTdHVicy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVi
cy5oCmluZGV4IDExNjYxODkwMjY0YjU3Nzk5OTNiZDM3YWVjMzU0M2JhMTMwZDE0MDQuLjQyOGQ2
OTM4NjVhZDViN2QyM2VjNmI4YTJhNjk2ZDU5ODUxZjE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLQXBwS2l0U3R1YnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS0FwcEtpdFN0dWJzLmgKQEAgLTE1NCwxNSArMTU0LDE1
IEBAIHR5cGVkZWYgTlNVSW50ZWdlciBOU1JlY3RFZGdlOwogCiAvKiBEZXZpY2UtaW5kZXBlbmRl
bnQgYml0cyBmb3VuZCBpbiBldmVudCBtb2RpZmllciBmbGFncyAqLwogZW51bSB7Ci0gICAgTlNB
bHBoYVNoaWZ0S2V5TWFzayA9IDEgPDwgMTYsCi0gICAgTlNTaGlmdEtleU1hc2sgPSAgICAgIDEg
PDwgMTcsCi0gICAgTlNDb250cm9sS2V5TWFzayA9ICAgIDEgPDwgMTgsCi0gICAgTlNBbHRlcm5h
dGVLZXlNYXNrID0gIDEgPDwgMTksCi0gICAgTlNDb21tYW5kS2V5TWFzayA9ICAgIDEgPDwgMjAs
Ci0gICAgTlNOdW1lcmljUGFkS2V5TWFzayA9IDEgPDwgMjEsCi0gICAgTlNIZWxwS2V5TWFzayA9
ICAgICAgIDEgPDwgMjIsCi0gICAgTlNGdW5jdGlvbktleU1hc2sgPSAgIDEgPDwgMjMsCi0gICAg
TlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKKyAgICBO
U0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2sgPSAxIDw8IDE2LAorICAgIE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdCA9IDEgPDwgMTcsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSAx
IDw8IDE4LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gPSAxIDw8IDE5LAorICAgIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kID0gMSA8PCAyMCwKKyAgICBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZCA9IDEgPDwgMjEsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgPSAx
IDw8IDIyLAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbiA9IDEgPDwgMjMsCisgICAg
TlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrID0gMHhmZmZmMDAw
MFUKIH07CiAKIHR5cGVkZWYgZW51bSBfV0tXcml0aW5nRGlyZWN0aW9uIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5
YzBiZDBmNjY5ZWIyNTRkMGMuLjcyOGQzNDRhOTQ1MDM0YjljN2EyMDg1ZjQ1NjNkYzFiYjY5NjRl
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtMjksNiAr
MjksNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50
ZXJmYWNlIFdlYkNvcmVDdXJzb3JCdW5kbGUgOiBOU09iamVjdCB7IH0KIEBlbmQKQEAgLTY0LDEw
ICs2NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJ
bWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTCiAgICAgICAgIE5TUmVjdCBmcm9tUmVj
dCA9IE5TTWFrZVJlY3QoMCwgMCwgaW1hZ2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CiAK
ICAgICAgICAgW2V4cGFuZGVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJl
Y3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVj
dDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRp
b25Tb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwogICAgICAgICBbZXhwYW5kZWRJbWFnZSB1bmxvY2tG
b2N1c107CiAKICAgICAgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0N1cnNvciBhbGxvY10gaW5pdFdp
dGhJbWFnZTpleHBhbmRlZEltYWdlLmdldCgpIGhvdFNwb3Q6aG90U3BvdF0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggNjgyNDZiZWZhNTIzZWRm
ZjNiNjA1YzYwMTE4NzE5ZDQ3Mjk4ZDA5Yi4uMGZmNDIwMjAwY2M4YmQzNDg3ZTQ1NmY3NzkwZWRl
ZTk1ZThmNTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIKICNpbXBv
cnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzUsMTAgKzc2LDcgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZl
RHJhZ0ltYWdlVG9GcmFjdGlvbihSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGZsb2F0IGQKICAg
ICBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVkSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBh
bGxvY10gaW5pdFdpdGhTaXplOltpbWFnZS5nZXQoKSBzaXplXV0pOwogICAgIAogICAgIFtkaXNz
b2x2ZWRJbWFnZS5nZXQoKSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIFtpbWFnZS5nZXQoKSBkcmF3QXRQb2ludDpOU1plcm9Qb2ludCBmcm9tUmVj
dDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXplXS53aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdo
dCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weSBmcmFjdGlvbjpkZWx0YV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5TWmVyb1Bv
aW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ug
c2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvbkNvcHkgZnJhY3Rp
b246ZGVsdGFdOwogICAgIFtkaXNzb2x2ZWRJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICByZXR1cm4gZGlzc29sdmVkSW1hZ2U7CkBAIC0xMTksMTAgKzExNyw4IEBAIFJldGFpblB0cjxO
U0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpCiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgc2V0VHJhbnNm
b3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QqKSZ0cmFuc2Zvcm1dOwogICAgICAg
ICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIGNvbmNhdF07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkg
ZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlv
bjoxLjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW2ltYWdl
LT5zbmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJl
Y3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3Np
dGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKKwogICAgICAgICAgICAgW3Jv
dGF0ZWREcmFnSW1hZ2UuZ2V0KCkgdW5sb2NrRm9jdXNdOwogCiAgICAgICAgICAgICByZXR1cm4g
cm90YXRlZERyYWdJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9FdmVudExvb3BNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29w
TWFjLm1tCmluZGV4IGFmMGEzOTkyYjY2ZTlkNmZmYzAxNzcxMjQ4NTc2MjZhMDA1YTVlOTAuLmI5
Y2M1NDVhOTg0OTM0ZDU0NjBkZGJkZjViZDRlYzNlYTcxNTkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQpAQCAtMjUsMTYgKzI1LDE0IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlIDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQogewogICAgIFtOU0FwcCBzZXRXaW5kb3dz
TmVlZFVwZGF0ZTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0FueUV2ZW50
TWFzayB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjAuMDVd
IGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU11dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1h
dGNoaW5nTWFzazpOU0V2ZW50TWFza0FueSB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJ
bnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVl
OllFU11dOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGE1ZGYzNDc0YzMxMWM2YTc1NjFkN2Y0
ZDQ0NTUzMTRhYTA0ZDAwNzAuLjFjNGUzYzE5ODAzMWNmZmE2ZmE5YjY2NTI3MWFiZmE0NzMyZDc2
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBA
IC01NSw2ICs1NSw3IEBACiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2ltcG9ydCA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIApAQCAt
NjUzLDExICs2NTQsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBsb2NhdGlvbikKICAgICAvLyBIYWNrOiBXZSBtdXN0
IHBvc3QgYW4gZXZlbnQgdG8gd2FrZSB1cCB0aGUgTlNEcmFnTWFuYWdlciwgd2hpY2ggaXMgc2l0
dGluZyBpbiBhIG5leHRFdmVudCBjYWxsCiAgICAgLy8gdXAgdGhlIHN0YWNrIGZyb20gdXMgYmVj
YXVzZSB0aGUgQ29yZUZvdW5kYXRpb24gZHJhZyBtYW5hZ2VyIGRvZXMgbm90IHVzZSB0aGUgcnVu
IGxvb3AgYnkgaXRzZWxmLgogICAgIC8vIFRoaXMgaXMgdGhlIG1vc3QgaW5ub2N1b3VzIGV2ZW50
IHRvIHVzZSwgcGVyIEtyaXN0ZW4gRm9yc3Rlci4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU01vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9pbnQKKyAgICBOU0V2ZW50KiBldmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRp
b246TlNaZXJvUG9pbnQKICAgICAgICAgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRv
d051bWJlcjowIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6
ZXZlbnQgYXRTdGFydDpZRVNdOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggZDM0ZDZlYWU5
NDhmN2FmY2JhYjMzMDMxNGZkY2JhNzhlOWU0MDBiOC4uMGQyZTMxOGVjZGZiMTMwNDIzODc3YTcz
MmQ4MmY4NjkxOTc2OTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNTIsMjcgKzUyLDI0IEBAIHN0YXRp
YyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQ
cmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3Vz
ZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2lu
ZG93XSwgW2V2ZW50IHdpbmRvd10pOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIHsgMCwgMCB9OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKKyAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtl
dmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiB7IDAsIDAgfTsKICAgICB9CiB9CiAKQEAgLTgwLDMzICs3NywzMCBAQCBz
dGF0aWMgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5k
b3dWaWV3KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQ
NjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJl
OgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNh
c2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgot
ICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNTY3JvbGxXaGVlbDogewotICAg
ICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9t
IGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgotICAgICAg
ICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5
IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93LgotICAgICAgICAgICAgTlNQb2lu
dCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKLSAgICAgICAgICAgIGlmICh3
aW5kb3dWaWV3KQotICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW3dpbmRvd1ZpZXcgY29udmVy
dFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9p
bnQobG9jYXRpb24pOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQoKTsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hl
ZWw6IHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUg
Ym90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgor
ICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQg
YnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCisgICAgICAgIE5TUG9pbnQg
bG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIGlmICh3aW5kb3dW
aWV3KQorICAgICAgICAgICAgbG9jYXRpb24gPSBbd2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9j
YXRpb24gZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgcmV0dXJuIEludFBvaW50KGxvY2F0aW9uKTsK
KyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CiAgICAgfQog
fQogCkBAIC0xMTQsNzIgKzEwOCw2MyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91c2VCdXR0b25G
b3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewog
I2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJl
dHVybiBMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIE5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIExlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gUmlnaHRC
dXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBOb0J1dHRvbjsKICAgICB9CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBl
IG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6
Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92
ZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJl
dHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2Vk
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3Nl
ZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKIHN0YXRp
YyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNs
aWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVy
biBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogfQogCkBAIC00OTcsMjggKzQ4MiwyOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktl
eUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVGbGFnc0NoYW5nZWQpIHsKICAgICAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsK
LSAgICAgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgICAgIGNhc2Ug
NTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2siKTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgICAgIGNhc2Ug
NjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0g
ICAgICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgICAgICByZXR1cm4g
U3RyaW5nKCJBbHQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTk6IC8v
IExlZnQgQ3RybAotICAgICAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgNTQ6IC8v
IFJpZ2h0IENvbW1hbmQKKyAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
ICAgICByZXR1cm4gU3RyaW5nKCJNZXRhIik7CisKKyAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xv
Y2sKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7CisKKyAgICAgICAgY2Fz
ZSA1NjogLy8gTGVmdCBTaGlmdAorICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKworICAgICAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAorICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoIkFsdCIpOworCisgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgICAg
ICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDb250
cm9sIik7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgCkBAIC01MzQsNDQgKzUxOSwzOCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5T
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBl
dmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246
Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAg
ICAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
RmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TTnVtZXJpY1BhZEtleU1hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFy
Ci0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBj
YXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8g
KwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAg
ICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0
OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAg
ICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4
OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAg
ICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAg
ICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVy
CisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAx
CisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0
CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3
CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNTg1LDEwICs1NjQs
NyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAv
LyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29k
ZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlz
LiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVu
dCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NL
ZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlE
b3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9
PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXAp
KSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdF
UlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5T
U3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3Ro
XSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0p
IDogMDsKQEAgLTY0NiwzNSArNjIyLDMyIEBAIGRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3
MChOU0V2ZW50KiBldmVudCkKIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2ZW50
IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZs
YWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtl
eVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNzZXMg
Ym90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0IHJl
bGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNv
ZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2FzZSA1
NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2Fz
ZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0g
ICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNr
KSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAg
ICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0
cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9u
S2V5TWFzaykgPT0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIDU0
OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21t
YW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1No
aWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQg
QWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2
MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAg
Kzc5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9rZXkgPSBrZXlGb3JLZXlFdmVudChldmVudCk7
CiAgICAgICAgIG1fY29kZSA9IGNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIG1fYXV0b1JlcGVhdCA9
IFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50
IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwog
ICAgICAgICBtX2lzS2V5cGFkID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgICAgIG1faXNT
eXN0ZW1LZXkgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFj
LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
bW0KaW5kZXggOTFjYmVkZDBjZGEwNzA2NWIzYmYzZjE3MDE1OGYxZDYyNzczMTgzZi4uNjRkODU0
YThlODRjODYyYTkwYWJkNDU3NWNlNjNlYmVlNGQyZWUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtNDIsNiArNDIsNyBAQAog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIC8vIEZJWE1FOiBUaGVyZSBh
cmUgcmVwYWludGluZyBwcm9ibGVtcyBkdWUgdG8gQXF1YSBzY3JvbGwgYmFyIGJ1dHRvbnMnIHZp
c3VhbCBvdmVyZmxvdy4KIApAQCAtMTM5LDE4ICsxNDAsMTUgQEAgc3RhdGljIFNjcm9sbGJhckJ1
dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVF
bmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoY29udHJvbFNpemUpIHsKICAgICBj
YXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6
ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGNhc2UgU21hbGxT
Y3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIH0KIAogdm9pZCBT
Y3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggMDI0NzJjOWE2
OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4uYjEwMDQxYjVlYjE3MmY0MzcyYzQwMDU1
YjE2OTk3YzEzOTRjMjNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHN0YXRpYyBOU1JlY3QgZm9jdXNSaW5nQ2xpcFJlY3Q7CiBzdGF0aWMgQk9PTCB0aGVtZVdp
bmRvd0hhc0tleUFwcGVhcmFuY2U7CkBAIC02NywxMSArNjgsOCBAQCAtIChOU1dpbmRvdyAqKXdp
bmRvdwogewogICAgIC8vIFVzaW5nIGRlZmVyOllFUyBwcmV2ZW50cyB1cyBmcm9tIHdhc3Rpbmcg
YW55IHdpbmRvdyBzZXJ2ZXIgcmVzb3VyY2VzIGZvciB0aGlzIHdpbmRvdywgc2luY2Ugd2UncmUg
bm90IGFjdHVhbGx5CiAgICAgLy8gZ29pbmcgdG8gZHJhdyBpbnRvIGl0LiBUaGUgb3RoZXIgYXJn
dW1lbnRzIG1hdGNoIHdoYXQgeW91IGdldCB3aGVuIGNhbGxpbmcgLVtOU1dpbmRvdyBpbml0XS4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzdGF0aWMgV2ViQ29yZVRo
ZW1lV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVUaGVtZVdpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCkKLSAgICAgICAgc3R5bGVN
YXNrOk5TVGl0bGVkV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrVGl0bGVkIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpZRVNdOwogICAgIHJldHVybiB3aW5kb3c7CiB9CiAKQEAgLTE0NCwxNSArMTQyLDEyIEBA
IFRoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKIAogc3RhdGljIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAg
ICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNp
emU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICBpZiAoZm9udFNp
emUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWlu
aTsKIH0KIAogc3RhdGljIExlbmd0aFNpemUgc2l6ZUZyb21OU0NvbnRyb2xTaXplKE5TQ29udHJv
bFNpemUgbnNDb250cm9sU2l6ZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvciwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMpCkBAIC0xNzUs
MTYgKzE3MCwxMyBAQCBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbUZvbnQoY29uc3QgRm9udENh
c2NhZGUmIGZvbnQsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZAogCiBzdGF0aWMgQ29udHJvbFNp
emUgY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4m
IHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChtaW5ab29tZWRT
aXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6
ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3IpICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0
KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwot
ICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tO
U1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5a
b29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNTbWFsbENv
bnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19j
YXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tRmFjdG9y
KQorICAgICAgICAmJiBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53
aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0
aCgpICogem9vbUZhY3RvcikKKyAgICAgICAgJiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4g
TlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldENvbnRyb2xTaXplKE5TQ2Vs
bCogY2VsbCwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNp
emUmIG1pblpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpCkBAIC00ODAsMTAgKzQ3Miw3IEBA
IHN0YXRpYyB2b2lkIHNldFVwQnV0dG9uQ2VsbChOU0J1dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTCiB7CiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUg
YmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFpbnRpbmcgaW50by4KICAgICBjb25zdCBz
dGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcyA9IGJ1dHRvblNpemVzKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFy
dCB8fCB6b29tZWRTaXplLmhlaWdodCgpID4gYnV0dG9uU2l6ZXMoKVtOU1JlZ3VsYXJDb250cm9s
U2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRTaXplLmhlaWdo
dCgpID4gYnV0dG9uU2l6ZXMoKVtOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSB7CiAgICAgICAgIC8vIFVzZSB0aGUgc3F1YXJlIGJ1dHRvbgogICAgICAgICBpZiAo
W2NlbGwgYmV6ZWxTdHlsZV0gIT0gTlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZSkKICAgICAg
ICAgICAgIFtjZWxsIHNldEJlemVsU3R5bGU6TlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZV07
CkBAIC01NzksMTUgKzU2OCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAz
PiYgc3RlcHBlclNpemVzKCkKIC8vIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNzIHRoYW4gdGhl
IGNvcnJlc3BvbmRpbmcgdGV4dCBmaWVsZCBoZWlnaHQsCiBzdGF0aWMgTlNDb250cm9sU2l6ZSBz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQu
cGl4ZWxTaXplKCk7CiAgICAgaWYgKGZvbnRTaXplID49IDE4KQotICAgICAgICByZXR1cm4gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsK
ICAgICBpZiAoZm9udFNpemUgPj0gMTMpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNp
emU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBO
U0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xT
dGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqKQpAQCAtNjAwLDE1ICs1
ODYsMTIgQEAgc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGRyYXdJbmZvLnN0YXRlID0gY29u
dmVydENvbnRyb2xTdGF0ZXNUb1RoZW1lRHJhd1N0YXRlKGtUaGVtZUluY0RlY0J1dHRvbiwgc3Rh
dGVzKTsKICAgICBkcmF3SW5mby5hZG9ybm1lbnQgPSBrVGhlbWVBZG9ybm1lbnREZWZhdWx0Owog
ICAgIENvbnRyb2xTaXplIGNvbnRyb2xTaXplID0gY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKHN0
ZXBwZXJTaXplcygpLCBJbnRTaXplKHpvb21lZFJlY3Quc2l6ZSgpKSwgem9vbUZhY3Rvcik7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xTaXplID09
IE5TU21hbGxDb250cm9sU2l6ZSkKKyAgICBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6
ZVNtYWxsKQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uU21hbGw7
Ci0gICAgZWxzZSBpZiAoY29udHJvbFNpemUgPT0gTlNNaW5pQ29udHJvbFNpemUpCisgICAgZWxz
ZSBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZU1pbmkpCiAgICAgICAgIGRyYXdJbmZv
LmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b25NaW5pOwogICAgIGVsc2UKICAgICAgICAgZHJhd0lu
Zm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIAogICAgIEludFJlY3QgcmVjdCh6b29tZWRSZWN0KTsKICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CkBAIC03NDksMTIgKzczMiw5IEBAIExlbmd0
aFNpemUgVGhlbWVNYWM6Om1pbmltdW1Db250cm9sU2l6ZShDb250cm9sUGFydCBwYXJ0LCBjb25z
dCBGb250Q2FzY2FkZSYgZm9uCiAgICAgICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICAgICAgICAg
IHJldHVybiBMZW5ndGhTaXplKExlbmd0aCgwLCBGaXhlZCksIExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KDE1ICogem9vbUZhY3RvciksIEZpeGVkKSk7CiAgICAgICAgIGNhc2UgSW5uZXJTcGluQnV0
dG9uUGFydDp7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAg
ICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU01pbmlDb250cm9sU2l6ZV07CisgICAg
ICAgICAgICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU0NvbnRyb2xTaXplTWluaV07
CiAgICAgICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZShMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pihi
YXNlLndpZHRoKCkgKiB6b29tRmFjdG9yKSwgRml4ZWQpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oYmFzZS5oZWlnaHQoKSAqIHpvb21GYWN0
b3IpLCBGaXhlZCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gVGhlbWU6Om1pbmltdW1Db250cm9s
U2l6ZShwYXJ0LCBmb250LCB6b29tRmFjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KaW5kZXggZDNiOWVlOThkZjk0MjBjY2Q3MTE2YjA0MDM1NjM4M2NmYzc0NmY5
MC4uYjQ4NjA2Y2I1YTc0NGQ4NzBiODYxOTM0MzY2Mjg5OGJhOWZmNGVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxWaWRlb0Vs
ZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0
Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtNzMsMTAgKzc0LDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdwogLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0KWNv
bnRlbnRSZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilhU3R5bGUgYmFja2luZzooTlNCYWNraW5n
U3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxhZwogewogICAgIFVOVVNFRF9Q
QVJBTShhU3R5bGUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6TlNC
b3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENv
bnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3MgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmZsYWddOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKIApAQCAtMTIyLDE1ICsxMjAsMTIgQEAgLSAoQk9PTClyZXNpZ25G
aXJzdFJlc3BvbmRlcgogCiAtIChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICop
ZXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBCbG9j
ayBhbGwgY29tbWFuZCBrZXkgZXZlbnRzIHdoaWxlIHRoZSBmdWxsc2NyZWVuIHdpbmRvdyBpcyB1
cC4KLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5
cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotICAg
IGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spKQorICAgIGlm
ICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSkK
ICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIHJl
dHVybiBZRVM7CiB9CiAKQEAgLTE0NSwxMSArMTQwLDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIKIAogLSAoaWQpaW5pdAogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dl
YlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01h
a2VSZWN0KDAsIDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCB3aW5kb3dXaWR0aCwg
d2luZG93SGVpZ2h0KSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBp
bml0V2l0aFdpbmRvdzp3aW5kb3ddOwogICAgIFt3aW5kb3cgc2V0RGVsZWdhdGU6c2VsZl07CiAg
ICAgW3dpbmRvdyByZWxlYXNlXTsKQEAgLTE4OCwyMCArMTc5LDE3IEBAIC0gKHZvaWQpa2V5RG93
bjooTlNFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICBjYXNlICcgJzoKICAgICAgICAgICAgICAg
ICBbc2VsZiB0b2dnbGVQbGF5aW5nOm5pbF07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKLSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNBbHRlcm5hdGVLZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAg
ICBbc2VsZiBzZXRWb2x1bWU6W3NlbGYgbWF4Vm9sdW1lXV07CiAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBpbmNyZW1lbnRWb2x1bWVdOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToK
LSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzZXRWb2x1
bWU6MF07CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBk
ZWNyZW1lbnRWb2x1bWVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC0zNzgsMTcgKzM2NiwxMSBAQCAtICh2b2lkKXdpbmRvd0RpZExvYWQKICAgICBbY29u
dGVudFZpZXcgYWRkU3VidmlldzpfdGltZWxpbmVdOwogCiAgICAgX2VsYXBzZWRUaW1lVGV4dCA9
IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZVRleHRG
aWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtf
ZWxhcHNlZFRpbWVUZXh0IHNldEFsaWdubWVudDpOU0xlZnRUZXh0QWxpZ25tZW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX2VsYXBzZWRUaW1lVGV4dCBzZXRBbGlnbm1l
bnQ6TlNUZXh0QWxpZ25tZW50TGVmdF07CiAgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X2Vs
YXBzZWRUaW1lVGV4dF07CiAKICAgICBfcmVtYWluaW5nVGltZVRleHQgPSBjcmVhdGVUaW1lVGV4
dEZpZWxkKE5TTWFrZVJlY3Qod2luZG93V2lkdGggLSB0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiAtIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0
RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX3Jl
bWFpbmluZ1RpbWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAg
W2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X3JlbWFpbmluZ1RpbWVUZXh0XTsKIAogICAgIFt3aW5k
b3cgcmVjYWxjdWxhdGVLZXlWaWV3TG9vcF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQppbmRleCA0NTk4YTAzZWQyZmEzMjE1MGU2NGFm
OWNiYjY0NTk5NDY5ZmRkZjc3Li43ZGU1ZWI1MzdjN2ZhMDIzNTIyYmNlZjY4MzMyM2IyNTg0ZWNj
NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5p
bWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmlt
YXRpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zOCwxMCArMzksNyBAQCBzdGF0aWMg
Y29uc3QgQ0dGbG9hdCBzbG93TW90aW9uRmFjdG9yID0gMTA7CiAKIHN0YXRpYyBOU1RpbWVJbnRl
cnZhbCBXZWJXaW5kb3dBbmltYXRpb25EdXJhdGlvbkZyb21EdXJhdGlvbihOU1RpbWVJbnRlcnZh
bCBkdXJhdGlvbikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBy
ZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlN
YXNrKSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1v
ZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSA/IGR1cmF0aW9uICogc2xv
d01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwogfQogCiBzdGF0aWMgTlNSZWN0IHNjYWxlZFJlY3Qo
TlNSZWN0IF9pbml0aWFsRnJhbWUsIE5TUmVjdCBfZmluYWxGcmFtZSwgQ0dGbG9hdCBmYWN0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggM2VkZGMw
M2U0ZDhlOWY2MzUxN2M1MjcxZjIwMWI1Njc4MjJiOTAyOC4uODU3NjQyMzUyM2E5MGM4YTUyNTE4
MDU0YWQ5MmI1MTQ0ZjQxOTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtODEsNiArODEsNyBAQAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgog
I2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNpbXBvcnQgPG1hdGguaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgRU5BQkxFKE1FVEVS
X0VMRU1FTlQpCiAjaW1wb3J0ICJSZW5kZXJNZXRlci5oIgpAQCAtMzc5LDIyICszODAsMTMgQEAg
dm9pZCBSZW5kZXJUaGVtZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENT
U1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm8KICAgICAgICAgICAgIGZvbnROYW1lID0gQXRvbWljU3Ry
aW5nKCItYXBwbGUtc3RhdHVzLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNaW5p
Q29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAg
IGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZv
ckNvbnRyb2xTaXplOk5TTWluaUNvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0Zv
bnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplTWluaV1dOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0
ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF1dOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDb250cm9sOgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lz
dGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNSZWd1
bGFyQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1bGFyXV07CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZv
bnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZV1dOwpAQCAtNzc3LDMwICs3NjksMjQgQEAg
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvKSBjb25zdAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVG
b3JGb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpbnQgZm9udFNp
emUgPSBzdHlsZS5mb250U2l6ZSgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGlmIChmb250U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRy
b2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZv
bnRTaXplID49IDExKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJl
dHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6
ZU1pbmk7CiB9CiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9y
Q2VsbChOU0NlbGwqLCBjb25zdCBJbnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6
ZSwgZmxvYXQgem9vbUxldmVsKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXpl
c1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21MZXZlbCkKLSAgICAgICAgJiYg
bWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tTGV2ZWwpCisgICAgICAg
ICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xT
aXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVJlZ3VsYXI7CiAKLSAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0
PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxldmVsKQotICAg
ICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFs
bENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1Nt
YWxsQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lkdGgoKSAqIHpvb21MZXZlbCkKKyAgICAg
ICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJv
bFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVNtYWxsOwogCi0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAog
dm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBJ
bnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSwgZmxvYXQgem9vbUxldmVsKQpA
QCAtODU3LDE1ICs4NDMsMTIgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250
cm9sU2l6ZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmIHN0eWxlLAogCiBOU0NvbnRyb2xT
aXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0gICAgaWYgKGZvbnRTaXpl
ID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9s
U2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAoZm9u
dFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250
cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250
cm9sU2l6ZVJlZ3VsYXJdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7Cisg
ICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpO
U0NvbnRyb2xTaXplU21hbGxdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOwor
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6
cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiByKQpAQCAtMTE0NywxMCArMTEzMCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50UHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgY29uc3QgYXV0byYgcmVuZGVyUHJvZ3Jlc3MgPSBkb3du
Y2FzdDxSZW5kZXJQcm9ncmVzcz4ocmVuZGVyT2JqZWN0KTsKICAgICBISVRoZW1lVHJhY2tEcmF3
SW5mbyB0cmFja0luZm87CiAgICAgdHJhY2tJbmZvLnZlcnNpb24gPSAwOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU1JlZ3VsYXJD
b250cm9sU2l6ZSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoY29udHJv
bFNpemUgPT0gTlNDb250cm9sU2l6ZVJlZ3VsYXIpCiAgICAgICAgIHRyYWNrSW5mby5raW5kID0g
cmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBrVGhlbWVMYXJnZUluZGV0ZXJtaW5hdGVC
YXIgOiBrVGhlbWVMYXJnZVByb2dyZXNzQmFyOwogICAgIGVsc2UKICAgICAgICAgdHJhY2tJbmZv
LmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZU1lZGl1bUluZGV0
ZXJtaW5hdGVCYXIgOiBrVGhlbWVNZWRpdW1Qcm9ncmVzc0JhcjsKQEAgLTE0MzgsMTUgKzE0MTgs
MTIgQEAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgUmVuZGVyVGhlbWVNYWM6OnBvcHVw
TWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICBOU1BvcFVwQnV0dG9uQ2VsbCogcG9w
dXBCdXR0b24gPSB0aGlzLT5wb3B1cEJ1dHRvbigpOwogICAgIE5TQ29udHJvbFNpemUgc2l6ZSA9
IGNvbnRyb2xTaXplRm9yQ2VsbChwb3B1cEJ1dHRvbiwgcG9wdXBCdXR0b25TaXplcygpLCByZWN0
LnNpemUoKSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICBzd2l0Y2ggKHNpemUpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TUmVndWxhckNvbnRy
b2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVJlZ3VsYXI6CiAgICAgICAgIHJldHVybiBQ
b3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsKLSAgICBjYXNlIE5TU21hbGxDb250
cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVTbWFsbDoKICAgICAgICAgcmV0dXJuIFBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw7Ci0gICAgY2FzZSBOU01pbmlDb250cm9s
U2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVNaW5pOgogICAgICAgICByZXR1cm4gUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU5vcm1hbDsKICAgICB9CkBAIC0yMDU1LDEyICsyMDMyLDkgQEAgTlNTbGlkZXJDZWxsKiBS
ZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJIb3Jpem9udGFsKCkgY29uc3QKIHsKICAgICBpZiAo
IW1fc2xpZGVyVGh1bWJIb3Jpem9udGFsKSB7CiAgICAgICAgIG1fc2xpZGVyVGh1bWJIb3Jpem9u
dGFsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxvY10gaW5pdF0pOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwu
Z2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRlclRo
dW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdOwor
ICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1Ns
aWRlclR5cGVMaW5lYXJdOworICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkg
c2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1
bWJIb3Jpem9udGFsLmdldCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJp
b3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIHJldHVybiBt
X3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKTsKQEAgLTIwNzAsMTEgKzIwNDQsOCBAQCBOU1Ns
aWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYlZlcnRpY2FsKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fc2xpZGVyVGh1bWJWZXJ0aWNhbCkgewogICAgICAgICBtX3NsaWRlclRodW1i
VmVydGljYWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0XSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRlclRodW1iVmVydGlj
YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRl
clRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0
aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFtt
X3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRGb2N1c1JpbmdU
eXBlOk5TRm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXggZjJhMzU5NzNhNzFlMDY4
MjYwYTkxYzk2N2QyOTA1MGQyZWRlNzYwZC4uYTY5ZjZmMWZhNTBhOWE0YWRkODYzZjQ3OTViYzFk
NzEyZjBiYTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW0KQEAgLTc2LDYgKzc2LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RF
eHRyYXMuaCIKQEAgLTE3MywxMyArMTc0LDE0IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93
UmVmOihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAK
ICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBzdHlsZSBtYXNrLgogICAgIHN0eWxlTWFz
ayA9IFdLQ2FyYm9uV2luZG93TWFzaygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRl
KSBzdHlsZU1hc2sgfD0gTlNDbG9zYWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0F0dHJp
YnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKSBzdHlsZU1hc2sgfD0gTlNSZXNpemFi
bGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBz
ZSkgc3R5bGVNYXNrIHw9IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5k
b3dGZWF0dXJlcyAmIGtXaW5kb3dIYXNUaXRsZUJhcikgc3R5bGVNYXNrIHw9IE5TVGl0bGVkV2lu
ZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAod2luZG93QXR0
cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0dHJpYnV0ZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9
IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBr
V2luZG93UmVzaXphYmxlQXR0cmlidXRlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dT
dHlsZU1hc2tSZXNpemFibGU7CisgICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0NhbkNv
bGxhcHNlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6
YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpCisgICAg
ICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZDsKIAogICAgIG9zU3RhdHVz
ID0gR2V0V2luZG93TW9kYWxpdHkoX3dpbmRvd1JlZiwgJndpbmRvd01vZGFsaXR5LCBOVUxMKTsK
ICAgICBpZiAob3NTdGF0dXMgIT0gbm9FcnIpIHsKQEAgLTM5MywxOCArMzk1LDEyIEBAIC0gKHZv
aWQpc2VuZFN1cGVyRXZlbnQ6KE5TRXZlbnQgKilpbkV2ZW50IHsKICAgICAvLyBJZ25vcmUgc29t
ZSB1bmtub3duIGV2ZW50IHRoYXQgZ2V0cyBzZW50IHdoZW4gTlNUZXh0Vmlld3MgaW4gcHJpbnRp
bmcgYWNjZXNzb3J5IHZpZXdzIGFyZSBmb2N1c2VkLiAgTS5QLiBOb3RpY2UgLSAxMi83LzAwCiAg
ICAgQk9PTCBpZ25vcmVFdmVudCA9IE5POwogICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IFtp
bkV2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
IChldmVudFR5cGU9PU5TU3lzdGVtRGVmaW5lZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZpbmVkKSB7CiAg
ICAgICAgIHNob3J0IGV2ZW50U3VidHlwZSA9IFtpbkV2ZW50IHN1YnR5cGVdOwotICAgICAgICBp
ZiAoZXZlbnRTdWJ0eXBlPT03KSB7CisgICAgICAgIGlmIChldmVudFN1YnR5cGUgPT0gNykgewog
ICAgICAgICAgICAgaWdub3JlRXZlbnQgPSBZRVM7CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBOU0tleURv
d24pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICB9IGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAgICAgICAgLy8gSGFuZGxlIGNvbW1hbmQt
c3BhY2UgYXMgW05TQXBwIHNlbmRFdmVudDpdIGRvZXMuCiAgICAgICAgIGlmIChbTlNJbnB1dENv
bnRleHQgcHJvY2Vzc0lucHV0S2V5QmluZGluZ3M6aW5FdmVudF0pIHsKICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KaW5kZXggZWFkNTkzNjk2ZDRiOWE5NzY2YTNjYmNl
MDNlYWQ2ZWFmZDA3OTU3OS4uNmQwNmM3MDEwYzUyYjgxZDUzMTUxZTE4NTJkNDE0NDFiOTEyOWQ5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvSWRlbnRpZmllclJlcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVy
Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBleHRlcm4gIkMiIHsKICNpbXBvcnQg
IldlYktpdFBsdWdpbkhvc3QuaCIKQEAgLTIzMCwxMCArMjMxLDcgQEAgdm9pZCBOZXRzY2FwZVBs
dWdpbkhvc3RQcm94eTo6YmVnaW5Nb2RhbCgpCiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2lu
ZG93KTsKICAgICBBU1NFUlQoIW1fYWN0aXZhdGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRv
cHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFz
ayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgbV9wbGFjZWhvbGRlcldpbmRvdyA9IGFkb3B0TlMoW1tX
ZWJQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFr
ZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAKICAgICBtX2FjdGl2
YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25XaWxsQmVjb21lQWN0aXZlTm90aWZpY2F0aW9u
IG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ0Jsb2NrOl4oTlNO
b3RpZmljYXRpb24gKil7IGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7IH1dOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDFiNGQzYTk2ZmE5YWU3YTE3N2U0NTEyZjQ1NjQx
ZGFhMjQzN2Q0YzkuLmFhMGRmNTQyNGE0MjZmZDNhZDc4MzQzNDZjZDdiMmFkNGMyOTU1MzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTY2LDYgKzY2LDcgQEAKICNpbXBvcnQg
PHV0aWxpdHk+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9S
ZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBleHRl
cm4gIkMiIHsKQEAgLTQ2NSwxNSArNDY2LDEyIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5OjpzeW50aGV0aWNLZXlEb3duV2l0aENvbW1hbmRNb2RpZmllcihpbnQga2V5Q29kCiB7
CiAgICAgTlNEYXRhICpjaGFyYWN0ZXJzRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczomY2hh
cmFjdGVyIGxlbmd0aDoxXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgIF9XS1BIUGx1Z2luSW5zdGFuY2VLZXlib2FyZEV2ZW50KG1fcGx1Z2luSG9zdFByb3h5LT5w
b3J0KCksIG1fcGx1Z2luSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBOUENvY29hRXZlbnRLZXlEb3duLCBOU0NvbW1hbmRLZXlN
YXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtl
eURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KFtjaGFyYWN0ZXJzRGF0YSBieXRlc10pKSwgW2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0s
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y2hhcio+
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFtjaGFyYWN0ZXJzRGF0YSBieXRlc10pKSwg
W2NoYXJhY3RlcnNEYXRhIGxlbmd0aF0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZhbHNlLCBrZXlDb2RlLCBjaGFyYWN0ZXIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZmxhZ3NDaGFu
Z2VkKE5TRXZlbnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDM3
NjY3MmI2ODY3MzdjNzczZWRjNmRmNjg0YjI4Nzk4Mjk2NGY1NDEuLmRmYzhjY2E3MjgyNDhhODk2
YTgxM2U2Zjc5MjQyYzA5NDJiMjVjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0K
QEAgLTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3
dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNDQzLDEwICs0NDQs
NyBAQCAtICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVjdAogewogICAgIGlmIChfY2FjaGVkU25h
cHNob3QpIHsKICAgICAgICAgTlNSZWN0IHNvdXJjZVJlY3QgPSB7IE5TWmVyb1BvaW50LCBbX2Nh
Y2hlZFNuYXBzaG90LmdldCgpIHNpemVdIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgICAgIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgZHJhd0luUmVjdDpbc2VsZiBi
b3VuZHNdIGZyb21SZWN0OnNvdXJjZVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3Zl
ciBmcmFjdGlvbjoxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW19j
YWNoZWRTbmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291
cmNlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rp
b246MV07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2Nv
YS5tbQppbmRleCBhMWQxNTlhZjk0ZTE0ODlhNDhiMDk5MjEwOGQwM2YzOTgwNWYyOTk2Li45YzUy
MDFmZTYyZDI2M2JkMzVlYjVlNzFkNGEzNzAxYWFhOTE3ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFu
ZGxlckNvY29hLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuaCIKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luVmlldy5oIgogI2ltcG9ydCA8d3Rm
L1ZlY3Rvci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OldlYk5ldHNjYXBl
UGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EoV2ViTmV0c2NhcGVQbHVnaW5WaWV3KiBwbHVnaW5WaWV3
KQogICAgIDogV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIocGx1Z2luVmlldykKQEAgLTE2
MSwxMCArMTYyLDcgQEAgdm9pZCBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpz
eW50aGV0aWNLZXlEb3duV2l0aENvbW1hbmRNb2RpZmllcihpbnQKICAgICAKICAgICBOUENvY29h
RXZlbnQgZXZlbnQ7CiAgICAgaW5pdGlhbGl6ZUV2ZW50KCZldmVudCwgTlBDb2NvYUV2ZW50S2V5
RG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgZXZlbnQuZGF0
YS5rZXkubW9kaWZpZXJGbGFncyA9IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgZXZlbnQuZGF0YS5rZXkubW9kaWZpZXJGbGFncyA9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIGV2ZW50LmRhdGEua2V5LmtleUNvZGUgPSBrZXlDb2Rl
OwogICAgIGV2ZW50LmRhdGEua2V5LmlzQVJlcGVhdCA9IGZhbHNlOwogICAgIGV2ZW50LmRhdGEu
a2V5LmNoYXJhY3RlcnMgPSAoTlBOU1N0cmluZyAqKWNoYXJhY3RlcnMuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KaW5kZXggYzQ2
NjcwYjRkNzlkOGNlODRmYmQ0MTE1OGZiNzMwODBhZTgwNDc5Yi4uNzlmMjhmYjgyY2I3ZmQ5Mzlj
ZDMzMjM0ZWM0N2VjMDM5NjZlZTUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9Qb3B1cE1lbnVDbGllbnQuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMv
QXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIApAQCAtOTAsMTcgKzkxLDExIEBAIHZvaWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgp
CiAgICAgICAgIH0KIAogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlUGFyYWdyYXBoU3R5bGU+
IHBhcmFncmFwaFN0eWxlID0gYWRvcHROUyhbW05TUGFyYWdyYXBoU3R5bGUgZGVmYXVsdFBhcmFn
cmFwaFN0eWxlXSBtdXRhYmxlQ29weV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0
aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBz
ZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNUZXh0QWxpZ25tZW50TGVm
dCA6IE5TVGV4dEFsaWdubWVudFJpZ2h0XTsKICAgICAgICAgTlNXcml0aW5nRGlyZWN0aW9uIHdy
aXRpbmdEaXJlY3Rpb24gPSBzdHlsZS50ZXh0RGlyZWN0aW9uKCkgPT0gTFRSID8gTlNXcml0aW5n
RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAg
ICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndyaXRpbmdEaXJl
Y3Rpb25dOwogICAgICAgICBpZiAoc3R5bGUuaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCkpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFJldGFpblB0
cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05TTnVtYmVyIGFs
bG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TVGV4dFdyaXRpbmdEaXJl
Y3Rpb25PdmVycmlkZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtb
TlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0
aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PiB3
cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhP
YmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1ZS5nZXQoKSwgbmlsXSk7CiAgICAgICAgICAgICBb
YXR0cmlidXRlcyBzZXRPYmplY3Q6d3JpdGluZ0RpcmVjdGlvbkFycmF5LmdldCgpIGZvcktleTpO
U1dyaXRpbmdEaXJlY3Rpb25BdHRyaWJ1dGVOYW1lXTsKICAgICAgICAgfQpAQCAtMjA2LDE4ICsy
MDEsMTUgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVW
aWV3KiB2LCBpbnQgaW5kZXgpCiAKICAgICBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplOwogICAg
IHN3aXRjaCAobV9jbGllbnQtPm1lbnVTdHlsZSgpLm1lbnVTaXplKCkpIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1l
bnVTaXplTm9ybWFsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TUmVndWxhckNvbnRyb2xTaXpl
OworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAg
ICAgIGNvbnRyb2xTaXplID0gTlNTbWFsbENvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6
ZSA9IE5TQ29udHJvbFNpemVTbWFsbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNNaW5p
Q29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZU1pbmk7CiAg
ICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAg
IFdLUG9wdXBNZW51KG1lbnUsIGxvY2F0aW9uLCByb3VuZGYoTlNXaWR0aChyKSksIGR1bW15Vmll
dy5nZXQoKSwgaW5kZXgsIHRvTlNGb250KGZvbnQpLCBjb250cm9sU2l6ZSwgIW1fY2xpZW50LT5t
ZW51U3R5bGUoKS5oYXNEZWZhdWx0QXBwZWFyYW5jZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KaW5kZXgg
OTE0ZDhlMDYzZThlYjBmY2E5ZWFlOWQ3YmJiYzgxZjYxYjdiODhkNi4uYTM5YjkzZTc3ZTI2YTY0
MzNiOTI4ODhmMTkzM2EwOTk1NTE1YzYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KQEAgLTYwLDYgKzYw
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1VSTC5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTVByaXZhdGUuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMjY5LDEwICsyNzAsNyBAQCB2b2lkIFdlYkNv
bnRleHRNZW51Q2xpZW50OjpzaG93Q29udGV4dE1lbnUoKQogCiAgICAgTlNWaWV3KiB2aWV3ID0g
ZnJhbWVWaWV3LT5kb2N1bWVudFZpZXcoKTsKICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmll
dy0+Y29udGVudHNUb1dpbmRvdyhwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5oaXRUZXN0
UmVzdWx0KCkucm91bmRlZFBvaW50SW5Jbm5lck5vZGVGcmFtZSgpKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxh
Z3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVy
XSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlRG93biBsb2NhdGlvbjpwb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3dd
IHdpbmRvd051bWJlcl0gY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNz
dXJlOjFdOwogCiAgICAgLy8gU2hvdyB0aGUgY29udGV4dHVhbCBtZW51IGZvciB0aGlzIGV2ZW50
LgogICAgIGJvb2wgaXNTZXJ2aWNlc01lbnU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDExNDc2YTAz
Mjc2ZWRkOTRlNzU1NTEzOTMwYWI0NjE5YmNlZGY5NTMuLjAyN2U1NGI3MzdlYWViMDc4YTE2ZjBl
ZmQ2ZWU4ZGJlYzgzZjM0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNDYsNiArMTQ2LDggQEAK
ICNpbXBvcnQgIldlYktpdFZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldlYk1haWxEZWxlZ2F0
ZS5oIgogI2ltcG9ydCAiV2ViVUlLaXREZWxlZ2F0ZS5oIgorI2Vsc2UKKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBVU0Uo
UVVJQ0tfTE9PSykKQEAgLTE1NjEsMTcgKzE1NjMsMTQgQEAgTlNEaWN0aW9uYXJ5ICpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6YWN0aW9uRGljdGlvbmFyeShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBh
Y3QKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IFVJRXZlbnRXaXRoS2V5U3RhdGUqIGtl
eVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUoY29uc3RfY2FzdDxFdmVudCo+KGV2
ZW50KSk7CiAgICAgaWYgKGtleVN0YXRlRXZlbnQgJiYga2V5U3RhdGVFdmVudC0+aXNUcnVzdGVk
KCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgaWYgKGtl
eVN0YXRlRXZlbnQtPmN0cmxLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlND
b250cm9sS2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2w7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKSkKLSAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAgICAgICBp
ZiAoa2V5U3RhdGVFdmVudC0+c2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdTaGlmdDsKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPm1ldGFLZXkoKSkK
LSAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgfQogI2Vsc2UKICAgICAvLyBObyBtb2RpZmllciBm
bGFncyBvbiBpT1MgcmlnaHQgbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggOTA3ODdkNjIwYjM4MWU1Mzhj
N2IxYWRkYzc2ZjJkMjljNTkzMjIwOS4uNzZiMmNkMmNiZjEwYjIwYTM5OTNjMmYzZjdiNzE5Y2Jl
N2E1ODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNTMsNiArNTMsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTUV4dGVuc2lvbnMuaD4K
ICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQu
aD4KIAogU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVG
cmFtZXdvcmtzLCBBKQpAQCAtMTkxLDEwICsxOTIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50OjphdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wgYXZhaWxhYmxlKQogCiBi
b29sIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpjYW5BdHRhY2goKQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250
cm9sbGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TRnVsbFNjcmVlbldpbmRvd01hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtbbV9mcm9udGVuZFdpbmRvd0NvbnRy
b2xsZXIgd2luZG93XSBzdHlsZU1hc2tdICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2NyZWVuKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gY2FuQXR0YWNoV2luZG93KCk7CkBA
IC00NjUsMTAgKzQ2Myw3IEBAIC0gKE5TV2luZG93ICopd2luZG93CiAgICAgaWYgKHdpbmRvdykK
ICAgICAgICAgcmV0dXJuIHdpbmRvdzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNUaXRsZWRXaW5kb3dNYXNrIHwgTlND
bG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TUmVzaXph
YmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2s7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNVSW50ZWdlciBzdHlsZU1hc2sgPSBOU1dpbmRv
d1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dpbmRvd1N0
eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUgfCBOU1dp
bmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXc7CiAgICAgd2luZG93ID0gW1tOU1dpbmRv
dyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIGluaXRpYWxXaW5k
b3dXaWR0aCwgaW5pdGlhbFdpbmRvd0hlaWdodCkgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0RGVsZWdh
dGU6c2VsZl07CiAgICAgW3dpbmRvdyBzZXRNaW5TaXplOk5TTWFrZVNpemUobWluaW11bVdpbmRv
d1dpZHRoLCBtaW5pbXVtV2luZG93SGVpZ2h0KV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4IDAyYTc1NmY3Njc3MzE1YzYy
MmRkODFkOTlhMjlmYWMzZmI1YmY5ZTIuLjY2N2IyYzVhNTQ0N2FhZTQ2YTVlNjA3YzU3NDE0NDAy
NzJiNDYyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJO
b2RlSGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJO
b2RlSGlnaGxpZ2h0Lm1tCkBAIC0zOSw2ICszOSw4IEBACiAjaW1wb3J0ICJXZWJWaWV3LmgiCiAj
aW1wb3J0IDxXZWJDb3JlL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0FLV2lu
ZG93Lmg+CisjZWxzZQorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05MSwxMCAr
OTMsNyBAQCAtIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5z
cGVjdG9yQ29udHJvbGxlcjooSW5zcGVjdG9yQ29udAogICAgIF9pbnNwZWN0b3JDb250cm9sbGVy
ID0gaW5zcGVjdG9yQ29udHJvbGxlcjsKIAogI2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaW50IHN0eWxlTWFzayA9IE5TQm9yZGVybGVz
c1dpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaW50IHN0eWxl
TWFzayA9IE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzczsKICAgICBOU1JlY3QgY29udGVudFJl
Y3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JGcmFtZVJlY3Q6W3NlbGYgX2NvbXB1dGVIaWdo
bGlnaHRXaW5kb3dGcmFtZV0gc3R5bGVNYXNrOnN0eWxlTWFza107CiAgICAgX2hpZ2hsaWdodFdp
bmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qg
c3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dOwogICAgIFtfaGlnaGxpZ2h0V2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBj
bGVhckNvbG9yXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCmlu
ZGV4IDVlYzE5Nzg1ZGE3Mjk3YjFhMjQ0YzU3NjMyMDcwYzRiZGU5NDZiMDUuLjViODY3MTU0MGU2
ZjhhMTIzMWVjZTFmNTQ5NDRiMTU4ODkzNzRiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC04Myw2ICs4Myw3IEBACiAjZWxzZQogI2ltcG9ydCAiV2Vi
TlNQYXN0ZWJvYXJkRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJOU1dpbmRvd0V4dHJhcy5oIgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjZW5kaWYK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05MTUsOSArOTE2LDcgQEAgLSAodm9pZClr
ZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgQk9PTCBjYWxsU3VwZXIgPSBZRVM7CiAgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIEJPT0wgbWFpbnRhaW5z
QmFja0ZvcndhcmRMaXN0ID0gY29yZUZyYW1lICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlz
dCo+KGNvcmVGcmFtZS0+cGFnZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+ZW5hYmxlZCgp
ID8gWUVTIDogTk87Ci0gICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisK
ICAgICBjb3VudCA9IFtjaGFyYWN0ZXJzIGxlbmd0aF07CiAgICAgZm9yIChpbmRleCA9IDA7IGlu
ZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgc3dpdGNoIChbY2hhcmFjdGVycyBjaGFy
YWN0ZXJBdEluZGV4OmluZGV4XSkgewpAQCAtOTI4LDcgKzkyNyw3IEBAIC0gKHZvaWQpa2V5RG93
bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAv
LyBUaGlzIG9kZCBiZWhhdmlvciBtYXRjaGVzIHNvbWUgZXhpc3RpbmcgYnJvd3NlcnMsCiAgICAg
ICAgICAgICAgICAgLy8gaW5jbHVkaW5nIFdpbmRvd3MgSUUKLSAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpIHsKICAgICAgICAgICAgICAg
ICAgICAgW3NlbGYgX2dvRm9yd2FyZF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgX2dvQmFja107CkBAIC05NDMsNyArOTQyLDcgQEAgLSAodm9p
ZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBl
ciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spIHsKKyAg
ICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlm
dCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdl
RG93bjpuaWxdOwpAQCAtOTg0LDcgKzk4Myw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRl
ZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2Uu
Ci0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBO
U0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYg
KE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkg
ewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTk5OCw5ICs5OTcsOSBAQCAtICh2b2lk
KWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBb
c2VsZiBzY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VVcDpuaWxdOwogICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbExp
bmVVcDpuaWxdOwpAQCAtMTAwOSw3ICsxMDA4LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVu
dCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TRG93
bkFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNo
aWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hh
bmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNr
IHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC0xMDIzLDkgKzEwMjIsOSBAQCAt
ICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAg
ICAgICBbc2VsZiBzY3JvbGxUb0VuZE9mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VEb3duOm5pbF07CiAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xs
TGluZURvd246bmlsXTsKQEAgLTEwMzQsMTIgKzEwMzMsMTIgQEAgLSAodm9pZClrZXlEb3duOihX
ZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IE5TTGVmdEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFu
ZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZl
IGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRL
ZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFn
Q29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
Ly8gQ2hlY2sgYmFjay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAo
bW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICghbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKQEAgLTEwNTIsNyArMTA1MSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVu
dAogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5
TWFzaykgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRN
b2RpZmllckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdl
SG9yaXpvbnRhbGx5OllFU107CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBbc2VsZiBfc2Nyb2xsTGluZUhvcml6b250YWxseTpZRVNdOwpAQCAt
MTA2MiwxMiArMTA2MSwxMiBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNSaWdodEFycm93RnVuY3Rp
b25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29u
dHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgotICAgICAg
ICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlNDb250cm9s
S2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU0V2ZW50
TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgYmFjay9mb3J3
YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
Q29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbWFp
bnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsU3Vw
ZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEwODAsNyArMTA3
OSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
ICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAg
ICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24p
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdlSG9yaXpvbnRhbGx5Ok5PXTsK
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtz
ZWxmIF9zY3JvbGxMaW5lSG9yaXpvbnRhbGx5Ok5PXTsKQEAgLTEwOTAsNyArMTA4OSw2IEBAIC0g
KHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIGlmIChj
YWxsU3VwZXIpIHsKICAgICAgICAgW3N1cGVyIGtleURvd246ZXZlbnRdOwogICAgIH0gZWxzZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250
cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJv
bGxlci5tbQppbmRleCA5ZmQ5NTY2MTdmMDdjNmNmNmY0ODU3Y2M5ZTIyMTQwYjIxODhiMmU0Li5m
NTQzNDFmZGJiNGU0ZDNjZWQ5ZGVkMTYzZjE4NDMyYjA0NmQ5YjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTQ3
LDYgKzQ3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViV2luZG93QW5pbWF0aW9uLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtODYsMTEgKzg3LDggQEAgQGltcGxlbWVudGF0
aW9uIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyCiAjcHJhZ21hIG1hcmsgSW5pdGlhbGl6YXRpb24K
IC0gKGlkKWluaXQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAv
LyBEbyBub3QgZGVmZXIgd2luZG93IGNyZWF0aW9uLCB0byBtYWtlIHN1cmUgLXdpbmRvd051bWJl
ciBpcyBjcmVhdGVkIChuZWVkZWQgYnkgV2ViV2luZG93U2NhbGVBbmltYXRpb24pLgotICAgIE5T
V2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TQ2xvc2FibGVXaW5kb3dNYXNrIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZUZ1bGxTY3JlZW5X
aW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6TlNX
aW5kb3dTdHlsZU1hc2tDbG9zYWJsZSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6Tk9dOwogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsKICAgICBb
d2luZG93IHJlbGVhc2VdOwogICAgIGlmICghc2VsZikKQEAgLTQ2MiwxMCArNDYwLDcgQEAgLSAo
dm9pZClfc3dhcFZpZXc6KE5TVmlldyopdmlldyB3aXRoOihOU1ZpZXcqKW90aGVyVmlldwogCiBz
dGF0aWMgUmV0YWluUHRyPE5TV2luZG93PiBjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRv
dyhOU1JlY3QgZnJhbWUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6ZnJhbWUgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6
TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW3dpbmRvdyBzZXRPcGFxdWU6
WUVTXTsKICAgICBbd2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbTlNDb2xvciBibGFja0NvbG9y
XV07CiAgICAgW3dpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNTVmMWFlMmQ0NThmNTYxMzk1ZmMzMjZh
YWNiYzYwZjRkYjMyMTNjNC4uMDg0ZmU0NTU3ZTdhYjg1MzQzN2FjYzUxZTllMjc4N2FmZmE1MGMx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xNDAsMTIg
KzE0MCwxMyBAQAogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIAogI2lmICFQTEFURk9STShJT1Mp
CisjaW1wb3J0ICJXZWJOU0V2ZW50RXh0cmFzLmgiCisjaW1wb3J0ICJXZWJOU1Bhc3RlYm9hcmRF
eHRyYXMuaCIKICNpbXBvcnQgPEFwcEtpdC9OU0FjY2Vzc2liaWxpdHkuaD4KICNpbXBvcnQgPEFw
cGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9OU01lbnVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMu
aD4KLSNpbXBvcnQgIldlYk5TRXZlbnRFeHRyYXMuaCIKLSNpbXBvcnQgIldlYk5TUGFzdGVib2Fy
ZEV4dHJhcy5oIgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAjZW5kaWYKIAogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CkBAIC0x
MzUxLDEyICsxMzUyLDkgQEAgLSAodm9pZClfcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJk
OihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkCiAKIC0gKHZvaWQpX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6KE5TRXZlbnQgKilmbGFnc0NoYW5nZWRFdmVudAog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246
ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVh
bQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1v
dXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQogICAgICAgICBtb2RpZmllckZsYWdzOmZs
YWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1wOmZsYWdzQ2hhbmdlZEV2ZW50
LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93TnVtYmVyCiAg
ICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3Vy
ZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbc2VsZiBtb3VzZU1vdmVk
OmZha2VFdmVudF07CiB9CiAKQEAgLTE1MDYsMTAgKzE1MDQsNyBAQCAtICh2b2lkKV9zZXRNb3Vz
ZURvd25FdmVudDooV2ViRXZlbnQgKilldmVudAogI2VuZGlmCiB7CiAjaWYgIVBMQVRGT1JNKElP
UykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoIWV2ZW50
IHx8IFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5T
UmlnaHRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TT3RoZXJNb3VzZURvd24pOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVPdGhlck1v
dXNlRG93bik7CiAjZWxzZQogICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9PSBXZWJF
dmVudE1vdXNlRG93bik7CiAjZW5kaWYKQEAgLTE2NjEsMTYgKzE2NTYsMTcgQEAgLSAoaWQpX2Jy
aWRnZQogCiAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50CiB7CisgICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TW91c2VNb3ZlZAorICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQogI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKLSAgICAgICAgbG9jYXRpb246W1tzZWxm
IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAg
ICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1
cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGlt
ZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dOdW1iZXI6W1tzZWxm
IHdpbmRvd10gd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAg
ZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAKICAgICBbc2VsZiBfdXBkYXRlTW91c2VvdmVyV2l0aEV2ZW50OmZha2VF
dmVudF07CiB9CkBAIC0xODY4LDExICsxODY0LDggQEAgLSAoQk9PTClfaW5zaWRlQW5vdGhlckhU
TUxWaWV3CiAjaWYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBCT09MIGlzUXVpY2tMb29rRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgY29uc3QgaW50IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJlbGVh
c2VkID0gOTsKLSAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TU3lzdGVtRGVmaW5lZCAmJiBb
ZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9u
UmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVN5c3RlbURl
ZmluZWQgJiYgW2V2ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlD
b21iaW5hdGlvblJlbGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0gJ2xrdXAnOwogfQogI2VuZGlm
CiAKQEAgLTE5MjgsMTQgKzE5MjEsMTEgQEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClw
b2ludAogICAgIGVsc2UgewogICAgICAgICAvLyBGSVhNRTogV2h5IGRvZXNuJ3QgdGhpcyBpbmNs
dWRlIG1vdXNlIGVudGVyZWQvZXhpdGVkIGV2ZW50cywgb3Igb3RoZXIgbW91c2UgYnV0dG9uIGV2
ZW50cz8KICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbW3NlbGYgd2luZG93XSBjdXJyZW50RXZl
bnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXB0dXJl
SGl0c09uU3Vidmlld3MgPSAhKFtldmVudCB0eXBlXSA9PSBOU01vdXNlTW92ZWQKLSAgICAgICAg
ICAgIHx8IFtldmVudCB0eXBlXSA9PSBOU1JpZ2h0TW91c2VEb3duCi0gICAgICAgICAgICB8fCAo
W2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNDb250cm9sS2V5TWFzaykgIT0gMCkKLSAgICAgICAgICAgIHx8IFtldmVudCB0eXBlXSA9
PSBOU0ZsYWdzQ2hhbmdlZAorICAgICAgICBjYXB0dXJlSGl0c09uU3Vidmlld3MgPSAhKFtldmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgIHx8IFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCisgICAgICAgICAgICB8fCAoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiBbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKKyAgICAgICAgICAgIHx8IFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZAogICAgICAgICAgICAgfHwgaXNRdWlja0xv
b2tFdmVudChldmVudCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAog
ICAgIGlmICghY2FwdHVyZUhpdHNPblN1YnZpZXdzKSB7CkBAIC0yMDIzLDkgKzIwMTMsNyBAQCAt
ICh2b2lkKV9yZW1vdmVUcmFja2luZ1JlY3RzOihOU1RyYWNraW5nUmVjdFRhZyAqKXRhZ3MgY291
bnQ6KGludCljb3VudAogLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogewogICAgIC8v
IE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJE
YXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZh
a2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUV4aXRlZAor
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVNb3VzZUV4aXRlZAogICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAw
KQogICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTIwMzQs
MTYgKzIwMjIsMTMgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAogICAgICAgICBl
dmVudE51bWJlcjowCiAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAg
ICAgICAgIHVzZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW19wcml2YXRlLT50cmFja2luZ1JlY3RPd25lciBt
b3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQogCiAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRW50
ZXJlZAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8vIE5vdGhp
bmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4
aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVkCiAgICAgICAgIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1l
c3RhbXA6MApAQCAtMjA1Myw3ICsyMDM4LDYgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUVu
dGVyZWQKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAg
dXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJEYXRhXTsKICAgICBbX3ByaXZhdGUt
PnRyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogfQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKQEAgLTIwODks
MjEgKzIwNzMsMTggQEAgLSAoTlNTdHJpbmcgKil2aWV3OihOU1ZpZXcgKil2aWV3IHN0cmluZ0Zv
clRvb2xUaXA6KE5TVG9vbFRpcFRhZyl0YWcgcG9pbnQ6KE5TUG8KIHN0YXRpYyBib29sIG1vdXNl
RXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIH0KIApAQCAtMjEzNCwx
NiArMjExNSwxNCBAQCAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRoRXZlbnQ6KE5TRXZlbnQg
KilldmVudAogICAgICAgICBmbG9hdCB5U2Nyb2xsID0gdmlzaWJsZVJlY3Qub3JpZ2luLnk7CiAg
ICAgICAgIGZsb2F0IHhTY3JvbGwgPSB2aXNpYmxlUmVjdC5vcmlnaW4ueDsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKKyAgICAgICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAg
ICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgtMSAtIHhTY3JvbGwsIC0xIC0geVNjcm9s
bCkKICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlm
aWVyRmxhZ3NdCiAgICAgICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5j
ZVJlZmVyZW5jZURhdGVdCiAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10g
d2luZG93TnVtYmVyXQogICAgICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgICAgICBl
dmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKwogICAgICAgICBpZiAoRnJhbWUqIGxhc3RIaXRDb3JlRnJhbWUgPSBjb3Jl
KFtsYXN0SGl0VmlldyBfZnJhbWVdKSkKICAgICAgICAgICAgIGxhc3RIaXRDb3JlRnJhbWUtPmV2
ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoZXZlbnQsIFtbc2VsZiBfd2ViVmlld10gX3ByZXNzdXJl
RXZlbnRdKTsKICAgICB9CkBAIC0yMzMwLDE2ICsyMzA5LDE4IEBAIC0gKHZvaWQpX2F1dG9zY3Jv
bGwKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQK
KyAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNMZWZ0TW91c2VEcmFnZ2VkCi0gICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5k
b3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAgICAg
IGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50
RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRl
cnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5k
b3ddIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorCiAgICAgW3NlbGYgbW91c2VEcmFnZ2VkOmZha2VFdmVudF07CiAjZW5kaWYKIH0K
QEAgLTMzNTQsMTIgKzMzMzUsOSBAQCAtIChCT09MKWFjY2VwdHNGaXJzdFJlc3BvbmRlcgogICAg
IC8vIG9yIGZyb20gY2FsbHMgYmFjayBmcm9tIFdlYkNvcmUgb25jZSB3ZSBiZWdpbiBtb3VzZS1k
b3duIGV2ZW50IGhhbmRsaW5nLgogI2lmICFQTEFURk9STShJT1MpICAgICAgICAgICAgCiAgICAg
TlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93
bgorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duCiAgICAg
ICAgICAgICAmJiAhX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3duRXZlbnQKICAgICAgICAgICAg
ICYmIE5TUG9pbnRJblJlY3QoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbc2VsZiBjb252ZXJ0
UmVjdDpbc2VsZiB2aXNpYmxlUmVjdF0gdG9WaWV3Om5pbF0pKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgICAgIHJldHVybiBOTzsKICAgICB9CiAjZWxzZQpAQCAtMzUyOCwx
MyArMzUwNiwxMCBAQCAtICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKIAogI2lmICFQTEFURk9S
TShJT1MpCiAgICAgICAgIGlmICghX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgX3ByaXZh
dGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZv
ckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1hc2sgaGFuZGxlcjpeKE5TRXZlbnQg
KmZsYWdzQ2hhbmdlZEV2ZW50KSB7CisgICAgICAgICAgICBfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2Vk
RXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdN
YXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6XihOU0V2ZW50ICpmbGFnc0NoYW5n
ZWRFdmVudCkgewogICAgICAgICAgICAgICAgIFtzZWxmIF9wb3N0RmFrZU1vdXNlTW92ZWRFdmVu
dEZvckZsYWdzQ2hhbmdlZEV2ZW50OmZsYWdzQ2hhbmdlZEV2ZW50XTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CiAgICAgICAgICAgICB9XTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIFtOU0V2
ZW50IHJlbW92ZU1vbml0b3I6X3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcl07CkBA
IC00NTQwLDExICs0NTE1LDEyIEBAIC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAqKWV2ZW50
CiAgICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBbTlNJbnB1dE1hbmFn
ZXIgY3VycmVudElucHV0TWFuYWdlcl07CiAKICAgICBpZiAoIVtjdXJyZW50SW5wdXRNYW5hZ2Vy
IHdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gfHwgIVtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRs
ZU1vdXNlRXZlbnQ6ZXZlbnRdKSB7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
ICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5P
IG1vdmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUgd2ViIHBhZ2UgaGFuZGxlcyB0aGUg
Y29udGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6IHJldHVybnMgbmlsLCB3ZSdsbCBn
ZXQgY29udHJvbCBjbGljayBldmVudHMgaGVyZS4KICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0
byBwYXNzIHRoZW0gYWxvbmcgdG8gS0hUTUwgYSBzZWNvbmQgdGltZS4KLSAgICAgICAgaWYgKCEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgaWYg
KCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7
CiAgICAgICAgICAgICBfcHJpdmF0ZS0+aWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMgPSBOTzsK
IAogICAgICAgICAgICAgLy8gTGV0IFdlYkNvcmUgZ2V0IGEgY2hhbmNlIHRvIGRlYWwgd2l0aCB0
aGUgZXZlbnQuIFRoaXMgd2lsbCBjYWxsIGJhY2sgdG8gdXMKQEAgLTQ1NTMsNyArNDUyOSw2IEBA
IC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgY29y
ZWZyYW1lLT5ldmVudEhhbmRsZXIoKS5tb3VzZURvd24oZXZlbnQsIFtbc2VsZiBfd2ViVmlld10g
X3ByZXNzdXJlRXZlbnRdKTsKICAgICAgICAgfQogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICNlbmRpZgogCiAgICAgX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VEb3duRXZlbnQg
PSBOTzsKQEAgLTQ4MTgsMTkgKzQ3OTMsMTIgQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRF
dmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlEb3duOiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0KKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogewogICAgICAgICBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1FdmVudCA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBwbGF0Zm9ybUV2
ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsK
ICAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwbGF0Zm9ybUV2ZW50LCBjb3Jl
RnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5VXA6Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgogICAgICAgICByZXR1cm4g
S2V5Ym9hcmRFdmVudDo6Y3JlYXRlKFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9y
bUtleWJvYXJkRXZlbnQoZXZlbnQpLCBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAwOwpAQCAtNTUyNCwxMSArNTQ5Miw4
IEBAIC0gKEJPT0wpX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50CiAg
ICAgaWYgKCFbc2VsZiBfY2FuRWRpdF0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykgIT0gTlNDb21tYW5k
S2V5TWFzaykKKyAgICBpZiAoKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykgIT0gTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bW1hbmQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IAogICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAgICAgaWYgKFtz
dHJpbmcgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAImIiXSA9PSBOU09yZGVyZWRTYW1lKSB7CkBA
IC02NDQ4LDE0ICs2NDEzLDExIEBAIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihLZXlib2Fy
ZEV2ZW50KilldmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdDb21tCiAgICAgICAgIHJl
dHVybiBOTzsKIAogICAgIE5TRXZlbnQgKm1hY0V2ZW50ID0gcGxhdGZvcm1FdmVudC0+bWFjRXZl
bnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW21hY0V2
ZW50IHR5cGVdID09IE5TS2V5RG93biAmJiBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVy
IGZpbHRlcktleURvd246bWFjRXZlbnRdKQorICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNF
dmVudFR5cGVLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZmlsdGVy
S2V5RG93bjptYWNFdmVudF0pCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgCi0gICAgaWYgKFtt
YWNFdmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKKyAgICBpZiAoW21hY0V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgCiAgICAgcGFyYW1ldGVycy5ldmVudCA9IGV2ZW50
OwogICAgIF9wcml2YXRlLT5pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzID0gJnBhcmFtZXRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggNzhmNTZlNDkx
ZTA4NmFhZTk4M2IzODA2OTlhNTUxNTdjZDk4ZmRiYS4uOTYwYzYzNzlkMWFjZTYwMDdiZTEyMDUy
YWUyODQ3NDczNTQ3ZDg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5t
bQpAQCAtNjUsNiArNjUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJOU0F0dHJpYnV0ZWRTdHJp
bmdFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvQ3Vy
cmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPEFwcGxpY2F0
aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlc1ByaXYuaD4KQEAgLTMyMSwxMCArMzIyLDcg
QEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClwb2ludAogICAgIC8vIE92ZXJyaWRlIGhp
dFRlc3Qgc28gd2UgY2FuIG92ZXJyaWRlIG1lbnVGb3JFdmVudC4KICAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAgIE5TRXZlbnRUeXBlIHR5cGUgPSBbZXZlbnQg
dHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHR5cGUg
PT0gTlNSaWdodE1vdXNlRG93biB8fCAodHlwZSA9PSBOU0xlZnRNb3VzZURvd24gJiYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spKSkKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAodHlwZSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8
ICh0eXBlID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSkKICAgICAgICAgcmV0dXJuIHNlbGY7
CiAKICAgICByZXR1cm4gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOwpAQCAtMTAwOSwzOSArMTAwNywz
MyBAQCAtICh2b2lkKVBERlZpZXdXaWxsQ2xpY2tPbkxpbms6KFBERlZpZXcgKilzZW5kZXIgd2l0
aFVSTDooTlNVUkwgKilVUkwKICAgICBpbnQgYnV0dG9uID0gbm9CdXR0b247CiAgICAgUmVmUHRy
PEV2ZW50PiBldmVudDsKICAgICBzd2l0Y2ggKFtuc0V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAg
ICAgICAgICAgIGJ1dHRvbiA9IDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBO
U1JpZ2h0TW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IDE7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIGJ1dHRvbiA9IFtu
c0V2ZW50IGJ1dHRvbk51bWJlcl07Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBO
U0tleURvd246IHsKLSAgICAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRm
b3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7Ci0g
ICAgICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3
S2V5RG93bik7Ci0gICAgICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwg
MCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgICAgICBidXR0b24gPSAwOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgICAgICBidXR0b24gPSAx
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAg
ICAgICBidXR0b24gPSBbbnNFdmVudCBidXR0b25OdW1iZXJdOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlS2V5RG93bjogeworICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQgcGUgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50
KG5zRXZlbnQpOworICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1F
dmVudDo6UmF3S2V5RG93bik7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRl
KHBlLCAwKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7CiAgICAgICAgIGV2ZW50
ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVl
LCBjdXJyZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrLAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29udHJvbCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ09wdGlvbiwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0LAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCwKICAgICAgICAgICAgIGJ1dHRv
biwgMCwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCAwLCAwLCB0cnVlKTsKICAgICB9CiAKQEAgLTEx
NDksOSArMTE0MSw3IEBAIC0gKE5TRXZlbnQgKilfZmFrZUtleUV2ZW50V2l0aEZ1bmN0aW9uS2V5
Oih1bmljaGFyKWZ1bmN0aW9uS2V5CiAgICAgLy8gRklYTUUgNDQwMDQ4MDogd2hlbiBQREZWaWV3
IGltcGxlbWVudHMgdGhlIHN0YW5kYXJkIHNjcm9sbGluZyBzZWxlY3RvcnMgdGhhdCB0aGlzCiAg
ICAgLy8gbWV0aG9kIGlzIHVzZWQgdG8gbWltaWMsIHdlIGNhbiBlbGltaW5hdGUgdGhpcyBtZXRo
b2QgYW5kIGNhbGwgdGhlbSBkaXJlY3RseS4KICAgICBOU1N0cmluZyAqa2V5QXNTdHJpbmcgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmZ1bmN0aW9uS2V5IGxlbmd0aDoxXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleURvd24KKyAgICByZXR1cm4gW05TRXZlbnQga2V5RXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh
dGlvbjpOU1plcm9Qb2ludAogICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0xMTYxLDcgKzExNTEs
NiBAQCAtIChOU0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhGdW5jdGlvbktleToodW5pY2hhcilm
dW5jdGlvbktleQogICAgICAgICAgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmtleUFzU3Ry
aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FSZXBlYXQ6Tk8KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga2V5Q29kZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIH0KIAogLSAodm9pZClfbG9va1VwSW5EaWN0aW9uYXJ5RnJvbU1lbnU6KGlkKXNlbmRlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNv
bnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbQppbmRleCA0MzgyYjA0NDc0ZTYwYzhjMjM3MzMwNDdiODEzOTY0YTRmNzg0
MjYzLi43YjllNWRiY2Y0OGMyMTZiNmM1NjYzMTBjMTc0ZTQzMTJjNTYyOGU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJv
bGxlci5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5oIgog
I2ltcG9ydCAiV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2Ug
TlNXaW5kb3cgKFdlYk5TV2luZG93RGV0YWlscykKIC0gKHZvaWQpX3NldEZvcmNlQWN0aXZlQ29u
dHJvbHM6KEJPT0wpZmxhZzsKQEAgLTExMiwxMCArMTEzLDcgQEAgLSAodm9pZClfYnVpbGRVSQog
ICAgIFtzY3JvbGxWaWV3IHNldERvY3VtZW50VmlldzpfdGFibGVWaWV3XTsKICAgICBbX3RhYmxl
VmlldyByZWxlYXNlXTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBfcG9wdXBXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
OnNjcm9sbEZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgX3BvcHVwV2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW19wb3B1cFdpbmRv
dyBzZXRBbHBoYVZhbHVlOjAuODhmXTsKICAgICBbX3BvcHVwV2luZG93IHNldENvbnRlbnRWaWV3
OnNjcm9sbFZpZXddOwogICAgIFtzY3JvbGxWaWV3IHJlbGVhc2VdOwpAQCAtMTU1LDggKzE1Myw4
IEBAIC0gKHZvaWQpX3BsYWNlUG9wdXBXaW5kb3c6KE5TUG9pbnQpdG9wTGVmdAogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1Nj
cm9sbFZpZXcgZnJhbWVTaXplRm9yQ29udGVudFNpemU6TlNNYWtlU2l6ZShtYXhXaWR0aCwgMTAw
LjBmKSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9y
ZGVyVHlwZTpOU05vQm9yZGVyXS53aWR0aCk7Ci0gICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05T
V2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4
V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2tdLnNpemUud2lk
dGgpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBtYXhXaWR0aCA9IGNl
aWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAu
MGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3NdLnNpemUud2lkdGgpOwogICAgICAgICBtYXhXaWR0aCArPSA1LjBmOwogICAgICAgICB3aW5k
b3dGcmFtZS5zaXplLndpZHRoID0gc3RkOjptYXgobWF4V2lkdGgsIHdpbmRvd0ZyYW1lLnNpemUu
d2lkdGgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3Y2Zh
YTg3YjU1NmViNDc2YmYzYzVmZWQ1ZTAzZTY4ZmJhMmRlNGJmLi43ODdlNzE2YTZiNGJjYTM0ZDc0
N2UwMjUyZDYzMjYwZTU2OTE3OWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC0yMzAsNiArMjMwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2Vsc2UKICNpbXBvcnQgIk1lbW9yeU1lYXN1
cmUuaCIKICNpbXBvcnQgIldlYkNhcmV0Q2hhbmdlTGlzdGVuZXIuaCIKQEAgLTYwOTUsMTAgKzYw
OTYsNyBAQCAtIChEcmFnQXBwbGljYXRpb25GbGFncylhcHBsaWNhdGlvbkZsYWdzOihpZCA8TlNE
cmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRp
b25IYXNBdHRhY2hlZFNoZWV0OwogICAgIGlmIChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNl
XSA9PSBzZWxmKQogICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1tOU0FwcCBjdXJyZW50
RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJG
bGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBmbGFncyB8PSBEcmFn
QXBwbGljYXRpb25Jc0NvcHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEcmFnQXBw
bGljYXRpb25GbGFncz4oZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0No
aWxkUHJvY2Vzc01hYy5tbQppbmRleCAyZTY1ODA2ZGI1ZDY4ZjBhNGEyODJkMzgzYjk2ZTdiNDUx
NmI5MDQwLi5iMGM1NTRkNGRhNjIzZDk5YjAxNDM1ODY3YjIwNzcyNWI4Njc0NTM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtMzksNiArMzks
NyBAQAogI2ltcG9ydCA8cHdkLmg+CiAjaW1wb3J0IDxzdGRsaWIuaD4KICNpbXBvcnQgPHN5c2V4
aXRzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KIAogI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCkBAIC0xOTcsMTAgKzE5OCw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjpz
dG9wTlNBcHBSdW5Mb29wKCkKICAgICBBU1NFUlQoW05TQXBwIGlzUnVubmluZ10pOwogICAgIFtO
U0FwcCBzdG9wOm5pbF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0
aW9uRGVmaW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGlt
ZXN0YW1wOjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBk
YXRhMjowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVm
aW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAgZGF0YTE6MCBkYXRhMjow
XTsKICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07CiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggYTg1
ZWZjYWVlOWE1MmQ4YzA0NTY2NmQ5NGM0OTE4NzBjYTY4YTdkMy4uOWY1M2Y2OGNkMzE4MjNiZDE0
NGYzMTRlYTYwOGE4NTdhODVlZThmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2Ny
b2xsYmFyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CiAjaW1w
b3J0IDx3dGYvQVNDSUlDVHlwZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmls
aXR5RGVjbGFyYXRpb25zLmg+CiAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02Myw3
OCArNjQsNjkgQEAgc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBjdXJyZW50TW91c2VCdXR0
b24oKQogCiBzdGF0aWMgV2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNlQnV0dG9uRm9yRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURy
YWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVw
OgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
V2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93
bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRv
bjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOworICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdl
Yk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNl
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Ok1p
ZGRsZUJ1dHRvbjsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKQotICAgICAgICBjYXNlIE5TRXZlbnRU
eXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0gICAg
ICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAg
ICAgICAgICAgIHJldHVybiBjdXJyZW50TW91c2VCdXR0b24oKTsKLSAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoK
KyAgICAgICAgcmV0dXJuIGN1cnJlbnRNb3VzZUJ1dHRvbigpOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKICAgICB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBXZWJFdmVudDo6VHlwZSBtb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0
TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNl
IE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwotICAgICAgICBjYXNlIE5T
TGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNl
RG93bjsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgcmV0dXJu
IFdlYkV2ZW50OjpNb3VzZVVwOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJu
IFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdn
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICAgICAg
cmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VVcDoKKyAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZVVwOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOwogICAgIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KIAogc3RhdGljIGludCBjbGlja0NvdW50Rm9y
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2Fz
ZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBb
ZXZlbnQgY2xpY2tDb3VudF07Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4g
MDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAg
IGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICAg
ICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50XTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gMDsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBO
U1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC0xNDMsMjIgKzEz
NSwxOSBAQCBzdGF0aWMgTlNQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50
KQogI2lmIGRlZmluZWQoX19MUDY0X18pCiAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgog
I2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0xl
ZnRNb3VzZURvd246Ci0gICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU0xl
ZnRNb3VzZVVwOgotICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgY2FzZSBOU01vdXNlRXhp
dGVkOgotICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoK
LSAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VVcDoK
LSAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2Vk
OgotICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91
c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBO
U0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURy
YWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Omdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRv
d10pOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBOU1plcm9Qb2ludDsKQEAgLTE3MSwy
MiArMTYwLDE5IEBAIHN0YXRpYyBOU1BvaW50IHBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQs
IE5TVmlldyAqd2luZG93VmlldykKICNpZiBkZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFn
Z2VkOgotICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgot
ICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNl
IE5TT3RoZXJNb3VzZURvd246Ci0gICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNh
c2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2Ug
TlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2Ug
TlNTY3JvbGxXaGVlbDogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGNhc2Ug
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVl
bDogewogICAgICAgICAvLyBOb3RlOiBUaGlzIHdpbGwgaGF2ZSBpdHMgb3JpZ2luIGF0IHRoZSBi
b3R0b20gbGVmdCBvZiB0aGUgd2luZG93IHVubGVzcyB3aW5kb3dWaWV3IGlzIGZsaXBwZWQuCiAg
ICAgICAgIC8vIEluIHRob3NlIGNhc2VzLCB0aGUgWSBjb29yZGluYXRlIGdldHMgZmxpcHBlZCBi
eSBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdy4KICAgICAgICAgTlNQb2ludCBs
b2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKQEAgLTI0MCwxMCArMjI2LDcgQEAg
c3RhdGljIGlubGluZSBTdHJpbmcgdGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCBy
ZXBsYWNlc1NvZnRTcGFjZSkKIHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdz
Q2hhbmdlZCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmlu
ZyhbZXZlbnQgY2hhcmFjdGVyc10pOwogfQpAQCAtMjUyLDEwICsyMzUsNyBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyB1bm1vZGlmaWVkVGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCBy
ZXBsYWNlc1NvZnRTcAogewogICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKICAgICAgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFu
Z2VkKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAgICByZXR1cm4gU3RyaW5nKFtl
dmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdKTsKIH0KQEAgLTI2NCw3NCArMjQ0LDY4
IEBAIHN0YXRpYyBib29sIGlzS2V5cGFkRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgLy8g
Q2hlY2sgdGhhdCB0aGlzIGlzIHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgaGFzIGEga2V5Q29kZS4K
ICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgICAgICBjYXNlIE5TS2V5RG93bjoKLSAgICAgICAgY2FzZSBOU0tleVVwOgot
ICAgICAgICBjYXNlIE5TRmxhZ3NDaGFuZ2VkOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246CisgICAgY2FzZSBOU0V2ZW50
VHlwZUtleVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQ6CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBz
d2l0Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBjYXNlIDcxOiAvLyBDbGVhcgotICAg
ICAgICBjYXNlIDgxOiAvLyA9Ci0gICAgICAgIGNhc2UgNzU6IC8vIC8KLSAgICAgICAgY2FzZSA2
NzogLy8gKgotICAgICAgICBjYXNlIDc4OiAvLyAtCi0gICAgICAgIGNhc2UgNjk6IC8vICsKLSAg
ICAgICAgY2FzZSA3NjogLy8gRW50ZXIKLSAgICAgICAgY2FzZSA2NTogLy8gLgotICAgICAgICBj
YXNlIDgyOiAvLyAwCi0gICAgICAgIGNhc2UgODM6IC8vIDEKLSAgICAgICAgY2FzZSA4NDogLy8g
MgotICAgICAgICBjYXNlIDg1OiAvLyAzCi0gICAgICAgIGNhc2UgODY6IC8vIDQKLSAgICAgICAg
Y2FzZSA4NzogLy8gNQotICAgICAgICBjYXNlIDg4OiAvLyA2Ci0gICAgICAgIGNhc2UgODk6IC8v
IDcKLSAgICAgICAgY2FzZSA5MTogLy8gOAotICAgICAgICBjYXNlIDkyOiAvLyA5Ci0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgfQorICAgIGNhc2UgNzE6IC8vIENsZWFyCisgICAgY2Fz
ZSA4MTogLy8gPQorICAgIGNhc2UgNzU6IC8vIC8KKyAgICBjYXNlIDY3OiAvLyAqCisgICAgY2Fz
ZSA3ODogLy8gLQorICAgIGNhc2UgNjk6IC8vICsKKyAgICBjYXNlIDc2OiAvLyBFbnRlcgorICAg
IGNhc2UgNjU6IC8vIC4KKyAgICBjYXNlIDgyOiAvLyAwCisgICAgY2FzZSA4MzogLy8gMQorICAg
IGNhc2UgODQ6IC8vIDIKKyAgICBjYXNlIDg1OiAvLyAzCisgICAgY2FzZSA4NjogLy8gNAorICAg
IGNhc2UgODc6IC8vIDUKKyAgICBjYXNlIDg4OiAvLyA2CisgICAgY2FzZSA4OTogLy8gNworICAg
IGNhc2UgOTE6IC8vIDgKKyAgICBjYXNlIDkyOiAvLyA5CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KICAgICAgCiAgICAgIHJldHVybiBmYWxzZTsKIH0KIAogc3RhdGljIGlubGluZSBib29s
IGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAg
ICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBl
XSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBl
XSA9PSBOU0V2ZW50VHlwZUtleVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlm
IHRoZSB1c2VyIHByZXNzZXMgYm90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgog
ICAgIC8vIHdlIHRyZWF0IHJlbGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3
aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1h
bmQKLSAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4g
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAg
ICAgICAgIAotICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6
IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6
IC8vIExlZnQgQWx0Ci0gICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAg
cmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7
Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNh
c2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDYzOiAvLyBGdW5jdGlvbgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0Z1bmN0aW9uS2V5TWFzaykgPT0gMDsKKyAgICBjYXNlIDU0OiAvLyBSaWdodCBD
b21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAgIHJldHVybiAhKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKTsKKworICAg
IGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBjYXNlIDU2OiAvLyBM
ZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAgICAgcmV0dXJuICEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KTsKKworICAg
IGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0CisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2MjogLy8gUmlnaHQg
Q3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgorICAgICAgICBy
ZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b24pOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKQEAgLTMzOSw3ICszMTMsNiBAQCBzdGF0aWMgaW5saW5lIFdlYkV2ZW50OjpNb2Rp
ZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgdW5zaWduZWQg
bW9kaWZpZXJzID0gMDsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMjAwCiAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZs
YWdDYXBzTG9jaykKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpDYXBzTG9ja0tleTsK
ICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0
KQpAQCAtMzUwLDE4ICszMjMsNiBAQCBzdGF0aWMgaW5saW5lIFdlYkV2ZW50OjpNb2RpZmllcnMg
bW9kaWZpZXJzRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBX
ZWJFdmVudDo6QWx0S2V5OwogICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29tbWFuZCkKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRh
S2V5OwotI2Vsc2UKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBoYVNoaWZ0
S2V5TWFzaykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpDYXBzTG9ja0tleTsKLSAg
ICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1hc2spCi0gICAgICAgIG1v
ZGlmaWVycyB8PSBXZWJFdmVudDo6U2hpZnRLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29udHJvbEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6
Q29udHJvbEtleTsKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkFsdEtleTsKLSAgICBpZiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykKLSAgICAgICAgbW9kaWZp
ZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5OwotI2VuZGlmCiAKICAgICByZXR1cm4gKFdlYkV2ZW50
OjpNb2RpZmllcnMpbW9kaWZpZXJzOwogfQpAQCAtNDg0LDEwICs0NDUsNyBAQCBXZWJLZXlib2Fy
ZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpl
dmVudCwgYm9vbCBoYQogICAgIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUgICAgICAgPSB3aW5k
b3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKICAgICBpbnQgbmF0aXZlVmlydHVhbEtleUNv
ZGUgICAgICAgID0gW2V2ZW50IGtleUNvZGVdOwogICAgIGludCBtYWNDaGFyQ29kZSAgICAgICAg
ICAgICAgICAgPSBXS0dldE5TRXZlbnRLZXlDaGFyKGV2ZW50KTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBib29sIGF1dG9SZXBlYXQgICAgICAgICAgICAgICAgID0g
KFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkgJiYgW2V2ZW50IGlzQVJlcGVhdF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgYm9vbCBhdXRvUmVwZWF0ICAgICAgICAg
ICAgICAgICA9IFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCAmJiBbZXZl
bnQgaXNBUmVwZWF0XTsKICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNL
ZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9
IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2Vi
RXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uQWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmln
YXRpb25BY3Rpb24ubW0KaW5kZXggYmExOTk2YjIxNzRlMjNlNDc3ODQ2MzdlZDcyMTA3Yzc1MWIw
YzNjZS4uZTVhNTgxZTc4NTNkMTVmMWIxZDZiMTE5ZjM1Njk4NWFjMTI5YTMyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25B
Y3Rpb24ubW0KQEAgLTMzLDYgKzMzLDEwIEBACiAjaW1wb3J0ICJfV0tVc2VySW5pdGlhdGVkQWN0
aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAorI2lmIFBMQVRGT1JN
KE1BQykKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgorI2VuZGlmCisKIEBpbXBsZW1lbnRhdGlvbiBXS05hdmlnYXRpb25BY3Rpb24KIAogc3RhdGlj
IFdLTmF2aWdhdGlvblR5cGUgdG9XS05hdmlnYXRpb25UeXBlKFdlYkNvcmU6Ok5hdmlnYXRpb25U
eXBlIG5hdmlnYXRpb25UeXBlKQpAQCAtNzksNyArODMsNiBAQCBzdGF0aWMgTlNFdmVudE1vZGlm
aWVyRmxhZ3MgdG9OU0V2ZW50TW9kaWZpZXJGbGFncyhXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmll
cnMgbQogewogICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIG1vZGlmaWVyRmxhZ3MgPSAwOwogCi0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICBpZiAobW9k
aWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6Q2Fwc0xvY2tLZXkpCiAgICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOwogICAgIGlmIChtb2RpZmllcnMg
JiBXZWJLaXQ6OldlYkV2ZW50OjpTaGlmdEtleSkKQEAgLTkwLDE4ICs5Myw2IEBAIHN0YXRpYyBO
U0V2ZW50TW9kaWZpZXJGbGFncyB0b05TRXZlbnRNb2RpZmllckZsYWdzKFdlYktpdDo6V2ViRXZl
bnQ6Ok1vZGlmaWVycyBtCiAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ09wdGlvbjsKICAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6TWV0YUtl
eSkKICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsK
LSNlbHNlCi0gICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6OkNhcHNMb2NrS2V5
KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQWxwaGFTaGlmdEtleU1hc2s7Ci0gICAgaWYg
KG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6OlNoaWZ0S2V5KQotICAgICAgICBtb2RpZmll
ckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOwotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6Oldl
YkV2ZW50OjpDb250cm9sS2V5KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29udHJvbEtl
eU1hc2s7Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6OkFsdEtleSkKLSAg
ICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0FsdGVybmF0ZUtleU1hc2s7Ci0gICAgaWYgKG1vZGlm
aWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6Ok1ldGFLZXkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNDb21tYW5kS2V5TWFzazsKLSNlbmRpZgogCiAgICAgcmV0dXJuIG1vZGlmaWVyRmxhZ3M7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5k
ZXggMzJlNjM5YzRkOTE5YWQxNmU5YTk0ODJiOTM1Y2VmMDQ2Mzc3MWZiYS4uNzYzZDkwNjA1NzU5
OTNkOGNiMDczYzZhYTRlMDk1YzBkYmI0YTgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtOTMsNiArOTMsNyBAQAogI2ltcG9ydCA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxzeXMvc3RhdC5oPgogI2ltcG9ydCA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxX
ZWJLaXRBZGRpdGlvbnMvV2ViVmlld0ltcGxJbmNsdWRlcy5oPgpAQCAtNjIwLDExICs2MjEsOCBA
QCBib29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcigpCiAgICAgaWYgKGRpcmVj
dGlvbiAhPSBOU0RpcmVjdFNlbGVjdGlvbikgewogICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtO
U0FwcCBjdXJyZW50RXZlbnRdOwogICAgICAgICBOU0V2ZW50ICprZXlib2FyZEV2ZW50ID0gbmls
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBpZiAoW2V2ZW50
IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkKKyAgICAgICAg
aWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09
IE5TRXZlbnRUeXBlS2V5VXApCiAgICAgICAgICAgICBrZXlib2FyZEV2ZW50ID0gZXZlbnQ7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1fcGFnZS0+c2V0SW5pdGlhbEZv
Y3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJvYXJkRXZlbnQgIT0gbmlsLCBO
YXRpdmVXZWJLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZhbHNlLCBmYWxzZSwgeyB9KSwg
W10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7IH0pOwogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTg0OCwxMCArODQ2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlQ29udGVu
dEluc2V0c0lmQXV0b21hdGljKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNXaW5kb3cgKndp
bmRvdyA9IG1fdmlldy53aW5kb3c7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgaWYgKCh3aW5kb3cuc3R5bGVNYXNrICYgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93
TWFzaykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCAmJiAhW21fdmlldyBl
bmNsb3NpbmdTY3JvbGxWaWV3XSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IGlmICgod2luZG93LnN0eWxlTWFzayAmIE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVDb250ZW50
VmlldykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCAmJiAhW21fdmlldyBl
bmNsb3NpbmdTY3JvbGxWaWV3XSkgewogICAgICAgICBOU1JlY3QgY29udGVudExheW91dFJlY3Qg
PSBbbV92aWV3IGNvbnZlcnRSZWN0OndpbmRvdy5jb250ZW50TGF5b3V0UmVjdCBmcm9tVmlldzpu
aWxdOwogICAgICAgICBDR0Zsb2F0IG5ld1RvcENvbnRlbnRJbnNldCA9IE5TTWF4WShjb250ZW50
TGF5b3V0UmVjdCkgLSBOU0hlaWdodChjb250ZW50TGF5b3V0UmVjdCk7CiAgICAgICAgIGlmICht
X3RvcENvbnRlbnRJbnNldCAhPSBuZXdUb3BDb250ZW50SW5zZXQpCkBAIC0xMjI4LDEwICsxMjIz
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdygpCiAKICAgICAgICAg
aWYgKCFtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikgewogICAgICAgICAgICAgYXV0byB3ZWFr
VGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRk
TG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2VkTWFzayBoYW5k
bGVyOlt3ZWFrVGhpc10gKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRv
ciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0V2ZW50
TWFza0ZsYWdzQ2hhbmdlZCBoYW5kbGVyOlt3ZWFrVGhpc10gKE5TRXZlbnQgKmZsYWdzQ2hhbmdl
ZEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAg
ICAgICB3ZWFrVGhpcy0+cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVu
dChmbGFnc0NoYW5nZWRFdmVudCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzQ2hhbmdl
ZEV2ZW50OwpAQCAtMTMwMiwxMiArMTI5NCw5IEBAIE5TVmlldyAqV2ViVmlld0ltcGw6OmhpdFRl
c3QoQ0dQb2ludCBwb2ludCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6cG9zdEZha2VNb3VzZU1vdmVk
RXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9uOmZs
YWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0K
KyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3Vz
ZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KICAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFn
c0NoYW5nZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50
aW1lc3RhbXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgogICAg
ICAgICBjb250ZXh0Om51bGxwdHIgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6
MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgTmF0aXZlV2ViTW91c2VFdmVu
dCB3ZWJFdmVudChmYWtlRXZlbnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7
CiAgICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsKIH0KQEAgLTE2NTYsMTAg
KzE2NDUsNyBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3
KCkKIE5TV2luZG93ICpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNjcmVlbldpbmRvdygpCiB7CiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdp
dGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGZyYW1lXSBzdHlsZU1hc2s6KE5T
Qm9yZGVybGVzc1dpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2spIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVhc2VdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBh
bGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGZyYW1lXSBz
dHlsZU1hc2s6KE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyB8IE5TV2luZG93U3R5bGVNYXNr
UmVzaXphYmxlKSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dIGF1dG9y
ZWxlYXNlXTsKICNlbHNlCiAgICAgcmV0dXJuIG5pbDsKICNlbmRpZgpAQCAtMjYzMSw5ICsyNjE3
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVtb3ZlVHJhY2tpbmdSZWN0cyhOU1RyYWNraW5nUmVj
dFRhZyAqdGFncywgaW50IGNvdW50KQogdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3Vz
ZUV4aXRlZCgpCiB7CiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNr
aW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRo
VHlwZTpOU01vdXNlRXhpdGVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50
ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRXhpdGVkCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgw
LCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aW1lc3RhbXA6MApAQCAtMjY0MiwxNiArMjYyNiwxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YTptX3RyYWNraW5nUmVj
dFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbbV90cmFja2lu
Z1JlY3RPd25lciBtb3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBs
OjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJlZCgpCiB7CiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4
Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQg
ZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRW50ZXJlZAorICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUVu
dGVyZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yNjYwLDcgKzI2NDEsNiBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJlZCgpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNU
X1RBRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNl
ckRhdGE6bV90cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAgICAgW21fdHJhY2tpbmdSZWN0T3duZXIgbW91c2VFbnRlcmVkOmZha2VFdmVudF07CiB9
CiAKQEAgLTI4MTYsMTAgKzI3OTYsNyBAQCBzdGF0aWMgV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9u
RmxhZ3MgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcoTlNWaWV3ICp2aWV3LCBpZCA8TgogICAgICAg
ICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25IYXNBdHRhY2hlZFNoZWV0OwogICAg
IGlmIChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2UgPT0gdmlldykKICAgICAgICAgZmxhZ3Mg
fD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtOU0FwcCBjdXJyZW50RXZlbnRdLm1vZGlmaWVyRmxh
Z3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgaWYgKFtOU0FwcCBjdXJyZW50RXZlbnRdLm1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnT3B0aW9uKQogICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25J
c0NvcHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEcmFnQXBwbGlj
YXRpb25GbGFncz4oZmxhZ3MpOwogCkBAIC0zMzU5LDEwICszMzM2LDcgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50
eXBlID09IE5TTGVmdE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TUmlnaHRNb3VzZURvd24g
fHwgZXZlbnQudHlwZSA9PSBOU090aGVyTW91c2VEb3duKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVM
ZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8
fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24pOwogCiAgICAgaWYgKGV2
ZW50ID09IG1fbGFzdE1vdXNlRG93bkV2ZW50LmdldCgpKQogICAgICAgICByZXR1cm47CkBAIC0z
Mzk5LDExICszMzczLDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0
aW9uKCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChOU0V2ZW50ICpldmVu
dCwgYm9vbCBldmVudFdhc0hhbmRsZWQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCisgICAgaWYgKFtldmVu
dCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24pCiAgICAgICAgIHJldHVybjsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIGlmICh0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRLZXlEb3duKGV2ZW50KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ3OSwxMSAr
MzQ1MCw4IEBAIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IFdlYlZpZXdJbXBsOjpj
b2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2CiB7CiAgICAgVmVjdG9yPFdlYkNvcmU6
OktleXByZXNzQ29tbWFuZD4gY29tbWFuZHM7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2
ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuIGNvbW1hbmRz
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKCFtX2NvbGxlY3Rl
ZEtleXByZXNzQ29tbWFuZHMpOwogICAgIG1fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kcyA9ICZj
b21tYW5kczsKQEAgLTM4NTgsMTEgKzM4MjYsOCBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJmb3Jt
S2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVudCkKICAgICAvLyBXZSBnZXQgRXNjIGtleSBoZXJl
IGFmdGVyIHByb2Nlc3NpbmcgZWl0aGVyIEVzYyBvciBDbWQrcGVyaW9kLiBUaGUgZm9ybWVyIHN0
YXJ0cyBhcyBhIGtleURvd24sIGFuZCB0aGUgbGF0dGVyIHN0YXJ0cyBhcyBhIGtleSBlcXVpdmFs
ZW50LAogICAgIC8vIGJ1dCBib3RoIGdldCB0cmFuc2Zvcm1lZCB0byBhIGNhbmNlbE9wZXJhdGlv
bjogY29tbWFuZCwgZXhlY3V0aW5nIHdoaWNoIHBhc3NlcyBhbiBFc2Mga2V5IGV2ZW50IHRvIC1w
ZXJmb3JtS2V5RXF1aXZhbGVudDouCiAgICAgLy8gRG9uJ3QgaW50ZXJwcmV0IHRoaXMgZXZlbnQg
YWdhaW4sIGF2b2lkaW5nIHJlLWVudHJhbmN5IGFuZCBpbmZpbml0ZSBsb29wcy4KLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzSWdu
b3JpbmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0gJiYgIShbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2spKQorICAgIGlm
IChbW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAi
XGUiXSAmJiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdEZXZp
Y2VJbmRlcGVuZGVudEZsYWdzTWFzaykpCiAgICAgICAgIHJldHVybiBbbV92aWV3IF93ZWJfc3Vw
ZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCiAKICAgICBpZiAobV9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgewogICAgICAgICAvLyBX
ZWJDb3JlIGhhcyBhbHJlYWR5IHNlZW4gdGhlIGV2ZW50LCBubyBuZWVkIGZvciBjdXN0b20gcHJv
Y2Vzc2luZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21h
Yy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1
Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCmluZGV4IGYwN2QyNzlkNjM3ZDMwZjhm
NTA1MzE3ZDhmMDk2MDU1N2ExMWQyZDIuLjhmMzdkNDI2MTUyYjYxN2Q1NWM5MTQ4ODE1MTE0Zjhj
MzM5ZTdjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21h
Yy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpAQCAtMzksNiArMzksNyBAQAog
I2ltcG9ydCA8Y3J0X2V4dGVybnMuaD4KICNpbXBvcnQgPG1hY2gtby9keWxkLmg+CiAjaW1wb3J0
IDxzcGF3bi5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIEBpbnRlcmZhY2UgV0tQbGFj
ZWhvbGRlck1vZGFsV2luZG93IDogTlNXaW5kb3cgCkBAIC0yMzEsMTAgKzIzMiw3IEBAIHZvaWQg
UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1fcGxhY2Vob2xk
ZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwogICAgIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cg
PSBhZG9wdE5TKFtbV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRl
bnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRv
d01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBhZG9wdE5T
KFtbV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5T
TWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVz
cyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgW21fcGxh
Y2Vob2xkZXJXaW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKICAgICAKICAgICBtX2Fj
dGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25XaWxsQmVjb21lQWN0aXZlTm90aWZpY2F0
aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCBhNDgzOTY0ZDhmMWYy
MjZkNGFlY2MyN2NjYjBmMDc2MDcxYjdiYmQxLi5iYjVhZDdjMjFlODEwY2EzNjU2NWVjYzc3N2Qw
NmFmMzFiYjAyODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC00OCw2ICs0OCw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL05TU2hhcmluZ1NlcnZpY2VTUEkuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVy
ZmFjZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkBAIC00NjMsMTAgKzQ2NCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hv
d0NvbnRleHRNZW51V2l0aEl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVuCiAgICAgW1tX
S01lbnVUYXJnZXQgc2hhcmVkTWVudVRhcmdldF0gc2V0TWVudVByb3h5OnRoaXNdOwogCiAgICAg
TlNQb2ludCBtZW51TG9jYXRpb24gPSBbbV93ZWJWaWV3IGNvbnZlcnRQb2ludDptX2NvbnRleHQu
bWVudUxvY2F0aW9uKCkgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4
dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9u
IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRv
dy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJl
c3N1cmU6MF07CiAgICAgW05TTWVudSBwb3BVcENvbnRleHRNZW51Om1fbWVudS5nZXQoKSB3aXRo
RXZlbnQ6ZXZlbnQgZm9yVmlldzptX3dlYlZpZXddOwogCiAgICAgaWYgKG1fY29udGV4dE1lbnVM
aXN0ZW5lcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJ
bnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5z
cGVjdG9yUHJveHlNYWMubW0KaW5kZXggMGE3OTkxMzQ2ZDE1Y2NmYWM3NzQzNWVmMzBlZjhkZjgy
MmFmYWUyMy4uZjA2YjU4NDJhY2Q1MzRkZmUyNDEwZmVjYTlhMWFkZmI2ZWE5Nzc5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFj
Lm1tCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4KIAog
U09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUksIFByaXZhdGVGcmFtZXdv
cmtzLCBBKQpAQCAtNDgsMTAgKzQ5LDcgQEAgU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2Vi
SW5zcGVjdG9yVUksIFByaXZhdGVGcmFtZXdvcmtzLCBBKQogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi1zdGF0aWMgY29uc3QgTlNVSW50ZWdlciB3aW5kb3dTdHlsZU1hc2sgPSBOU1Rp
dGxlZFdpbmRvd01hc2sgfCBOU0Nsb3NhYmxlV2luZG93TWFzayB8IE5TTWluaWF0dXJpemFibGVX
aW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrIHwgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3
V2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK3N0YXRpYyBjb25zdCBO
U1VJbnRlZ2VyIHdpbmRvd1N0eWxlTWFzayA9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVkIHwgTlNX
aW5kb3dTdHlsZU1hc2tDbG9zYWJsZSB8IE5TV2luZG93U3R5bGVNYXNrTWluaWF0dXJpemFibGUg
fCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVD
b250ZW50VmlldzsKIAogLy8gVGhlIHRpbWUgd2Uga2VlcCBvdXIgV2ViVmlldyBhbGl2ZSBiZWZv
cmUgY2xvc2luZyBpdCBhbmQgaXRzIHByb2Nlc3MuCiAvLyBSZXVzaW5nIHRoZSBXZWJWaWV3IGlt
cHJvdmVzIHN0YXJ0IHVwIHRpbWUgZm9yIHBlb3BsZSB0aGF0IGp1bXAgaW4gYW5kIG91dCBvZiB0
aGUgSW5zcGVjdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJQb3B1cE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
UG9wdXBNZW51UHJveHlNYWMubW0KaW5kZXggZDI5ZDA4OTA1MmM4ODdhZmI4NjQyMzg0NTVhYTE4
ODRiNGRkNDY1Yy4uYzIyOWZiZDBiOGJlYmJhZjExNWMzNTNlODNjN2UwODQ2NTA2MDM0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5
TWFjLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNp
bXBvcnQgIldlYlBvcHVwSXRlbS5oIgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTc0LDE5ICs3NSwxMyBAQCB2b2lkIFdlYlBv
cHVwTWVudVByb3h5TWFjOjpwb3B1bGF0ZShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRl
bXMsIE5TRm9udCAqZgogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0
eWxlPiBwYXJhZ3JhcGhTdHlsZSA9IGFkb3B0TlMoW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQ
YXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNvcHldKTsKICAgICAgICAgICAgIE5TV3JpdGluZ0RpcmVj
dGlvbiB3cml0aW5nRGlyZWN0aW9uID0gaXRlbXNbaV0ubV90ZXh0RGlyZWN0aW9uID09IExUUiA/
IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRU
b0xlZnQ7CiAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJlY3Rp
b246d3JpdGluZ0RpcmVjdGlvbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0
aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBbcGFyYWdyYXBoU3R5
bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVGV4dEFsaWdubWVu
dExlZnQgOiBOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNN
dXRhYmxlRGljdGlvbmFyeT4gYXR0cmlidXRlcyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0V2l0aE9iamVjdHNBbmRLZXlzOgogICAgICAgICAgICAgICAgIHBhcmFn
cmFwaFN0eWxlLmdldCgpLCBOU1BhcmFncmFwaFN0eWxlQXR0cmlidXRlTmFtZSwKICAgICAgICAg
ICAgICAgICBmb250LCBOU0ZvbnRBdHRyaWJ1dGVOYW1lLAogICAgICAgICAgICAgbmlsXSk7CiAg
ICAgICAgICAgICBpZiAoaXRlbXNbaV0ubV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgICAgICBSZXRhaW5Q
dHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBh
bGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1RleHRXcml0aW5nRGly
ZWN0aW9uT3ZlcnJpZGVdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0
TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBO
U1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgICAgIFJldGFpblB0cjxO
U0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10g
aW5pdFdpdGhPYmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1ZS5nZXQoKSwgbmlsXSk7CiAgICAg
ICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0OndyaXRpbmdEaXJlY3Rpb25BcnJheS5n
ZXQoKSBmb3JLZXk6TlNXcml0aW5nRGlyZWN0aW9uQXR0cmlidXRlTmFtZV07CiAgICAgICAgICAg
ICB9CkBAIC0xNTQsMTggKzE0OSwxNSBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93
UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogCiAgICAg
TlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZTsKICAgICBzd2l0Y2ggKGRhdGEubWVudVNpemUpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjYXNlIFdlYkNvcmU6OlBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOgotICAgICAgICBjb250cm9sU2l6ZSA9
IE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNp
emVSZWd1bGFyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlBvcHVwTWVudVN0
eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNTbWFsbENv
bnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVTbWFsbDsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNNaW5pQ29udHJvbFNpemU7CisgICAg
ICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZU1pbmk7CiAgICAgICAgIGJyZWFrOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIFJlZjxXZWJQb3B1cE1lbnVQ
cm94eU1hYz4gcHJvdGVjdCgqdGhpcyk7CkBAIC0xODMsMTMgKzE3NSwxMSBAQCB2b2lkIFdlYlBv
cHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHRE
aXJlY3Rpb24gdGV4dAogICAgIGlmICghbV9jbGllbnQtPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNl
RG93bkV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICAgICBOU0V2ZW50KiBpbml0aWF0aW5nTlNFdmVudCA9IG1fY2xpZW50
LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpLT5uYXRpdmVFdmVudCgpOwotICAg
IGlmIChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0gTlNMZWZ0TW91c2VEb3duKQorICAgIGlm
IChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5n
TlNFdmVudCBsb2NhdGlvbkluV2luZG93XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ05TRXZlbnQgbW9kaWZpZXJGbGFnc10K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2lu
aXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KQEAgLTE5OCwxMyArMTg4LDE0IEBAIHZvaWQgV2Vi
UG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4
dERpcmVjdGlvbiB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV2ZW50TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCBldmVudE51bWJlcl0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrQ291bnQ6W2luaXRpYXRpbmdOU0V2
ZW50IGNsaWNrQ291bnRdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByZXNzdXJlOltpbml0aWF0aW5nTlNFdmVudCBwcmVzc3VyZV1dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogCiAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFy
dDpZRVNdOworICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb246W1ttX3dlYlZpZXcgd2luZG93XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNl
TW92ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1ttX3dl
YlZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25d
XQorICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBt
b3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdOU0V2ZW50IG1vZGlm
aWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltp
bml0aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2luZG93TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC0yMTIs
NyArMjAzLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25z
dCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNz
dXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZl
bnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCmlu
ZGV4IDVlZGU1NmVlZTQwYWNmZGI5OTAxMTlkZTdhY2U5MThlNjc4YmM2NjYuLjEyNTE4ZGYzMzRj
ZjNmZGQ2NThkZjg5MTljMzM2MWIwODQyZTJkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0K
QEAgLTgwLDYgKzgwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RUcmlnZ2Vy
Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9DdXJy
ZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMjc4LDMzICsxMjc5LDI4
IEBAIHZvaWQgUERGUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QsIGNvbnN0
IFdURjo6U3RyaW5nJikKICAgICAKIHN0YXRpYyBOU1VJbnRlZ2VyIG1vZGlmaWVyRmxhZ3NGcm9t
V2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TU2hpZnRLZXlN
YXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNDb250cm9sS2V5TWFz
ayA6IDApCi0gICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNBbHRlcm5hdGVLZXlNYXNrIDog
MCkKLSAgICAgICAgfCAoZXZlbnQubWV0YUtleSgpID8gTlNDb21tYW5kS2V5TWFzayA6IDApOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXko
KSA/IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCA6IDApCisgICAgICAgIHwgKGV2ZW50LmNvbnRy
b2xLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sIDogMCkKKyAgICAgICAgfCAoZXZl
bnQuYWx0S2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uIDogMCkKKyAgICAgICAgfCAo
ZXZlbnQubWV0YUtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQgOiAwKTsKIH0KICAg
ICAKIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYg
ZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCiAgICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsKICAgICBjYXNlIFdlYkV2
ZW50OjpLZXlEb3duOgotICAgICAgICBldmVudFR5cGUgPSBOU0tleURvd247CisgICAgICAgIGV2
ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5RG93bjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
Y2FzZSBXZWJFdmVudDo6S2V5VXA6Ci0gICAgICAgIGV2ZW50VHlwZSA9IE5TS2V5VXA7CisgICAg
ICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlRG93bjoKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2Fz
dDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2Ug
V2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVm
dE1vdXNlRG93bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNl
RG93bjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZl
bnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlRG93
bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd247CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTEzMTIsMTAgKzEzMDgsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRU
eXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50
VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZVVwOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19j
YXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2Fz
ZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNM
ZWZ0TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNl
VXA7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50
OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZVVwOwor
ICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTEzMjMsMTMgKzEzMTksMTMgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJv
bVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAg
ICBjYXNlIFdlYkV2ZW50OjpNb3VzZU1vdmU6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8
Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdl
Yk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRN
b3VzZURyYWdnZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURyYWdnZWQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3Vz
ZURyYWdnZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
cmFnZ2VkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VF
dmVudDo6Tm9CdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU01vdXNlTW92ZWQ7Cisg
ICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEzMzcsNyArMTMzMyw2IEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJF
dmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgZGVm
YXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKIH0KICAgICAKIE5TRXZlbnQgKlBERlBsdWdpbjo6bnNFdmVudEZvcldlYk1vdXNl
RXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3Rh
dGlvbi5tbQppbmRleCA2YzYwYmRkZTk1ZmRkMzE3ZjZiNzE0ZTFmNDRmNmVlYjJmMzNkMzBiLi42
MDMxYzU5MGRjMjMxZWNjZmVlYTIwYTA0N2Y4NTY5NmNhNWQ4YTNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
VGV4dEFubm90YXRpb24ubW0KQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRN
TFRleHRBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTMs
MjEgKzU0LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBjb25zdCBT
dHJpbmcgY3NzQWxpZ25tZW50VmFsdWVGb3JOU1RleHRBbGlnbm1lbnQoTlNUZXh0QWxpZ25tZW50
IGFsaWdubWVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBz
d2l0Y2ggKGFsaWdubWVudCkgewotICAgIGNhc2UgTlNMZWZ0VGV4dEFsaWdubWVudDoKKyAgICBj
YXNlIE5TVGV4dEFsaWdubWVudExlZnQ6CiAgICAgICAgIHJldHVybiAibGVmdCI7Ci0gICAgY2Fz
ZSBOU1JpZ2h0VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudFJpZ2h0Ogog
ICAgICAgICByZXR1cm4gInJpZ2h0IjsKLSAgICBjYXNlIE5TQ2VudGVyVGV4dEFsaWdubWVudDoK
KyAgICBjYXNlIE5TVGV4dEFsaWdubWVudENlbnRlcjoKICAgICAgICAgcmV0dXJuICJjZW50ZXIi
OwotICAgIGNhc2UgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxp
Z25tZW50SnVzdGlmaWVkOgogICAgICAgICByZXR1cm4gImp1c3RpZnkiOwotICAgIGNhc2UgTlNO
YXR1cmFsVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudE5hdHVyYWw6CiAg
ICAgICAgIHJldHVybiAiLXdlYmtpdC1zdGFydCI7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IGEzNmYzYjMyM2FiOTE2
NTE0NzdiZDNjN2JlMjhjNmEyM2RlOWIxN2QuLjYyNmU0MzZjNmFjNGZlNmI5YTdlYjUzYzJkMzU2
YmY3OTZmZjQ0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNDYsNiAr
NDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdUcnVuY2F0b3IuaD4KICNpbXBvcnQgPFdl
YktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTYzLDEwICs2
NCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9C
aXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEluCiAgICAgUmV0YWluUHRyPE5TR3JhcGhpY3ND
b250ZXh0PiBzYXZlZENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRd
OwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNz
Q29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNzQ29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1h
cC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1pl
cm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MSByZXNwZWN0
RmxpcHBlZDpZRVMgaGludHM6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRo
KCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlv
bjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlw
cGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRD
b250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KaW5kZXggZTFiM2VmYTk2MjExOGY5MTMw
YWU4ODdhMTA5ODRmNjFjM2M5YThlNi4uNjVlMmMxZjViNTZjYjNkZGUzNDU5N2Y1NDExYTUxNDY1
YTcwNzkyMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KQEAgLTQzLDYgKzQzLDcgQEAKIAogI2lmICFQTEFURk9STShJT1MpCiAj
aW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+IC8vIGZvciBHZXRDdXJyZW50RXZlbnRUaW1lKCkKKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zNTUsMzMgKzM1NiwzMyBAQCAtICh2b2lkKWNsZWFy
S2lsbFJpbmcKIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFj
dGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3Rpb24pCiB7CiAgICAgc3dpdGNoIChidXR0
b24pIHsKLSAgICAgICAgY2FzZSBMZWZ0TW91c2VCdXR0b246Ci0gICAgICAgICAgICBzd2l0Y2gg
KGFjdGlvbikgewotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEb3duOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91
c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TTGVmdE1vdXNlVXA7Ci0gICAgICAg
ICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBO
U0xlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGNhc2UgUmlnaHRNb3Vz
ZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAg
Y2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU1JpZ2h0TW91c2VE
b3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIE5TUmlnaHRNb3VzZVVwOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNSaWdodE1vdXNlRHJhZ2dlZDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7
Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBOU090aGVyTW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3RoZXJNb3VzZVVwOwotICAgICAgICAgICAgICAg
IGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNPdGhlck1v
dXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KKyAgICBjYXNlIExlZnRNb3VzZUJ1dHRvbjoKKyAg
ICAgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICAgICAgY2FzZSBNb3VzZURvd246CisgICAgICAg
ICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNl
VXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VVcDsKKyAgICAgICAg
Y2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91
c2VEcmFnZ2VkOworICAgICAgICB9CisgICAgY2FzZSBSaWdodE1vdXNlQnV0dG9uOgorICAgICAg
ICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAg
IHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6
CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CisgICAgICAgIGNh
c2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ7CisgICAgICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBzd2l0Y2ggKGFjdGlv
bikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50
VHlwZU90aGVyTW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICBy
ZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2Vk
OgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ7CisgICAg
ICAgIH0KICAgICB9CiAgICAgYXNzZXJ0KDApOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0V2
ZW50VHlwZT4oMCk7CkBAIC00MzMsMTEgKzQzNCwxMSBAQCAtICh2b2lkKXVwZGF0ZUNsaWNrQ291
bnRGb3JCdXR0b246KGludClidXR0b25OdW1iZXIKIHN0YXRpYyBpbnQgbW9kaWZpZXJGbGFncyhj
b25zdCBOU1N0cmluZyogbW9kaWZpZXJOYW1lKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAg
Y29uc3QgaW50IGNvbnRyb2xLZXlNYXNrID0gTlNDb250cm9sS2V5TWFzazsKLSAgICBjb25zdCBp
bnQgc2hpZnRLZXlNYXNrID0gTlNTaGlmdEtleU1hc2s7Ci0gICAgY29uc3QgaW50IGFsdGVybmF0
ZUtleU1hc2sgPSBOU0FsdGVybmF0ZUtleU1hc2s7Ci0gICAgY29uc3QgaW50IGNvbW1hbmRLZXlN
YXNrID0gTlNDb21tYW5kS2V5TWFzazsKLSAgICBjb25zdCBpbnQgY2Fwc0xvY2tLZXlNYXNrID0g
TlNBbHBoYVNoaWZ0S2V5TWFzazsKKyAgICBjb25zdCBpbnQgY29udHJvbEtleU1hc2sgPSBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKKyAgICBjb25zdCBpbnQgc2hpZnRLZXlNYXNrID0gTlNF
dmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAgIGNvbnN0IGludCBhbHRlcm5hdGVLZXlNYXNrID0g
TlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAgICBjb25zdCBpbnQgY29tbWFuZEtleU1hc2sg
PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKKyAgICBjb25zdCBpbnQgY2Fwc0xvY2tLZXlN
YXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOwogI2Vsc2UKICAgICBjb25zdCBpbnQg
Y29udHJvbEtleU1hc2sgPSBXZWJFdmVudEZsYWdNYXNrQ29udHJvbDsKICAgICBjb25zdCBpbnQg
c2hpZnRLZXlNYXNrID0gV2ViRXZlbnRGbGFnTWFza1NoaWZ0OwpAQCAtNjQzLDcgKzY0NCw3IEBA
IC0gKHZvaWQpbW91c2VNb3ZlVG9YOihpbnQpeCBZOihpbnQpeQogICAgIE5TVmlldyAqdmlldyA9
IFttYWluRnJhbWUgd2ViVmlld107CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBsYXN0TW91c2VQ
b3NpdGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDpOU01ha2VQb2ludCh4LCBbdmlldyBmcmFtZV0u
c2l6ZS5oZWlnaHQgLSB5KSB0b1ZpZXc6bmlsXTsKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0dG9uRG93biA/IE5TTGVmdE1vdXNl
RHJhZ2dlZCA6IE5TTW91c2VNb3ZlZCkKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0dG9uRG93biA/IE5TRXZlbnRUeXBlTGVmdE1v
dXNlRHJhZ2dlZCA6IE5TRXZlbnRUeXBlTW91c2VNb3ZlZCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVudFRp
bWVdCkBAIC03NzcsNyArNzc4LDcgQEAgLSAoTlNBcnJheSAqKWNvbnRleHRDbGljawogICAgIFtb
W21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKICAgICBbc2VsZiB1
cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uOlJpZ2h0TW91c2VCdXR0b25dOwogCi0gICAgTlNFdmVu
dCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93bgor
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVudFRpbWVdCkBAIC0xMDEzLDcgKzEw
MTQsNyBAQCAtICh2b2lkKWtleURvd246KE5TU3RyaW5nICopY2hhcmFjdGVyIHdpdGhNb2RpZmll
cnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVycwogCiAgICAgaWYgKFtjaGFyYWN0ZXIgbGVu
Z3RoXSA9PSAxICYmIFtjaGFyYWN0ZXIgY2hhcmFjdGVyQXRJbmRleDowXSA+PSAnQScgJiYgW2No
YXJhY3RlciBjaGFyYWN0ZXJBdEluZGV4OjBdIDw9ICdaJykgewogI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgIG1vZGlm
aWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogI2Vsc2UKICAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBXZWJFdmVudEZsYWdNYXNrQWxwaGFTaGlmdDsKICNlbmRpZgpAQCAtMTAy
MywxMiArMTAyNCwxMiBAQCAtICh2b2lkKWtleURvd246KE5TU3RyaW5nICopY2hhcmFjdGVyIHdp
dGhNb2RpZmllcnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVycwogICAgIG1vZGlmaWVyRmxh
Z3MgfD0gYnVpbGRNb2RpZmllckZsYWdzKG1vZGlmaWVycyk7CiAKICAgICBpZiAobG9jYXRpb24g
PT0gRE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNO
dW1lcmljUGFkS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnTnVtZXJpY1BhZDsKIAogICAgIFtbW21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50
Vmlld10gbGF5b3V0XTsKIAogI2lmICFQTEFURk9STShJT1MpCi0gICAgTlNFdmVudCAqZXZlbnQg
PSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5RG93bgorICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBtb2RpZmllckZsYWdzOm1vZGlmaWVyRmxhZ3MKICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWVzdGFtcDpbc2VsZiBjdXJyZW50RXZlbnRUaW1lXQpAQCAtMTA2MCw3ICsxMDYx
LDcgQEAgLSAodm9pZClrZXlEb3duOihOU1N0cmluZyAqKWNoYXJhY3RlciB3aXRoTW9kaWZpZXJz
OihXZWJTY3JpcHRPYmplY3QgKiltb2RpZmllcnMKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElP
UykKLSAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAorICAgIGV2
ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAgICAgICAg
ICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KQogICAgICAgICAgICAg
ICAgICAgICAgICAgbW9kaWZpZXJGbGFnczptb2RpZmllckZsYWdzCiAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6W3NlbGYgY3VycmVudEV2ZW50VGltZV0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294130</attachid>
            <date>2016-11-07 21:06:59 -0800</date>
            <delta_ts>2016-11-07 21:30:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107210250.patch</filename>
            <type>text/plain</type>
            <size>236817</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBL
aXRTdHVicy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVi
cy5oCmluZGV4IDExNjYxODkwMjY0YjU3Nzk5OTNiZDM3YWVjMzU0M2JhMTMwZDE0MDQuLjQyOGQ2
OTM4NjVhZDViN2QyM2VjNmI4YTJhNjk2ZDU5ODUxZjE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLQXBwS2l0U3R1YnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS0FwcEtpdFN0dWJzLmgKQEAgLTE1NCwxNSArMTU0LDE1
IEBAIHR5cGVkZWYgTlNVSW50ZWdlciBOU1JlY3RFZGdlOwogCiAvKiBEZXZpY2UtaW5kZXBlbmRl
bnQgYml0cyBmb3VuZCBpbiBldmVudCBtb2RpZmllciBmbGFncyAqLwogZW51bSB7Ci0gICAgTlNB
bHBoYVNoaWZ0S2V5TWFzayA9IDEgPDwgMTYsCi0gICAgTlNTaGlmdEtleU1hc2sgPSAgICAgIDEg
PDwgMTcsCi0gICAgTlNDb250cm9sS2V5TWFzayA9ICAgIDEgPDwgMTgsCi0gICAgTlNBbHRlcm5h
dGVLZXlNYXNrID0gIDEgPDwgMTksCi0gICAgTlNDb21tYW5kS2V5TWFzayA9ICAgIDEgPDwgMjAs
Ci0gICAgTlNOdW1lcmljUGFkS2V5TWFzayA9IDEgPDwgMjEsCi0gICAgTlNIZWxwS2V5TWFzayA9
ICAgICAgIDEgPDwgMjIsCi0gICAgTlNGdW5jdGlvbktleU1hc2sgPSAgIDEgPDwgMjMsCi0gICAg
TlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKKyAgICBO
U0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2sgPSAxIDw8IDE2LAorICAgIE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdCA9IDEgPDwgMTcsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSAx
IDw8IDE4LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gPSAxIDw8IDE5LAorICAgIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kID0gMSA8PCAyMCwKKyAgICBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZCA9IDEgPDwgMjEsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgPSAx
IDw8IDIyLAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbiA9IDEgPDwgMjMsCisgICAg
TlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrID0gMHhmZmZmMDAw
MFUKIH07CiAKIHR5cGVkZWYgZW51bSBfV0tXcml0aW5nRGlyZWN0aW9uIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5
YzBiZDBmNjY5ZWIyNTRkMGMuLjcyOGQzNDRhOTQ1MDM0YjljN2EyMDg1ZjQ1NjNkYzFiYjY5NjRl
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtMjksNiAr
MjksNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50
ZXJmYWNlIFdlYkNvcmVDdXJzb3JCdW5kbGUgOiBOU09iamVjdCB7IH0KIEBlbmQKQEAgLTY0LDEw
ICs2NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJ
bWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTCiAgICAgICAgIE5TUmVjdCBmcm9tUmVj
dCA9IE5TTWFrZVJlY3QoMCwgMCwgaW1hZ2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CiAK
ICAgICAgICAgW2V4cGFuZGVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJl
Y3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVj
dDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRp
b25Tb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwogICAgICAgICBbZXhwYW5kZWRJbWFnZSB1bmxvY2tG
b2N1c107CiAKICAgICAgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0N1cnNvciBhbGxvY10gaW5pdFdp
dGhJbWFnZTpleHBhbmRlZEltYWdlLmdldCgpIGhvdFNwb3Q6aG90U3BvdF0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggNjgyNDZiZWZhNTIzZWRm
ZjNiNjA1YzYwMTE4NzE5ZDQ3Mjk4ZDA5Yi4uMGZmNDIwMjAwY2M4YmQzNDg3ZTQ1NmY3NzkwZWRl
ZTk1ZThmNTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIKICNpbXBv
cnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzUsMTAgKzc2LDcgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZl
RHJhZ0ltYWdlVG9GcmFjdGlvbihSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGZsb2F0IGQKICAg
ICBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVkSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBh
bGxvY10gaW5pdFdpdGhTaXplOltpbWFnZS5nZXQoKSBzaXplXV0pOwogICAgIAogICAgIFtkaXNz
b2x2ZWRJbWFnZS5nZXQoKSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIFtpbWFnZS5nZXQoKSBkcmF3QXRQb2ludDpOU1plcm9Qb2ludCBmcm9tUmVj
dDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXplXS53aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdo
dCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weSBmcmFjdGlvbjpkZWx0YV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5TWmVyb1Bv
aW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ug
c2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvbkNvcHkgZnJhY3Rp
b246ZGVsdGFdOwogICAgIFtkaXNzb2x2ZWRJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICByZXR1cm4gZGlzc29sdmVkSW1hZ2U7CkBAIC0xMTksMTAgKzExNyw4IEBAIFJldGFpblB0cjxO
U0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpCiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgc2V0VHJhbnNm
b3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QqKSZ0cmFuc2Zvcm1dOwogICAgICAg
ICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIGNvbmNhdF07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkg
ZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlv
bjoxLjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW2ltYWdl
LT5zbmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJl
Y3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3Np
dGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKKwogICAgICAgICAgICAgW3Jv
dGF0ZWREcmFnSW1hZ2UuZ2V0KCkgdW5sb2NrRm9jdXNdOwogCiAgICAgICAgICAgICByZXR1cm4g
cm90YXRlZERyYWdJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9FdmVudExvb3BNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29w
TWFjLm1tCmluZGV4IGFmMGEzOTkyYjY2ZTlkNmZmYzAxNzcxMjQ4NTc2MjZhMDA1YTVlOTAuLmI5
Y2M1NDVhOTg0OTM0ZDU0NjBkZGJkZjViZDRlYzNlYTcxNTkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQpAQCAtMjUsMTYgKzI1LDE0IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlIDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQogewogICAgIFtOU0FwcCBzZXRXaW5kb3dz
TmVlZFVwZGF0ZTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0FueUV2ZW50
TWFzayB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjAuMDVd
IGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU11dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1h
dGNoaW5nTWFzazpOU0V2ZW50TWFza0FueSB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJ
bnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVl
OllFU11dOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGE1ZGYzNDc0YzMxMWM2YTc1NjFkN2Y0
ZDQ0NTUzMTRhYTA0ZDAwNzAuLjFjNGUzYzE5ODAzMWNmZmE2ZmE5YjY2NTI3MWFiZmE0NzMyZDc2
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBA
IC01NSw2ICs1NSw3IEBACiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2ltcG9ydCA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIApAQCAt
NjUzLDExICs2NTQsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBsb2NhdGlvbikKICAgICAvLyBIYWNrOiBXZSBtdXN0
IHBvc3QgYW4gZXZlbnQgdG8gd2FrZSB1cCB0aGUgTlNEcmFnTWFuYWdlciwgd2hpY2ggaXMgc2l0
dGluZyBpbiBhIG5leHRFdmVudCBjYWxsCiAgICAgLy8gdXAgdGhlIHN0YWNrIGZyb20gdXMgYmVj
YXVzZSB0aGUgQ29yZUZvdW5kYXRpb24gZHJhZyBtYW5hZ2VyIGRvZXMgbm90IHVzZSB0aGUgcnVu
IGxvb3AgYnkgaXRzZWxmLgogICAgIC8vIFRoaXMgaXMgdGhlIG1vc3QgaW5ub2N1b3VzIGV2ZW50
IHRvIHVzZSwgcGVyIEtyaXN0ZW4gRm9yc3Rlci4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU01vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9pbnQKKyAgICBOU0V2ZW50KiBldmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRp
b246TlNaZXJvUG9pbnQKICAgICAgICAgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRv
d051bWJlcjowIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6
ZXZlbnQgYXRTdGFydDpZRVNdOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggZDM0ZDZlYWU5
NDhmN2FmY2JhYjMzMDMxNGZkY2JhNzhlOWU0MDBiOC4uMGQyZTMxOGVjZGZiMTMwNDIzODc3YTcz
MmQ4MmY4NjkxOTc2OTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNTIsMjcgKzUyLDI0IEBAIHN0YXRp
YyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQ
cmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3Vz
ZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2lu
ZG93XSwgW2V2ZW50IHdpbmRvd10pOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIHsgMCwgMCB9OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKKyAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtl
dmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiB7IDAsIDAgfTsKICAgICB9CiB9CiAKQEAgLTgwLDMzICs3NywzMCBAQCBz
dGF0aWMgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5k
b3dWaWV3KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQ
NjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJl
OgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNh
c2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgot
ICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNTY3JvbGxXaGVlbDogewotICAg
ICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9t
IGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgotICAgICAg
ICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5
IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93LgotICAgICAgICAgICAgTlNQb2lu
dCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKLSAgICAgICAgICAgIGlmICh3
aW5kb3dWaWV3KQotICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW3dpbmRvd1ZpZXcgY29udmVy
dFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9p
bnQobG9jYXRpb24pOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQoKTsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hl
ZWw6IHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUg
Ym90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgor
ICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQg
YnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCisgICAgICAgIE5TUG9pbnQg
bG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIGlmICh3aW5kb3dW
aWV3KQorICAgICAgICAgICAgbG9jYXRpb24gPSBbd2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9j
YXRpb24gZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgcmV0dXJuIEludFBvaW50KGxvY2F0aW9uKTsK
KyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CiAgICAgfQog
fQogCkBAIC0xMTQsNzIgKzEwOCw2MyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91c2VCdXR0b25G
b3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewog
I2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJl
dHVybiBMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIE5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIExlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gUmlnaHRC
dXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBOb0J1dHRvbjsKICAgICB9CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBl
IG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6
Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92
ZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJl
dHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2Vk
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3Nl
ZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKIHN0YXRp
YyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNs
aWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVy
biBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogfQogCkBAIC00OTcsMjggKzQ4MiwyOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktl
eUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVGbGFnc0NoYW5nZWQpIHsKICAgICAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsK
LSAgICAgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgICAgIGNhc2Ug
NTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2siKTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgICAgIGNhc2Ug
NjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0g
ICAgICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgICAgICByZXR1cm4g
U3RyaW5nKCJBbHQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTk6IC8v
IExlZnQgQ3RybAotICAgICAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgNTQ6IC8v
IFJpZ2h0IENvbW1hbmQKKyAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
ICAgICByZXR1cm4gU3RyaW5nKCJNZXRhIik7CisKKyAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xv
Y2sKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7CisKKyAgICAgICAgY2Fz
ZSA1NjogLy8gTGVmdCBTaGlmdAorICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKworICAgICAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAorICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoIkFsdCIpOworCisgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgICAg
ICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDb250
cm9sIik7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgCkBAIC01MzQsNDQgKzUxOSwzOCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5T
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBl
dmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246
Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAg
ICAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
RmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TTnVtZXJpY1BhZEtleU1hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFy
Ci0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBj
YXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8g
KwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAg
ICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0
OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAg
ICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4
OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAg
ICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAg
ICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVy
CisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAx
CisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0
CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3
CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNTg1LDEwICs1NjQs
NyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAv
LyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29k
ZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlz
LiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVu
dCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NL
ZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlE
b3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9
PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXAp
KSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdF
UlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5T
U3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3Ro
XSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0p
IDogMDsKQEAgLTY0NiwzNSArNjIyLDMyIEBAIGRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3
MChOU0V2ZW50KiBldmVudCkKIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2ZW50
IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZs
YWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtl
eVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNzZXMg
Ym90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0IHJl
bGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNv
ZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2FzZSA1
NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2Fz
ZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0g
ICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNr
KSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAg
ICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0
cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9u
S2V5TWFzaykgPT0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIDU0
OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21t
YW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1No
aWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQg
QWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2
MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAg
Kzc5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9rZXkgPSBrZXlGb3JLZXlFdmVudChldmVudCk7
CiAgICAgICAgIG1fY29kZSA9IGNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIG1fYXV0b1JlcGVhdCA9
IFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50
IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwog
ICAgICAgICBtX2lzS2V5cGFkID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgICAgIG1faXNT
eXN0ZW1LZXkgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFj
LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
bW0KaW5kZXggOTFjYmVkZDBjZGEwNzA2NWIzYmYzZjE3MDE1OGYxZDYyNzczMTgzZi4uNjRkODU0
YThlODRjODYyYTkwYWJkNDU3NWNlNjNlYmVlNGQyZWUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtNDIsNiArNDIsNyBAQAog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIC8vIEZJWE1FOiBUaGVyZSBh
cmUgcmVwYWludGluZyBwcm9ibGVtcyBkdWUgdG8gQXF1YSBzY3JvbGwgYmFyIGJ1dHRvbnMnIHZp
c3VhbCBvdmVyZmxvdy4KIApAQCAtMTM5LDE4ICsxNDAsMTUgQEAgc3RhdGljIFNjcm9sbGJhckJ1
dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVF
bmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoY29udHJvbFNpemUpIHsKICAgICBj
YXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6
ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGNhc2UgU21hbGxT
Y3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIH0KIAogdm9pZCBT
Y3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggMDI0NzJjOWE2
OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4uYjEwMDQxYjVlYjE3MmY0MzcyYzQwMDU1
YjE2OTk3YzEzOTRjMjNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHN0YXRpYyBOU1JlY3QgZm9jdXNSaW5nQ2xpcFJlY3Q7CiBzdGF0aWMgQk9PTCB0aGVtZVdp
bmRvd0hhc0tleUFwcGVhcmFuY2U7CkBAIC02NywxMSArNjgsOCBAQCAtIChOU1dpbmRvdyAqKXdp
bmRvdwogewogICAgIC8vIFVzaW5nIGRlZmVyOllFUyBwcmV2ZW50cyB1cyBmcm9tIHdhc3Rpbmcg
YW55IHdpbmRvdyBzZXJ2ZXIgcmVzb3VyY2VzIGZvciB0aGlzIHdpbmRvdywgc2luY2Ugd2UncmUg
bm90IGFjdHVhbGx5CiAgICAgLy8gZ29pbmcgdG8gZHJhdyBpbnRvIGl0LiBUaGUgb3RoZXIgYXJn
dW1lbnRzIG1hdGNoIHdoYXQgeW91IGdldCB3aGVuIGNhbGxpbmcgLVtOU1dpbmRvdyBpbml0XS4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzdGF0aWMgV2ViQ29yZVRo
ZW1lV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVUaGVtZVdpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCkKLSAgICAgICAgc3R5bGVN
YXNrOk5TVGl0bGVkV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrVGl0bGVkIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpZRVNdOwogICAgIHJldHVybiB3aW5kb3c7CiB9CiAKQEAgLTE0NCwxNSArMTQyLDEyIEBA
IFRoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKIAogc3RhdGljIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAg
ICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNp
emU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICBpZiAoZm9udFNp
emUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWlu
aTsKIH0KIAogc3RhdGljIExlbmd0aFNpemUgc2l6ZUZyb21OU0NvbnRyb2xTaXplKE5TQ29udHJv
bFNpemUgbnNDb250cm9sU2l6ZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvciwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMpCkBAIC0xNzUs
MTYgKzE3MCwxMyBAQCBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbUZvbnQoY29uc3QgRm9udENh
c2NhZGUmIGZvbnQsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZAogCiBzdGF0aWMgQ29udHJvbFNp
emUgY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4m
IHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChtaW5ab29tZWRT
aXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6
ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3IpICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0
KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwot
ICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tO
U1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5a
b29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNTbWFsbENv
bnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19j
YXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tRmFjdG9y
KQorICAgICAgICAmJiBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53
aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0
aCgpICogem9vbUZhY3RvcikKKyAgICAgICAgJiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4g
TlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldENvbnRyb2xTaXplKE5TQ2Vs
bCogY2VsbCwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNp
emUmIG1pblpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpCkBAIC00ODAsMTAgKzQ3Miw3IEBA
IHN0YXRpYyB2b2lkIHNldFVwQnV0dG9uQ2VsbChOU0J1dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTCiB7CiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUg
YmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFpbnRpbmcgaW50by4KICAgICBjb25zdCBz
dGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcyA9IGJ1dHRvblNpemVzKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFy
dCB8fCB6b29tZWRTaXplLmhlaWdodCgpID4gYnV0dG9uU2l6ZXMoKVtOU1JlZ3VsYXJDb250cm9s
U2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRTaXplLmhlaWdo
dCgpID4gYnV0dG9uU2l6ZXMoKVtOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSB7CiAgICAgICAgIC8vIFVzZSB0aGUgc3F1YXJlIGJ1dHRvbgogICAgICAgICBpZiAo
W2NlbGwgYmV6ZWxTdHlsZV0gIT0gTlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZSkKICAgICAg
ICAgICAgIFtjZWxsIHNldEJlemVsU3R5bGU6TlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZV07
CkBAIC01NzksMTUgKzU2OCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAz
PiYgc3RlcHBlclNpemVzKCkKIC8vIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNzIHRoYW4gdGhl
IGNvcnJlc3BvbmRpbmcgdGV4dCBmaWVsZCBoZWlnaHQsCiBzdGF0aWMgTlNDb250cm9sU2l6ZSBz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQu
cGl4ZWxTaXplKCk7CiAgICAgaWYgKGZvbnRTaXplID49IDE4KQotICAgICAgICByZXR1cm4gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsK
ICAgICBpZiAoZm9udFNpemUgPj0gMTMpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNp
emU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBO
U0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xT
dGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqKQpAQCAtNjAwLDE1ICs1
ODYsMTIgQEAgc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGRyYXdJbmZvLnN0YXRlID0gY29u
dmVydENvbnRyb2xTdGF0ZXNUb1RoZW1lRHJhd1N0YXRlKGtUaGVtZUluY0RlY0J1dHRvbiwgc3Rh
dGVzKTsKICAgICBkcmF3SW5mby5hZG9ybm1lbnQgPSBrVGhlbWVBZG9ybm1lbnREZWZhdWx0Owog
ICAgIENvbnRyb2xTaXplIGNvbnRyb2xTaXplID0gY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKHN0
ZXBwZXJTaXplcygpLCBJbnRTaXplKHpvb21lZFJlY3Quc2l6ZSgpKSwgem9vbUZhY3Rvcik7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xTaXplID09
IE5TU21hbGxDb250cm9sU2l6ZSkKKyAgICBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6
ZVNtYWxsKQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uU21hbGw7
Ci0gICAgZWxzZSBpZiAoY29udHJvbFNpemUgPT0gTlNNaW5pQ29udHJvbFNpemUpCisgICAgZWxz
ZSBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZU1pbmkpCiAgICAgICAgIGRyYXdJbmZv
LmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b25NaW5pOwogICAgIGVsc2UKICAgICAgICAgZHJhd0lu
Zm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIAogICAgIEludFJlY3QgcmVjdCh6b29tZWRSZWN0KTsKICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CkBAIC03NDksMTIgKzczMiw5IEBAIExlbmd0
aFNpemUgVGhlbWVNYWM6Om1pbmltdW1Db250cm9sU2l6ZShDb250cm9sUGFydCBwYXJ0LCBjb25z
dCBGb250Q2FzY2FkZSYgZm9uCiAgICAgICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICAgICAgICAg
IHJldHVybiBMZW5ndGhTaXplKExlbmd0aCgwLCBGaXhlZCksIExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KDE1ICogem9vbUZhY3RvciksIEZpeGVkKSk7CiAgICAgICAgIGNhc2UgSW5uZXJTcGluQnV0
dG9uUGFydDp7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAg
ICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU01pbmlDb250cm9sU2l6ZV07CisgICAg
ICAgICAgICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU0NvbnRyb2xTaXplTWluaV07
CiAgICAgICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZShMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pihi
YXNlLndpZHRoKCkgKiB6b29tRmFjdG9yKSwgRml4ZWQpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oYmFzZS5oZWlnaHQoKSAqIHpvb21GYWN0
b3IpLCBGaXhlZCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gVGhlbWU6Om1pbmltdW1Db250cm9s
U2l6ZShwYXJ0LCBmb250LCB6b29tRmFjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KaW5kZXggZDNiOWVlOThkZjk0MjBjY2Q3MTE2YjA0MDM1NjM4M2NmYzc0NmY5
MC4uYjQ4NjA2Y2I1YTc0NGQ4NzBiODYxOTM0MzY2Mjg5OGJhOWZmNGVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxWaWRlb0Vs
ZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0
Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtNzMsMTAgKzc0LDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdwogLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0KWNv
bnRlbnRSZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilhU3R5bGUgYmFja2luZzooTlNCYWNraW5n
U3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxhZwogewogICAgIFVOVVNFRF9Q
QVJBTShhU3R5bGUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6TlNC
b3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENv
bnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3MgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmZsYWddOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKIApAQCAtMTIyLDE1ICsxMjAsMTIgQEAgLSAoQk9PTClyZXNpZ25G
aXJzdFJlc3BvbmRlcgogCiAtIChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICop
ZXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBCbG9j
ayBhbGwgY29tbWFuZCBrZXkgZXZlbnRzIHdoaWxlIHRoZSBmdWxsc2NyZWVuIHdpbmRvdyBpcyB1
cC4KLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5
cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotICAg
IGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spKQorICAgIGlm
ICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSkK
ICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIHJl
dHVybiBZRVM7CiB9CiAKQEAgLTE0NSwxMSArMTQwLDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIKIAogLSAoaWQpaW5pdAogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dl
YlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01h
a2VSZWN0KDAsIDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCB3aW5kb3dXaWR0aCwg
d2luZG93SGVpZ2h0KSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBp
bml0V2l0aFdpbmRvdzp3aW5kb3ddOwogICAgIFt3aW5kb3cgc2V0RGVsZWdhdGU6c2VsZl07CiAg
ICAgW3dpbmRvdyByZWxlYXNlXTsKQEAgLTE4OCwyMCArMTc5LDE3IEBAIC0gKHZvaWQpa2V5RG93
bjooTlNFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICBjYXNlICcgJzoKICAgICAgICAgICAgICAg
ICBbc2VsZiB0b2dnbGVQbGF5aW5nOm5pbF07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKLSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNBbHRlcm5hdGVLZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAg
ICBbc2VsZiBzZXRWb2x1bWU6W3NlbGYgbWF4Vm9sdW1lXV07CiAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBpbmNyZW1lbnRWb2x1bWVdOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToK
LSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzZXRWb2x1
bWU6MF07CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBk
ZWNyZW1lbnRWb2x1bWVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC0zNzgsMTcgKzM2NiwxMSBAQCAtICh2b2lkKXdpbmRvd0RpZExvYWQKICAgICBbY29u
dGVudFZpZXcgYWRkU3VidmlldzpfdGltZWxpbmVdOwogCiAgICAgX2VsYXBzZWRUaW1lVGV4dCA9
IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZVRleHRG
aWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtf
ZWxhcHNlZFRpbWVUZXh0IHNldEFsaWdubWVudDpOU0xlZnRUZXh0QWxpZ25tZW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX2VsYXBzZWRUaW1lVGV4dCBzZXRBbGlnbm1l
bnQ6TlNUZXh0QWxpZ25tZW50TGVmdF07CiAgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X2Vs
YXBzZWRUaW1lVGV4dF07CiAKICAgICBfcmVtYWluaW5nVGltZVRleHQgPSBjcmVhdGVUaW1lVGV4
dEZpZWxkKE5TTWFrZVJlY3Qod2luZG93V2lkdGggLSB0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiAtIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0
RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX3Jl
bWFpbmluZ1RpbWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAg
W2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X3JlbWFpbmluZ1RpbWVUZXh0XTsKIAogICAgIFt3aW5k
b3cgcmVjYWxjdWxhdGVLZXlWaWV3TG9vcF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQppbmRleCA0NTk4YTAzZWQyZmEzMjE1MGU2NGFm
OWNiYjY0NTk5NDY5ZmRkZjc3Li43ZGU1ZWI1MzdjN2ZhMDIzNTIyYmNlZjY4MzMyM2IyNTg0ZWNj
NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5p
bWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmlt
YXRpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zOCwxMCArMzksNyBAQCBzdGF0aWMg
Y29uc3QgQ0dGbG9hdCBzbG93TW90aW9uRmFjdG9yID0gMTA7CiAKIHN0YXRpYyBOU1RpbWVJbnRl
cnZhbCBXZWJXaW5kb3dBbmltYXRpb25EdXJhdGlvbkZyb21EdXJhdGlvbihOU1RpbWVJbnRlcnZh
bCBkdXJhdGlvbikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBy
ZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlN
YXNrKSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1v
ZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSA/IGR1cmF0aW9uICogc2xv
d01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwogfQogCiBzdGF0aWMgTlNSZWN0IHNjYWxlZFJlY3Qo
TlNSZWN0IF9pbml0aWFsRnJhbWUsIE5TUmVjdCBfZmluYWxGcmFtZSwgQ0dGbG9hdCBmYWN0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggM2VkZGMw
M2U0ZDhlOWY2MzUxN2M1MjcxZjIwMWI1Njc4MjJiOTAyOC4uODU3NjQyMzUyM2E5MGM4YTUyNTE4
MDU0YWQ5MmI1MTQ0ZjQxOTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtODEsNiArODEsNyBAQAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgog
I2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNpbXBvcnQgPG1hdGguaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgRU5BQkxFKE1FVEVS
X0VMRU1FTlQpCiAjaW1wb3J0ICJSZW5kZXJNZXRlci5oIgpAQCAtMzc5LDIyICszODAsMTMgQEAg
dm9pZCBSZW5kZXJUaGVtZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENT
U1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm8KICAgICAgICAgICAgIGZvbnROYW1lID0gQXRvbWljU3Ry
aW5nKCItYXBwbGUtc3RhdHVzLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNaW5p
Q29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAg
IGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZv
ckNvbnRyb2xTaXplOk5TTWluaUNvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0Zv
bnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplTWluaV1dOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0
ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF1dOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDb250cm9sOgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lz
dGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNSZWd1
bGFyQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1bGFyXV07CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZv
bnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZV1dOwpAQCAtNzc3LDMwICs3NjksMjQgQEAg
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvKSBjb25zdAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVG
b3JGb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpbnQgZm9udFNp
emUgPSBzdHlsZS5mb250U2l6ZSgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGlmIChmb250U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRy
b2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZv
bnRTaXplID49IDExKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJl
dHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6
ZU1pbmk7CiB9CiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9y
Q2VsbChOU0NlbGwqLCBjb25zdCBJbnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6
ZSwgZmxvYXQgem9vbUxldmVsKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXpl
c1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21MZXZlbCkKLSAgICAgICAgJiYg
bWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tTGV2ZWwpCisgICAgICAg
ICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xT
aXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVJlZ3VsYXI7CiAKLSAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0
PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxldmVsKQotICAg
ICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFs
bENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1Nt
YWxsQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lkdGgoKSAqIHpvb21MZXZlbCkKKyAgICAg
ICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJv
bFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVNtYWxsOwogCi0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAog
dm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBJ
bnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSwgZmxvYXQgem9vbUxldmVsKQpA
QCAtODU3LDE1ICs4NDMsMTIgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250
cm9sU2l6ZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmIHN0eWxlLAogCiBOU0NvbnRyb2xT
aXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0gICAgaWYgKGZvbnRTaXpl
ID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9s
U2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAoZm9u
dFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250
cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250
cm9sU2l6ZVJlZ3VsYXJdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7Cisg
ICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpO
U0NvbnRyb2xTaXplU21hbGxdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOwor
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6
cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiByKQpAQCAtMTE0NywxMCArMTEzMCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50UHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgY29uc3QgYXV0byYgcmVuZGVyUHJvZ3Jlc3MgPSBkb3du
Y2FzdDxSZW5kZXJQcm9ncmVzcz4ocmVuZGVyT2JqZWN0KTsKICAgICBISVRoZW1lVHJhY2tEcmF3
SW5mbyB0cmFja0luZm87CiAgICAgdHJhY2tJbmZvLnZlcnNpb24gPSAwOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU1JlZ3VsYXJD
b250cm9sU2l6ZSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoY29udHJv
bFNpemUgPT0gTlNDb250cm9sU2l6ZVJlZ3VsYXIpCiAgICAgICAgIHRyYWNrSW5mby5raW5kID0g
cmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBrVGhlbWVMYXJnZUluZGV0ZXJtaW5hdGVC
YXIgOiBrVGhlbWVMYXJnZVByb2dyZXNzQmFyOwogICAgIGVsc2UKICAgICAgICAgdHJhY2tJbmZv
LmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZU1lZGl1bUluZGV0
ZXJtaW5hdGVCYXIgOiBrVGhlbWVNZWRpdW1Qcm9ncmVzc0JhcjsKQEAgLTE0MzgsMTUgKzE0MTgs
MTIgQEAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgUmVuZGVyVGhlbWVNYWM6OnBvcHVw
TWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICBOU1BvcFVwQnV0dG9uQ2VsbCogcG9w
dXBCdXR0b24gPSB0aGlzLT5wb3B1cEJ1dHRvbigpOwogICAgIE5TQ29udHJvbFNpemUgc2l6ZSA9
IGNvbnRyb2xTaXplRm9yQ2VsbChwb3B1cEJ1dHRvbiwgcG9wdXBCdXR0b25TaXplcygpLCByZWN0
LnNpemUoKSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICBzd2l0Y2ggKHNpemUpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TUmVndWxhckNvbnRy
b2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVJlZ3VsYXI6CiAgICAgICAgIHJldHVybiBQ
b3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsKLSAgICBjYXNlIE5TU21hbGxDb250
cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVTbWFsbDoKICAgICAgICAgcmV0dXJuIFBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw7Ci0gICAgY2FzZSBOU01pbmlDb250cm9s
U2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVNaW5pOgogICAgICAgICByZXR1cm4gUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU5vcm1hbDsKICAgICB9CkBAIC0yMDU1LDEyICsyMDMyLDkgQEAgTlNTbGlkZXJDZWxsKiBS
ZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJIb3Jpem9udGFsKCkgY29uc3QKIHsKICAgICBpZiAo
IW1fc2xpZGVyVGh1bWJIb3Jpem9udGFsKSB7CiAgICAgICAgIG1fc2xpZGVyVGh1bWJIb3Jpem9u
dGFsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxvY10gaW5pdF0pOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwu
Z2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRlclRo
dW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdOwor
ICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1Ns
aWRlclR5cGVMaW5lYXJdOworICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkg
c2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1
bWJIb3Jpem9udGFsLmdldCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJp
b3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIHJldHVybiBt
X3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKTsKQEAgLTIwNzAsMTEgKzIwNDQsOCBAQCBOU1Ns
aWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYlZlcnRpY2FsKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fc2xpZGVyVGh1bWJWZXJ0aWNhbCkgewogICAgICAgICBtX3NsaWRlclRodW1i
VmVydGljYWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0XSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRlclRodW1iVmVydGlj
YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRl
clRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0
aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFtt
X3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRGb2N1c1JpbmdU
eXBlOk5TRm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXggZjJhMzU5NzNhNzFlMDY4
MjYwYTkxYzk2N2QyOTA1MGQyZWRlNzYwZC4uYTY5ZjZmMWZhNTBhOWE0YWRkODYzZjQ3OTViYzFk
NzEyZjBiYTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW0KQEAgLTc2LDYgKzc2LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RF
eHRyYXMuaCIKQEAgLTE3MywxMyArMTc0LDE0IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93
UmVmOihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAK
ICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBzdHlsZSBtYXNrLgogICAgIHN0eWxlTWFz
ayA9IFdLQ2FyYm9uV2luZG93TWFzaygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRl
KSBzdHlsZU1hc2sgfD0gTlNDbG9zYWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0F0dHJp
YnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKSBzdHlsZU1hc2sgfD0gTlNSZXNpemFi
bGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBz
ZSkgc3R5bGVNYXNrIHw9IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5k
b3dGZWF0dXJlcyAmIGtXaW5kb3dIYXNUaXRsZUJhcikgc3R5bGVNYXNrIHw9IE5TVGl0bGVkV2lu
ZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAod2luZG93QXR0
cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0dHJpYnV0ZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9
IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBr
V2luZG93UmVzaXphYmxlQXR0cmlidXRlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dT
dHlsZU1hc2tSZXNpemFibGU7CisgICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0NhbkNv
bGxhcHNlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6
YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpCisgICAg
ICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZDsKIAogICAgIG9zU3RhdHVz
ID0gR2V0V2luZG93TW9kYWxpdHkoX3dpbmRvd1JlZiwgJndpbmRvd01vZGFsaXR5LCBOVUxMKTsK
ICAgICBpZiAob3NTdGF0dXMgIT0gbm9FcnIpIHsKQEAgLTM5MywxOCArMzk1LDEyIEBAIC0gKHZv
aWQpc2VuZFN1cGVyRXZlbnQ6KE5TRXZlbnQgKilpbkV2ZW50IHsKICAgICAvLyBJZ25vcmUgc29t
ZSB1bmtub3duIGV2ZW50IHRoYXQgZ2V0cyBzZW50IHdoZW4gTlNUZXh0Vmlld3MgaW4gcHJpbnRp
bmcgYWNjZXNzb3J5IHZpZXdzIGFyZSBmb2N1c2VkLiAgTS5QLiBOb3RpY2UgLSAxMi83LzAwCiAg
ICAgQk9PTCBpZ25vcmVFdmVudCA9IE5POwogICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IFtp
bkV2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
IChldmVudFR5cGU9PU5TU3lzdGVtRGVmaW5lZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZpbmVkKSB7CiAg
ICAgICAgIHNob3J0IGV2ZW50U3VidHlwZSA9IFtpbkV2ZW50IHN1YnR5cGVdOwotICAgICAgICBp
ZiAoZXZlbnRTdWJ0eXBlPT03KSB7CisgICAgICAgIGlmIChldmVudFN1YnR5cGUgPT0gNykgewog
ICAgICAgICAgICAgaWdub3JlRXZlbnQgPSBZRVM7CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBOU0tleURv
d24pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICB9IGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAgICAgICAgLy8gSGFuZGxlIGNvbW1hbmQt
c3BhY2UgYXMgW05TQXBwIHNlbmRFdmVudDpdIGRvZXMuCiAgICAgICAgIGlmIChbTlNJbnB1dENv
bnRleHQgcHJvY2Vzc0lucHV0S2V5QmluZGluZ3M6aW5FdmVudF0pIHsKICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCmluZGV4IGQxYzU1MGYxZmNl
NzRkZGVlMTI3MTRlYmEzM2Q4NzNkMGZjNjMyOTIuLjZmNTM1ZDQwMzkxY2E3ZDA1NDU5YmRiZjE2
MzRjMzY0OGM1ZjI3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9ISVdl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQpAQCAt
MzcsNiArMzcsNyBAQAogI2ltcG9ydCAiV2ViS2l0LmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2Ug
TlNXaW5kb3cgKEFwcEtpdFNlY3JldHNISVdlYlZpZXdLbm93cykKIC0gKHZvaWQpX3JlbW92ZVdp
bmRvd1JlZjsKQEAgLTUzOSw3ICs1NDAsNyBAQCBDb250ZXh0TWVudUNsaWNrKCBISVdlYlZpZXcq
IGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiAgICAgTlNQb2ludCBsb2NhdGlvbiA9IE5TTWFr
ZVBvaW50KHBvaW50LngsIFt3aW5kb3cgZnJhbWVdLnNpemUuaGVpZ2h0IC0gcG9pbnQueSk7CiAg
ICAgCiAgICAgLy8gTWFrZSB1cCBhbiBldmVudCB3aXRoIHRoZSBwb2ludCBhbmQgc2VuZCBpdCB0
byB0aGUgd2luZG93LgotICAgIE5TRXZlbnQgKmtpdEV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24KKyAgICBOU0V2ZW50ICpraXRFdmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246bG9jYXRpb24KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0RXZlbnRU
aW1lKGluRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TRXZl
bnRFeHRyYXMubSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCmlu
ZGV4IGVlYjhjOTIxZDk0YjU4YmU0YmZjZmJmMTM1NGM4YWMwNWU1NGZjMGYuLmQ4ZmIyYTFmNjE5
YTkzNDVjOGQ2MzA3YzUzMzBlODVlYjBmMDY5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2Mv
V2ViTlNFdmVudEV4dHJhcy5tCkBAIC0yOSwxNiArMjksMTQgQEAKICNpZiAhUExBVEZPUk0oSU9T
KQogCiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViTlNFdmVudEV4dHJhcy5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbXBsZW1lbnRh
dGlvbiBOU0V2ZW50IChXZWJFeHRyYXMpCiAKIC0oQk9PTClfd2ViX2lzS2V5RXZlbnQ6KHVuaWNo
YXIpa2V5CiB7CiAgICAgaW50IHR5cGUgPSBbc2VsZiB0eXBlXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAodHlwZSAhPSBOU0tleURvd24gJiYgdHlwZSAhPSBO
U0tleVVwKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICh0eXBlICE9IE5T
RXZlbnRUeXBlS2V5RG93biAmJiB0eXBlICE9IE5TRXZlbnRUeXBlS2V5VXApCiAgICAgICAgIHJl
dHVybiBOTzsKICAgICAKICAgICBOU1N0cmluZyAqY2hhcnMgPSBbc2VsZiBjaGFyYWN0ZXJzSWdu
b3JpbmdNb2RpZmllcnNdOwpAQCAtNjcsMTAgKzY1LDcgQEAgLSAoQk9PTClfd2ViX2lzRXNjYXBl
S2V5RXZlbnQKIAogLSAoQk9PTClfd2ViX2lzT3B0aW9uVGFiS2V5RXZlbnQKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gKFtzZWxmIG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSAmJiBbc2VsZiBfd2ViX2lzVGFiS2V5RXZlbnRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW3NlbGYgbW9kaWZpZXJG
bGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSAmJiBbc2VsZiBfd2ViX2lzVGFiS2V5
RXZlbnRdOwogfQogCiAtIChCT09MKV93ZWJfaXNSZXR1cm5PckVudGVyS2V5RXZlbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYk5TVmlld0V4dHJhcy5tCmluZGV4IDNkYzhmN2Y3YzFmYTQ2NmUx
YzdiYjY2MzUwNzEyMDJiMGJmODAyZTcuLmZkNzMzZTdlNWUwZDIwYmE0ODNjOTgyYTFjOTZhNTM2
NDc1YTY4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0
cmFzLm0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1ZpZXdFeHRyYXMubQpAQCAt
MzgsNiArMzgsNyBAQAogCiAjaWYgIVBMQVRGT1JNKElPUykKICNpbXBvcnQgPFdlYktpdExlZ2Fj
eS9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04
MiwxMiArODMsOSBAQCAtIChCT09MKV93ZWJfZHJhZ1Nob3VsZEJlZ2luRnJvbU1vdXNlRG93bjoo
TlNFdmVudCAqKW1vdXNlRG93bkV2ZW50CiAgICAgTlNFdmVudCAqbmV4dEV2ZW50LCAqZmlyc3RF
dmVudCwgKmRyYWdFdmVudCwgKm1vdXNlVXA7CiAgICAgQk9PTCBkcmFnSXQ7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW21vdXNlRG93bkV2ZW50IHR5cGVd
ICE9IE5TTGVmdE1vdXNlRG93bikgeworICAgIGlmIChbbW91c2VEb3duRXZlbnQgdHlwZV0gIT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CiAgICAgICAgIHJldHVybiBOTzsKICAgICB9Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBuZXh0RXZlbnQgPSBuaWw7CiAgICAg
Zmlyc3RFdmVudCA9IG5pbDsKQEAgLTk1LDkgKzkzLDcgQEAgLSAoQk9PTClfd2ViX2RyYWdTaG91
bGRCZWdpbkZyb21Nb3VzZURvd246KE5TRXZlbnQgKiltb3VzZURvd25FdmVudAogICAgIG1vdXNl
VXAgPSBuaWw7CiAgICAgZHJhZ0l0ID0gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICB3aGlsZSAoKG5leHRFdmVudCA9IFtbc2VsZiB3aW5kb3ddIG5leHRFdmVu
dE1hdGNoaW5nTWFzazooTlNMZWZ0TW91c2VVcE1hc2sgfCBOU0xlZnRNb3VzZURyYWdnZWRNYXNr
KQorICAgIHdoaWxlICgobmV4dEV2ZW50ID0gW1tzZWxmIHdpbmRvd10gbmV4dEV2ZW50TWF0Y2hp
bmdNYXNrOihOU0V2ZW50TWFza0xlZnRNb3VzZVVwIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEcmFn
Z2VkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW50aWxEYXRlOmV4cGlyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluTW9kZTpOU0V2ZW50VHJhY2tpbmdSdW5Mb29wTW9kZQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXF1ZXVl
OllFU10pICE9IG5pbCkgewpAQCAtMTA1LDcgKzEwMSw3IEBAIC0gKEJPT0wpX3dlYl9kcmFnU2hv
dWxkQmVnaW5Gcm9tTW91c2VEb3duOihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAgICAgICAg
ICAgIGZpcnN0RXZlbnQgPSBuZXh0RXZlbnQ7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoW25l
eHRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURyYWdnZWQpIHsKKyAgICAgICAgaWYgKFtuZXh0
RXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkKSB7CiAgICAgICAgICAg
ICBmbG9hdCBkZWx0YXggPSBBQlMoW25leHRFdmVudCBsb2NhdGlvbkluV2luZG93XS54IC0gW21v
dXNlRG93bkV2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLngpOwogICAgICAgICAgICAgZmxvYXQgZGVs
dGF5ID0gQUJTKFtuZXh0RXZlbnQgbG9jYXRpb25JbldpbmRvd10ueSAtIFttb3VzZURvd25FdmVu
dCBsb2NhdGlvbkluV2luZG93XS55KTsKICAgICAgICAgICAgIGRyYWdFdmVudCA9IG5leHRFdmVu
dDsKQEAgLTExOSwxMiArMTE1LDExIEBAIC0gKEJPT0wpX3dlYl9kcmFnU2hvdWxkQmVnaW5Gcm9t
TW91c2VEb3duOihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAgICAgICAgICAgICAgICBkcmFn
SXQgPSBZRVM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZSBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZVVwKSB7CisgICAgICAg
IH0gZWxzZSBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0V2ZW50TWFza0xlZnRNb3VzZVVwKSB7
CiAgICAgICAgICAgICBtb3VzZVVwID0gbmV4dEV2ZW50OwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICAvLyBT
aW5jZSB3ZSd2ZSBiZWVuIGRlcXVldWluZyB0aGUgZXZlbnRzIChJZiB3ZSBkb24ndCwgd2UnbGwg
bmV2ZXIgc2VlIHRoZSBtb3VzZSB1cC4uLiksCiAgICAgLy8gd2UgbmVlZCB0byBwdXNoIHNvbWUg
b2YgdGhlIGV2ZW50cyBiYWNrIG9uLiAgSXQgbWFrZXMgc2Vuc2UgdG8gcHV0IHRoZSBmaXJzdCBh
bmQgbGFzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYWQ1OTM2OTZkNGI5YTk3NjZhM2Ni
Y2UwM2VhZDZlYWZkMDc5NTc5Li42ZDA2YzcwMTBjNTJiODFkNTMxNTFlMTg1MmQ0MTQ0MWI5MTI5
ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xs
ZXIuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9B
cHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIGV4dGVybiAiQyIgewogI2ltcG9y
dCAiV2ViS2l0UGx1Z2luSG9zdC5oIgpAQCAtMjMwLDEwICsyMzEsNyBAQCB2b2lkIE5ldHNjYXBl
UGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1fcGxhY2Vob2xkZXJX
aW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwogICAgIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBh
ZG9wdE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dN
YXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhb
W1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNN
YWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNz
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKIAogICAgIG1fYWN0
aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVBY3RpdmVOb3RpZmljYXRp
b24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nQmxvY2s6XihO
U05vdGlmaWNhdGlvbiAqKXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKTsgfV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlhZTdhMTc3ZTQ1MTJmNDU2
NDFkYWEyNDM3ZDRjOS4uYWEwZGY1NDI0YTQyNmZkM2FkNzgzNDM0NmNkN2IyYWQ0YzI5NTUzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtNjYsNiArNjYsNyBAQAogI2ltcG9y
dCA8dXRpbGl0eT4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3Rm
L1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRp
YmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIGV4
dGVybiAiQyIgewpAQCAtNDY1LDE1ICs0NjYsMTIgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHk6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludCBrZXlDb2QK
IHsKICAgICBOU0RhdGEgKmNoYXJhY3RlcnNEYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiZj
aGFyYWN0ZXIgbGVuZ3RoOjFdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CiAgICAgX1dLUEhQbHVnaW5JbnN0YW5jZUtleWJvYXJkRXZlbnQobV9wbHVnaW5Ib3N0UHJveHkt
PnBvcnQoKSwgbV9wbHVnaW5JRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0sIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtleURvd24sIE5TQ29tbWFuZEtl
eU1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBDb2NvYUV2ZW50
S2V5RG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3Ro
XSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFy
Kj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkp
LCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmFsc2UsIGtleUNvZGUsIGNoYXJhY3Rlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpmbGFnc0No
YW5nZWQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXgg
Mzc2NjcyYjY4NjczN2M3NzNlZGM2ZGY2ODRiMjg3OTgyOTY0ZjU0MS4uZGZjOGNjYTcyODI0OGE4
OTZhODEzZTZmNzkyNDJjMDk0MmIyNWM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5t
bQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQg
PHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC00NDMsMTAgKzQ0
NCw3IEBAIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0CiB7CiAgICAgaWYgKF9jYWNoZWRT
bmFwc2hvdCkgewogICAgICAgICBOU1JlY3Qgc291cmNlUmVjdCA9IHsgTlNaZXJvUG9pbnQsIFtf
Y2FjaGVkU25hcHNob3QuZ2V0KCkgc2l6ZV0gfTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0OltzZWxm
IGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VP
dmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
X2NhY2hlZFNuYXBzaG90LmdldCgpIGRyYXdJblJlY3Q6W3NlbGYgYm91bmRzXSBmcm9tUmVjdDpz
b3VyY2VSZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFj
dGlvbjoxXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJD
YXJib24ubW0KaW5kZXggZjJkN2U5ZjQxZjZlYmQ1YjljYjgzNWVkNjJkYzEzYTFmYWEyZDg3YS4u
ZjUwOWJkMDFmNWMzZjQwNDc3MmE0NDc5ZmE0MTJiNWEyNWRjNDAzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZl
bnRIYW5kbGVyQ2FyYm9uLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJOZXRzY2Fw
ZVBsdWdpblZpZXcuaCIKICNpbXBvcnQgIldlYktpdExvZ2dpbmcuaCIKICNpbXBvcnQgIldlYktp
dFN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAKIC8vIFNlbmQgbnVsbCBldmVudHMgNTAgdGltZXMgYSBzZWNvbmQg
d2hlbiBhY3RpdmUsIHNvIHBsdWctaW5zIGxpa2UgRmxhc2ggZ2V0IGhpZ2ggZnJhbWUgcmF0ZXMu
CiAjZGVmaW5lIE51bGxFdmVudEludGVydmFsQWN0aXZlICAgICAgICAgMC4wMgpAQCAtNjIsMjIg
KzYzLDIyIEBAIHN0YXRpYyBFdmVudE1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChOU0V2ZW50
ICpldmVudCkKICAgICAKICAgICBtb2RpZmllcnMgPSAwOwogICAgIAotICAgIGlmIChldmVudFR5
cGUgIT0gTlNMZWZ0TW91c2VEb3duICYmIGV2ZW50VHlwZSAhPSBOU1JpZ2h0TW91c2VEb3duKQor
ICAgIGlmIChldmVudFR5cGUgIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duICYmIGV2ZW50VHlw
ZSAhPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duKQogICAgICAgICBtb2RpZmllcnMgfD0gYnRu
U3RhdGU7CiAgICAgCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKQor
ICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpCiAgICAg
ICAgIG1vZGlmaWVycyB8PSBjbWRLZXk7CiAgICAgCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U1NoaWZ0S2V5TWFzaykKKyAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZs
YWdTaGlmdCkKICAgICAgICAgbW9kaWZpZXJzIHw9IHNoaWZ0S2V5OwogCi0gICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0FscGhhU2hpZnRLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYg
TlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrKQogICAgICAgICBtb2RpZmllcnMgfD0gYWxwaGFM
b2NrOwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAg
aWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBt
b2RpZmllcnMgfD0gb3B0aW9uS2V5OwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbnRy
b2xLZXlNYXNrIHx8IGV2ZW50VHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duKQorICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgfHwgZXZlbnRUeXBlID09IE5T
RXZlbnRUeXBlUmlnaHRNb3VzZURvd24pCiAgICAgICAgIG1vZGlmaWVycyB8PSBjb250cm9sS2V5
OwogICAgIAogICAgIHJldHVybiBtb2RpZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2Eu
bW0KaW5kZXggYTFkMTU5YWY5NGUxNDg5YTQ4YjA5OTIxMDhkMDNmMzk4MDVmMjk5Ni4uOWM1MjAx
ZmU2MmQyNjNiZDM1ZWI1ZTcxZDRhMzcwMWFhYTkxN2U3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJm
YWNlLmgiCiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZpZXcuaCIKICNpbXBvcnQgPHd0Zi9W
ZWN0b3IuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpXZWJOZXRzY2FwZVBs
dWdpbkV2ZW50SGFuZGxlckNvY29hKFdlYk5ldHNjYXBlUGx1Z2luVmlldyogcGx1Z2luVmlldykK
ICAgICA6IFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyKHBsdWdpblZpZXcpCkBAIC0xNjEs
MTAgKzE2Miw3IEBAIHZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6c3lu
dGhldGljS2V5RG93bldpdGhDb21tYW5kTW9kaWZpZXIoaW50CiAgICAgCiAgICAgTlBDb2NvYUV2
ZW50IGV2ZW50OwogICAgIGluaXRpYWxpemVFdmVudCgmZXZlbnQsIE5QQ29jb2FFdmVudEtleURv
d24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGV2ZW50LmRhdGEu
a2V5Lm1vZGlmaWVyRmxhZ3MgPSBOU0NvbW1hbmRLZXlNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIGV2ZW50LmRhdGEua2V5Lm1vZGlmaWVyRmxhZ3MgPSBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29tbWFuZDsKICAgICBldmVudC5kYXRhLmtleS5rZXlDb2RlID0ga2V5Q29kZTsK
ICAgICBldmVudC5kYXRhLmtleS5pc0FSZXBlYXQgPSBmYWxzZTsKICAgICBldmVudC5kYXRhLmtl
eS5jaGFyYWN0ZXJzID0gKE5QTlNTdHJpbmcgKiljaGFyYWN0ZXJzLmdldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCmluZGV4IGM0NjY3
MGI0ZDc5ZDhjZTg0ZmJkNDExNThmYjczMDgwYWU4MDQ3OWIuLjc5ZjI4ZmI4MmNiN2ZkOTM5Y2Qz
MzIzNGVjNDdlYzAzOTY2ZWU1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvUG9wdXBNZW51Q2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTkwLDE3ICs5MSwxMSBAQCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQog
ICAgICAgICB9CiAKICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0eWxlPiBw
YXJhZ3JhcGhTdHlsZSA9IGFkb3B0TlMoW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3Jh
cGhTdHlsZV0gbXV0YWJsZUNvcHldKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlv
biA9PSBMVFIgPyBOU0xlZnRUZXh0QWxpZ25tZW50IDogTlNSaWdodFRleHRBbGlnbm1lbnRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0
QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVGV4dEFsaWdubWVudExlZnQg
OiBOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0
aW5nRGlyZWN0aW9uID0gc3R5bGUudGV4dERpcmVjdGlvbigpID09IExUUiA/IE5TV3JpdGluZ0Rp
cmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAg
ICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbjp3cml0aW5nRGlyZWN0
aW9uXTsKICAgICAgICAgaWYgKHN0eWxlLmhhc1RleHREaXJlY3Rpb25PdmVycmlkZSgpKSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBSZXRhaW5QdHI8
TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxv
Y10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1RleHRXcml0aW5nRGlyZWN0
aW9uT3ZlcnJpZGVdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAg
IFJldGFpblB0cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05T
TnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TV3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlXSk7CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJheT4gd3Jp
dGluZ0RpcmVjdGlvbkFycmF5ID0gYWRvcHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2Jq
ZWN0czp3cml0aW5nRGlyZWN0aW9uVmFsdWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAgICAgW2F0
dHJpYnV0ZXMgc2V0T2JqZWN0OndyaXRpbmdEaXJlY3Rpb25BcnJheS5nZXQoKSBmb3JLZXk6TlNX
cml0aW5nRGlyZWN0aW9uQXR0cmlidXRlTmFtZV07CiAgICAgICAgIH0KQEAgLTIwNiwxOCArMjAx
LDE1IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmll
dyogdiwgaW50IGluZGV4KQogCiAgICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZTsKICAgICBz
d2l0Y2ggKG1fY2xpZW50LT5tZW51U3R5bGUoKS5tZW51U2l6ZSgpKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgY2FzZSBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU5vcm1hbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
KyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZVNtYWxsOgotICAgICAg
ICBjb250cm9sU2l6ZSA9IE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUg
PSBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9wdXBNZW51
U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TTWluaUNv
bnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVNaW5pOwogICAg
ICAgICBicmVhazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBX
S1BvcHVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocikpLCBkdW1teVZpZXcu
Z2V0KCksIGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJvbFNpemUsICFtX2NsaWVudC0+bWVu
dVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCmluZGV4IDkx
NGQ4ZTA2M2U4ZWIwZmNhOWVhZTlkN2JiYmM4MWY2MWI3Yjg4ZDYuLmEzOWI5M2U3N2UyNmE2NDMz
YjkyODg4ZjE5MzNhMDk5NTUxNWM2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCkBAIC02MCw2ICs2MCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9VUkwuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01Qcml2YXRlLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTI2OSwxMCArMjcwLDcgQEAgdm9pZCBXZWJDb250
ZXh0TWVudUNsaWVudDo6c2hvd0NvbnRleHRNZW51KCkKIAogICAgIE5TVmlldyogdmlldyA9IGZy
YW1lVmlldy0+ZG9jdW1lbnRWaWV3KCk7CiAgICAgSW50UG9pbnQgcG9pbnQgPSBmcmFtZVZpZXct
PmNvbnRlbnRzVG9XaW5kb3cocGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGl0VGVzdFJl
c3VsdCgpLnJvdW5kZWRQb2ludEluSW5uZXJOb2RlRnJhbWUoKSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2
ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93biBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdz
OjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0g
Y29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gbG9jYXRpb246cG9pbnQg
bW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbW3ZpZXcgd2luZG93XSB3
aW5kb3dOdW1iZXJdIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3Vy
ZToxXTsKIAogICAgIC8vIFNob3cgdGhlIGNvbnRleHR1YWwgbWVudSBmb3IgdGhpcyBldmVudC4K
ICAgICBib29sIGlzU2VydmljZXNNZW51OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAxMTQ3NmEwMzI3
NmVkZDk0ZTc1NTUxMzkzMGFiNDYxOWJjZWRmOTUzLi4wMjdlNTRiNzM3ZWFlYjA3OGExNmYwZWZk
NmVlOGRiZWM4M2YzNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTQ2LDYgKzE0Niw4IEBACiAj
aW1wb3J0ICJXZWJLaXRWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXZWJNYWlsRGVsZWdhdGUu
aCIKICNpbXBvcnQgIldlYlVJS2l0RGVsZWdhdGUuaCIKKyNlbHNlCisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbmRpZgogCiAjaWYgVVNFKFFV
SUNLX0xPT0spCkBAIC0xNTYxLDE3ICsxNTYzLDE0IEBAIE5TRGljdGlvbmFyeSAqV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmFjdGlvbkRpY3Rpb25hcnkoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0
CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBjb25zdCBVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlT
dGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0X2Nhc3Q8RXZlbnQqPihldmVu
dCkpOwogICAgIGlmIChrZXlTdGF0ZUV2ZW50ICYmIGtleVN0YXRlRXZlbnQtPmlzVHJ1c3RlZCgp
KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgIGlmIChrZXlT
dGF0ZUV2ZW50LT5jdHJsS2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29u
dHJvbEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdDb250cm9sOwogICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+YWx0S2V5KCkpCi0gICAg
ICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQWx0ZXJuYXRlS2V5TWFzazsKKyAgICAgICAgICAg
IG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICAgICAgaWYg
KGtleVN0YXRlRXZlbnQtPnNoaWZ0S2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9
IE5TU2hpZnRLZXlNYXNrOworICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnU2hpZnQ7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5tZXRhS2V5KCkpCi0g
ICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIH0KICNlbHNlCiAgICAgLy8gTm8gbW9kaWZpZXIgZmxh
Z3Mgb24gaU9TIHJpZ2h0IG5vdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDkwNzg3ZDYyMGIzODFlNTM4Yzdi
MWFkZGM3NmYyZDI5YzU5MzIyMDkuLjc2YjJjZDJjYmYxMGIyMGEzOTkzYzJmM2Y3YjcxOWNiZTdh
NTgxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTUzLDYgKzUzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
U29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01FeHRlbnNpb25zLmg+CiAj
aW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+
CiAKIFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJh
bWV3b3JrcywgQSkKQEAgLTE5MSwxMCArMTkyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudDo6YXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2YWlsYWJsZSkKIAogYm9v
bCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKCkKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1ttX2Zyb250ZW5kV2luZG93Q29udHJv
bGxlciB3aW5kb3ddIHN0eWxlTWFza10gJiBOU0Z1bGxTY3JlZW5XaW5kb3dNYXNrKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250cm9s
bGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TV2luZG93U3R5bGVNYXNrRnVsbFNjcmVlbikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIGNhbkF0dGFjaFdpbmRvdygpOwpAQCAt
NDY1LDEwICs0NjMsNyBAQCAtIChOU1dpbmRvdyAqKXdpbmRvdwogICAgIGlmICh3aW5kb3cpCiAg
ICAgICAgIHJldHVybiB3aW5kb3c7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBOU1VJbnRlZ2VyIHN0eWxlTWFzayA9IE5TVGl0bGVkV2luZG93TWFzayB8IE5TQ2xv
c2FibGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJs
ZVdpbmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNXaW5kb3dT
dHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHls
ZU1hc2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5k
b3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogICAgIHdpbmRvdyA9IFtbTlNXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBpbml0aWFsV2luZG93
V2lkdGgsIGluaXRpYWxXaW5kb3dIZWlnaHQpIHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpO
U0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbd2luZG93IHNldERlbGVnYXRl
OnNlbGZdOwogICAgIFt3aW5kb3cgc2V0TWluU2l6ZTpOU01ha2VTaXplKG1pbmltdW1XaW5kb3dX
aWR0aCwgbWluaW11bVdpbmRvd0hlaWdodCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQppbmRleCAwMmE3NTZmNzY3NzMxNWM2MjJk
ZDgxZDk5YTI5ZmFjM2ZiNWJmOWUyLi42NjdiMmM1YTU0NDdhYWU0NmE1ZTYwN2M1NzQxNDQwMjcy
YjQ2MjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9k
ZUhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9k
ZUhpZ2hsaWdodC5tbQpAQCAtMzksNiArMzksOCBAQAogI2ltcG9ydCAiV2ViVmlldy5oIgogI2lt
cG9ydCA8V2ViQ29yZS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dBS1dpbmRv
dy5oPgorI2Vsc2UKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtOTEsMTAgKzkz
LDcgQEAgLSAoaWQpaW5pdFdpdGhUYXJnZXRWaWV3OihOU1ZpZXcgKil0YXJnZXRWaWV3IGluc3Bl
Y3RvckNvbnRyb2xsZXI6KEluc3BlY3RvckNvbnQKICAgICBfaW5zcGVjdG9yQ29udHJvbGxlciA9
IGluc3BlY3RvckNvbnRyb2xsZXI7CiAKICNpZiAhUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGludCBzdHlsZU1hc2sgPSBOU0JvcmRlcmxlc3NX
aW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGludCBzdHlsZU1h
c2sgPSBOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3M7CiAgICAgTlNSZWN0IGNvbnRlbnRSZWN0
ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0OltzZWxmIF9jb21wdXRlSGlnaGxp
Z2h0V2luZG93RnJhbWVdIHN0eWxlTWFzazpzdHlsZU1hc2tdOwogICAgIF9oaWdobGlnaHRXaW5k
b3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0
eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5P
XTsKICAgICBbX2hpZ2hsaWdodFdpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgY2xl
YXJDb2xvcl1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZVZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRl
eCA1ZWMxOTc4NWRhNzI5N2IxYTI0NGM1NzYzMjA3MGM0YmRlOTQ2YjA1Li41Yjg2NzE1NDBlNmY4
YTEyMzFlY2UxZjU0OTQ0YjE1ODg5Mzc0YjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lVmlldy5tbQpAQCAtODMsNiArODMsNyBAQAogI2Vsc2UKICNpbXBvcnQgIldlYk5T
UGFzdGVib2FyZEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNXaW5kb3dFeHRyYXMuaCIKKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtOTE1LDkgKzkxNiw3IEBAIC0gKHZvaWQpa2V5
RG93bjooV2ViRXZlbnQgKilldmVudAogICAgIEJPT0wgY2FsbFN1cGVyID0gWUVTOwogICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKICAgICBCT09MIG1haW50YWluc0Jh
Y2tGb3J3YXJkTGlzdCA9IGNvcmVGcmFtZSAmJiBzdGF0aWNfY2FzdDxCYWNrRm9yd2FyZExpc3Qq
Pihjb3JlRnJhbWUtPnBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPmVuYWJsZWQoKSA/
IFlFUyA6IE5POwotICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCiAg
ICAgY291bnQgPSBbY2hhcmFjdGVycyBsZW5ndGhdOwogICAgIGZvciAoaW5kZXggPSAwOyBpbmRl
eCA8IGNvdW50OyArK2luZGV4KSB7CiAgICAgICAgIHN3aXRjaCAoW2NoYXJhY3RlcnMgY2hhcmFj
dGVyQXRJbmRleDppbmRleF0pIHsKQEAgLTkyOCw3ICs5MjcsNyBAQCAtICh2b2lkKWtleURvd246
KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8g
VGhpcyBvZGQgYmVoYXZpb3IgbWF0Y2hlcyBzb21lIGV4aXN0aW5nIGJyb3dzZXJzLAogICAgICAg
ICAgICAgICAgIC8vIGluY2x1ZGluZyBXaW5kb3dzIElFCi0gICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU1NoaWZ0S2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSB7CiAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIF9nb0ZvcndhcmRdOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgIFtzZWxmIF9nb0JhY2tdOwpAQCAtOTQzLDcgKzk0Miw3IEBAIC0gKHZvaWQp
a2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIg
PSBZRVM7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQp
IHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZVVwOm5pbF07CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZURv
d246bmlsXTsKQEAgLTk4NCw3ICs5ODMsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICop
ZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNVcEFycm93
RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQg
b3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgot
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlND
b250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChO
U0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC05OTgsOSArOTk3LDkgQEAgLSAodm9pZClr
ZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgW3Nl
bGYgc2Nyb2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
bikgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxMaW5l
VXA6bmlsXTsKQEAgLTEwMDksNyArMTAwOCw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25B
cnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlm
dGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5j
ZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8
IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTAyMyw5ICsxMDIyLDkgQEAgLSAo
dm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmll
ckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmll
ckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAg
ICAgW3NlbGYgc2Nyb2xsVG9FbmRPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
bikgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlRG93bjpuaWxdOwogICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbExp
bmVEb3duOm5pbF07CkBAIC0xMDM0LDEyICsxMDMzLDEyIEBAIC0gKHZvaWQpa2V5RG93bjooV2Vi
RXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBO
U0xlZnRBcnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRs
ZSBzaGlmdGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBh
IGNoYW5jZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5
TWFzayB8IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bnRyb2wpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8v
IENoZWNrIGJhY2svZm9yd2FyZCByZWxhdGVkIGtleXMuCi0gICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAg
ICAgICAgICBpZiAoIW1haW50YWluc0JhY2tGb3J3YXJkTGlzdCkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC0xMDUyLDcgKzEwNTEsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQK
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1h
c2spIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9k
aWZpZXJGbGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfcGFnZUhv
cml6b250YWxseTpZRVNdOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgX3Njcm9sbExpbmVIb3Jpem9udGFsbHk6WUVTXTsKQEAgLTEw
NjIsMTIgKzEwNjEsMTIgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1bmN0aW9u
S2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRy
b2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAg
ICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtl
eU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1v
ZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIENoZWNrIGJhY2svZm9yd2Fy
ZCByZWxhdGVkIGtleXMuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0Nv
bW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1haW50
YWluc0JhY2tGb3J3YXJkTGlzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVy
ID0gWUVTOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDgwLDcgKzEwNzks
NyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfcGFnZUhvcml6b250YWxseTpOT107CiAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2Vs
ZiBfc2Nyb2xsTGluZUhvcml6b250YWxseTpOT107CkBAIC0xMDkwLDcgKzEwODksNiBAQCAtICh2
b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBpZiAoY2Fs
bFN1cGVyKSB7CiAgICAgICAgIFtzdXBlciBrZXlEb3duOmV2ZW50XTsKICAgICB9IGVsc2Ugewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJv
bGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xs
ZXIubW0KaW5kZXggOWZkOTU2NjE3ZjA3YzZjZjZmNDg1N2NjOWUyMjE0MGIyMTg4YjJlNC4uZjU0
MzQxZmRiYjRlNGQzY2VkOWRlZDE2M2YxODQzMmIwNDZkOWIwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCkBAIC00Nyw2
ICs0Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYldpbmRvd0FuaW1hdGlvbi5oPgogI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTg2LDExICs4Nyw4IEBAIEBpbXBsZW1lbnRhdGlv
biBXZWJGdWxsU2NyZWVuQ29udHJvbGxlcgogI3ByYWdtYSBtYXJrIEluaXRpYWxpemF0aW9uCiAt
IChpZClpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgLy8g
RG8gbm90IGRlZmVyIHdpbmRvdyBjcmVhdGlvbiwgdG8gbWFrZSBzdXJlIC13aW5kb3dOdW1iZXIg
aXMgY3JlYXRlZCAobmVlZGVkIGJ5IFdlYldpbmRvd1NjYWxlQW5pbWF0aW9uKS4KLSAgICBOU1dp
bmRvdyAqd2luZG93ID0gW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU1plcm9SZWN0IHN0eWxlTWFzazpOU0Nsb3NhYmxlV2luZG93TWFzayBiYWNr
aW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2lu
ZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TV2lu
ZG93U3R5bGVNYXNrQ2xvc2FibGUgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVy
Ok5PXTsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dp
bmRvdyByZWxlYXNlXTsKICAgICBpZiAoIXNlbGYpCkBAIC00NjIsMTAgKzQ2MCw3IEBAIC0gKHZv
aWQpX3N3YXBWaWV3OihOU1ZpZXcqKXZpZXcgd2l0aDooTlNWaWV3KilvdGhlclZpZXcKIAogc3Rh
dGljIFJldGFpblB0cjxOU1dpbmRvdz4gY3JlYXRlQmFja2dyb3VuZEZ1bGxzY3JlZW5XaW5kb3co
TlNSZWN0IGZyYW1lKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IE5TV2luZG93ICp3aW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
OmZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6ZnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0T3BhcXVlOllF
U107CiAgICAgW3dpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgYmxhY2tDb2xvcl1d
OwogICAgIFt3aW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDU1ZjFhZTJkNDU4ZjU2MTM5NWZjMzI2YWFj
YmM2MGY0ZGIzMjEzYzQuLmEyMTU1ODQ1NDI2N2JkODgzZWQ5ODA1NTljMzU1N2JhNDM4Y2MwMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTQwLDEyICsx
NDAsMTMgQEAKICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiAhUExBVEZPUk0oSU9TKQor
I2ltcG9ydCAiV2ViTlNFdmVudEV4dHJhcy5oIgorI2ltcG9ydCAiV2ViTlNQYXN0ZWJvYXJkRXh0
cmFzLmgiCiAjaW1wb3J0IDxBcHBLaXQvTlNBY2Nlc3NpYmlsaXR5Lmg+CiAjaW1wb3J0IDxBcHBs
aWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
TlNNZW51U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+
Ci0jaW1wb3J0ICJXZWJOU0V2ZW50RXh0cmFzLmgiCi0jaW1wb3J0ICJXZWJOU1Bhc3RlYm9hcmRF
eHRyYXMuaCIKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogI2VuZGlmCiAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgpAQCAtMTM1
MSwxMiArMTM1Miw5IEBAIC0gKHZvaWQpX3Bhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZDoo
TlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZAogCiAtICh2b2lkKV9wb3N0RmFrZU1vdXNlTW92ZWRF
dmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50OihOU0V2ZW50ICopZmxhZ3NDaGFuZ2VkRXZlbnQKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9uOmZs
YWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0K
KyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3Vz
ZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KICAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFn
c0NoYW5nZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50
aW1lc3RhbXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgogICAg
ICAgICBjb250ZXh0Om51bGxwdHIgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6
MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW3NlbGYgbW91c2VNb3ZlZDpm
YWtlRXZlbnRdOwogfQogCkBAIC0xNTA2LDEwICsxNTA0LDcgQEAgLSAodm9pZClfc2V0TW91c2VE
b3duRXZlbnQ6KFdlYkV2ZW50ICopZXZlbnQKICNlbmRpZgogewogI2lmICFQTEFURk9STShJT1Mp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJUKCFldmVudCB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU1Jp
Z2h0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU090aGVyTW91c2VEb3duKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBU1NFUlQoIWV2ZW50IHx8IFtldmVudCB0eXBl
XSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURvd24pOwogI2Vsc2UKICAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gV2ViRXZl
bnRNb3VzZURvd24pOwogI2VuZGlmCkBAIC0xNjYxLDE2ICsxNjU2LDE3IEBAIC0gKGlkKV9icmlk
Z2UKIAogLSAodm9pZClfdXBkYXRlTW91c2VvdmVyV2l0aEZha2VFdmVudAogeworICAgIE5TRXZl
bnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1v
dXNlTW92ZWQKKyAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkCi0gICAgICAgIGxvY2F0aW9uOltbc2VsZiB3
aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAg
ICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJy
ZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJ
bnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3
aW5kb3ddIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogCiAgICAgW3NlbGYgX3VwZGF0ZU1vdXNlb3ZlcldpdGhFdmVudDpmYWtlRXZl
bnRdOwogfQpAQCAtMTg2OCwxMSArMTg2NCw4IEBAIC0gKEJPT0wpX2luc2lkZUFub3RoZXJIVE1M
VmlldwogI2lmICFQTEFURk9STShJT1MpCiBzdGF0aWMgQk9PTCBpc1F1aWNrTG9va0V2ZW50KE5T
RXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IGNvbnN0IGludCBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxlYXNl
ZCA9IDk7Ci0gICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU1N5c3RlbURlZmluZWQgJiYgW2V2
ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJl
bGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0gJ2xrdXAnOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZp
bmVkICYmIFtldmVudCBzdWJ0eXBlXSA9PSBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29t
YmluYXRpb25SZWxlYXNlZCAmJiBbZXZlbnQgZGF0YTFdID09ICdsa3VwJzsKIH0KICNlbmRpZgog
CkBAIC0xOTI4LDE0ICsxOTIxLDExIEBAIC0gKE5TVmlldyAqKWhpdFRlc3Q6KE5TUG9pbnQpcG9p
bnQKICAgICBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6IFdoeSBkb2Vzbid0IHRoaXMgaW5jbHVk
ZSBtb3VzZSBlbnRlcmVkL2V4aXRlZCBldmVudHMsIG9yIG90aGVyIG1vdXNlIGJ1dHRvbiBldmVu
dHM/CiAgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW1tzZWxmIHdpbmRvd10gY3VycmVudEV2ZW50
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FwdHVyZUhp
dHNPblN1YnZpZXdzID0gIShbZXZlbnQgdHlwZV0gPT0gTlNNb3VzZU1vdmVkCi0gICAgICAgICAg
ICB8fCBbZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1vdXNlRG93bgotICAgICAgICAgICAgfHwgKFtl
dmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TQ29udHJvbEtleU1hc2spICE9IDApCi0gICAgICAgICAgICB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNGbGFnc0NoYW5nZWQKKyAgICAgICAgY2FwdHVyZUhpdHNPblN1YnZpZXdzID0gIShbZXZlbnQg
dHlwZV0gPT0gTlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAgICAgICB8fCBbZXZlbnQgdHlw
ZV0gPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bgorICAgICAgICAgICAgfHwgKFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gJiYgW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpCisgICAgICAgICAgICB8fCBbZXZlbnQgdHlw
ZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQKICAgICAgICAgICAgIHx8IGlzUXVpY2tMb29r
RXZlbnQoZXZlbnQpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAg
ICBpZiAoIWNhcHR1cmVIaXRzT25TdWJ2aWV3cykgewpAQCAtMjAyMyw5ICsyMDEzLDcgQEAgLSAo
dm9pZClfcmVtb3ZlVHJhY2tpbmdSZWN0czooTlNUcmFja2luZ1JlY3RUYWcgKil0YWdzIGNvdW50
OihpbnQpY291bnQKIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFeGl0ZWQKIHsKICAgICAvLyBO
b3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0
YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtl
RXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFeGl0ZWQKKyAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlTW91c2VFeGl0ZWQKICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
ICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yMDM0LDE2
ICsyMDIyLDEzIEBAIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFeGl0ZWQKICAgICAgICAgZXZl
bnROdW1iZXI6MAogICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAg
ICAgICB1c2VyRGF0YTpfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0T3duZXIgbW91
c2VFeGl0ZWQ6ZmFrZUV2ZW50XTsKIH0KIAogLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUVudGVy
ZWQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBOb3RoaW5n
IG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5T
TW91c2VFbnRlcmVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZAogICAgICAgICBsb2NhdGlvbjpO
U01ha2VQb2ludCgwLCAwKQogICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0
YW1wOjAKQEAgLTIwNTMsNyArMjAzOCw2IEBAIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFbnRl
cmVkCiAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgIHVz
ZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1JlY3RVc2VyRGF0YV07CiAgICAgW19wcml2YXRlLT50
cmFja2luZ1JlY3RPd25lciBtb3VzZUVudGVyZWQ6ZmFrZUV2ZW50XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKIH0KICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCkBAIC0yMDg5LDIx
ICsyMDczLDE4IEBAIC0gKE5TU3RyaW5nICopdmlldzooTlNWaWV3ICopdmlldyBzdHJpbmdGb3JU
b29sVGlwOihOU1Rvb2xUaXBUYWcpdGFnIHBvaW50OihOU1BvCiBzdGF0aWMgYm9vbCBtb3VzZUV2
ZW50SXNQYXJ0T2ZDbGlja09yRHJhZyhOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtl
dmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VE
b3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2Fz
ZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9CiAKQEAgLTIxMzQsMTYg
KzIxMTUsMTQgQEAgLSAodm9pZClfdXBkYXRlTW91c2VvdmVyV2l0aEV2ZW50OihOU0V2ZW50ICop
ZXZlbnQKICAgICAgICAgZmxvYXQgeVNjcm9sbCA9IHZpc2libGVSZWN0Lm9yaWdpbi55OwogICAg
ICAgICBmbG9hdCB4U2Nyb2xsID0gdmlzaWJsZVJlY3Qub3JpZ2luLng7CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkCisgICAgICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAg
ICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoLTEgLSB4U2Nyb2xsLCAtMSAtIHlTY3JvbGwp
CiAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmll
ckZsYWdzXQogICAgICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VS
ZWZlcmVuY2VEYXRlXQogICAgICAgICAgICAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdp
bmRvd051bWJlcl0KICAgICAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICAgICAgZXZl
bnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisKICAgICAgICAgaWYgKEZyYW1lKiBsYXN0SGl0Q29yZUZyYW1lID0gY29yZShb
bGFzdEhpdFZpZXcgX2ZyYW1lXSkpCiAgICAgICAgICAgICBsYXN0SGl0Q29yZUZyYW1lLT5ldmVu
dEhhbmRsZXIoKS5tb3VzZU1vdmVkKGV2ZW50LCBbW3NlbGYgX3dlYlZpZXddIF9wcmVzc3VyZUV2
ZW50XSk7CiAgICAgfQpAQCAtMjMzMCwxNiArMjMwOSwxOCBAQCAtICh2b2lkKV9hdXRvc2Nyb2xs
CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkCisg
ICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TTGVmdE1vdXNlRHJhZ2dlZAotICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93
XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICBj
b252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2
ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2
YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93
XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICBldmVudE51
bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKwogICAgIFtzZWxmIG1vdXNlRHJhZ2dlZDpmYWtlRXZlbnRdOwogI2VuZGlmCiB9CkBA
IC0zMzU0LDEyICszMzM1LDkgQEAgLSAoQk9PTClhY2NlcHRzRmlyc3RSZXNwb25kZXIKICAgICAv
LyBvciBmcm9tIGNhbGxzIGJhY2sgZnJvbSBXZWJDb3JlIG9uY2Ugd2UgYmVnaW4gbW91c2UtZG93
biBldmVudCBoYW5kbGluZy4KICNpZiAhUExBVEZPUk0oSU9TKSAgICAgICAgICAgIAogICAgIE5T
RXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24K
KyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bgogICAgICAg
ICAgICAgJiYgIV9wcml2YXRlLT5oYW5kbGluZ01vdXNlRG93bkV2ZW50CiAgICAgICAgICAgICAm
JiBOU1BvaW50SW5SZWN0KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW3NlbGYgY29udmVydFJl
Y3Q6W3NlbGYgdmlzaWJsZVJlY3RdIHRvVmlldzpuaWxdKSkgewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgICAgICByZXR1cm4gTk87CiAgICAgfQogI2Vsc2UKQEAgLTM1MjgsMTMg
KzM1MDYsMTAgQEAgLSAodm9pZCl2aWV3RGlkTW92ZVRvV2luZG93CiAKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgICAgICBpZiAoIV9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIF9wcml2YXRl
LT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JF
dmVudHNNYXRjaGluZ01hc2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6XihOU0V2ZW50ICpm
bGFnc0NoYW5nZWRFdmVudCkgeworICAgICAgICAgICAgX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2
ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFz
azpOU0V2ZW50TWFza0ZsYWdzQ2hhbmdlZCBoYW5kbGVyOl4oTlNFdmVudCAqZmxhZ3NDaGFuZ2Vk
RXZlbnQpIHsKICAgICAgICAgICAgICAgICBbc2VsZiBfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRG
b3JGbGFnc0NoYW5nZWRFdmVudDpmbGFnc0NoYW5nZWRFdmVudF07CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZsYWdzQ2hhbmdlZEV2ZW50OwogICAgICAgICAgICAgfV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBbTlNFdmVu
dCByZW1vdmVNb25pdG9yOl9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3JdOwpAQCAt
NDU0MCwxMSArNDUxNSwxMiBAQCAtICh2b2lkKW1vdXNlRG93bjooV2ViRXZlbnQgKilldmVudAog
ICAgIE5TSW5wdXRNYW5hZ2VyICpjdXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5hZ2Vy
IGN1cnJlbnRJbnB1dE1hbmFnZXJdOwogCiAgICAgaWYgKCFbY3VycmVudElucHV0TWFuYWdlciB3
YW50c1RvSGFuZGxlTW91c2VFdmVudHNdIHx8ICFbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVN
b3VzZUV2ZW50OmV2ZW50XSkgeworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAg
ICBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVyIGVuZFJldmVydGluZ0NoYW5nZTpOTyBt
b3ZlTGVmdDpOT107CiAKICAgICAgICAgLy8gSWYgdGhlIHdlYiBwYWdlIGhhbmRsZXMgdGhlIGNv
bnRleHQgbWVudSBldmVudCBhbmQgbWVudUZvckV2ZW50OiByZXR1cm5zIG5pbCwgd2UnbGwgZ2V0
IGNvbnRyb2wgY2xpY2sgZXZlbnRzIGhlcmUuCiAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8g
cGFzcyB0aGVtIGFsb25nIHRvIEtIVE1MIGEgc2Vjb25kIHRpbWUuCi0gICAgICAgIGlmICghKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgIGlmICgh
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewog
ICAgICAgICAgICAgX3ByaXZhdGUtPmlnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzID0gTk87CiAK
ICAgICAgICAgICAgIC8vIExldCBXZWJDb3JlIGdldCBhIGNoYW5jZSB0byBkZWFsIHdpdGggdGhl
IGV2ZW50LiBUaGlzIHdpbGwgY2FsbCBiYWNrIHRvIHVzCkBAIC00NTUzLDcgKzQ1MjksNiBAQCAt
ICh2b2lkKW1vdXNlRG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGNvcmVm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkubW91c2VEb3duKGV2ZW50LCBbW3NlbGYgX3dlYlZpZXddIF9w
cmVzc3VyZUV2ZW50XSk7CiAgICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAjZW5kaWYKIAogICAgIF9wcml2YXRlLT5oYW5kbGluZ01vdXNlRG93bkV2ZW50ID0g
Tk87CkBAIC00NjQyLDcgKzQ2MTcsNyBAQCAtICh2b2lkKWRyYWdnZWRJbWFnZTooTlNJbWFnZSAq
KWFuSW1hZ2UgZW5kZWRBdDooTlNQb2ludClhUG9pbnQgb3BlcmF0aW9uOihOU0RyYQogICAgIAog
ICAgIC8vIE9uY2UgdGhlIGRyYWdnaW5nIG1hY2hpbmVyeSBraWNrcyBpbiwgd2Ugbm8gbG9uZ2Vy
IGdldCBtb3VzZSBkcmFncyBvciB0aGUgdXAgZXZlbnQuCiAgICAgLy8gV2ViQ29yZSBleHBlY3Rz
IHRvIGdldCBiYWxhbmNlZCBkb3duL3VwJ3MsIHNvIHdlIG11c3QgZmFrZSB1cCBhIG1vdXNldXAu
Ci0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
TGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjp3aW5kb3dNb3VzZUxvYwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRF
dmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVd
CkBAIC00ODE4LDE5ICs0NzkzLDEyIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+
IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5RG93bjogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZv
cm1LZXlib2FyZEV2ZW50IHBsYXRmb3JtRXZlbnQgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3Jl
YXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KGV2ZW50KTsKICAgICAgICAgcGxhdGZvcm1FdmVudC5k
aXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bik7CiAgICAg
ICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGxhdGZvcm1FdmVudCwgY29yZUZyYW1l
LT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0tleVVwOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKICAgICAgICAgcmV0dXJuIEtleWJv
YXJkRXZlbnQ6OmNyZWF0ZShQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXli
b2FyZEV2ZW50KGV2ZW50KSwgY29yZUZyYW1lLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTU1MjQsMTEgKzU0OTIsOCBAQCAt
IChCT09MKV9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogICAgIGlm
ICghW3NlbGYgX2NhbkVkaXRdKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2spICE9IE5TQ29tbWFuZEtleU1h
c2spCisgICAgaWYgKChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFn
RGV2aWNlSW5kZXBlbmRlbnRGbGFnc01hc2spICE9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5k
KQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAg
ICBOU1N0cmluZyAqc3RyaW5nID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgIGlmIChbc3RyaW5n
IGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJiIl0gPT0gTlNPcmRlcmVkU2FtZSkgewpAQCAtNjQ0
OCwxNCArNjQxMywxMSBAQCAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooS2V5Ym9hcmRFdmVu
dCopZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbQogICAgICAgICByZXR1cm4g
Tk87CiAKICAgICBOU0V2ZW50ICptYWNFdmVudCA9IHBsYXRmb3JtRXZlbnQtPm1hY0V2ZW50KCk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFttYWNFdmVudCB0
eXBlXSA9PSBOU0tleURvd24gJiYgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBmaWx0
ZXJLZXlEb3duOm1hY0V2ZW50XSkKKyAgICBpZiAoW21hY0V2ZW50IHR5cGVdID09IE5TRXZlbnRU
eXBlS2V5RG93biAmJiBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVyIGZpbHRlcktleURv
d246bWFjRXZlbnRdKQogICAgICAgICByZXR1cm4gWUVTOwogICAgIAotICAgIGlmIChbbWFjRXZl
bnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCisgICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBO
U0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIAogICAgIHBhcmFtZXRlcnMuZXZlbnQgPSBldmVudDsKICAg
ICBfcHJpdmF0ZS0+aW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyA9ICZwYXJhbWV0ZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDc4ZjU2ZTQ5MWUwODZh
YWU5ODNiMzgwNjk5YTU1MTU3Y2Q5OGZkYmEuLjk2MGM2Mzc5ZDFhY2U2MDA3YmUxMjA1MmFlMjg0
NzQ3MzU0N2Q4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERG
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAg
LTY1LDYgKzY1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0
cmFzLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRU
aW1lLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxBcHBsaWNhdGlvblNl
cnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXNQcml2Lmg+CkBAIC0zMjEsMTAgKzMyMiw3IEBAIC0g
KE5TVmlldyAqKWhpdFRlc3Q6KE5TUG9pbnQpcG9pbnQKICAgICAvLyBPdmVycmlkZSBoaXRUZXN0
IHNvIHdlIGNhbiBvdmVycmlkZSBtZW51Rm9yRXZlbnQuCiAgICAgTlNFdmVudCAqZXZlbnQgPSBb
TlNBcHAgY3VycmVudEV2ZW50XTsKICAgICBOU0V2ZW50VHlwZSB0eXBlID0gW2V2ZW50IHR5cGVd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICh0eXBlID09IE5T
UmlnaHRNb3VzZURvd24gfHwgKHR5cGUgPT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgaWYgKHR5cGUgPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8fCAodHlw
ZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkpCiAgICAgICAgIHJldHVybiBzZWxmOwogCiAg
ICAgcmV0dXJuIFtzdXBlciBoaXRUZXN0OnBvaW50XTsKQEAgLTEwMDksMzkgKzEwMDcsMzMgQEAg
LSAodm9pZClQREZWaWV3V2lsbENsaWNrT25MaW5rOihQREZWaWV3ICopc2VuZGVyIHdpdGhVUkw6
KE5TVVJMICopVVJMCiAgICAgaW50IGJ1dHRvbiA9IG5vQnV0dG9uOwogICAgIFJlZlB0cjxFdmVu
dD4gZXZlbnQ7CiAgICAgc3dpdGNoIChbbnNFdmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAg
ICAgICBidXR0b24gPSAwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSAxOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSBbbnNFdmVu
dCBidXR0b25OdW1iZXJdOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNLZXlE
b3duOiB7Ci0gICAgICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGUgPSBQbGF0Zm9ybUV2
ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KG5zRXZlbnQpOwotICAgICAg
ICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURv
d24pOwotICAgICAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVu
dFR5cGVMZWZ0TW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICAgICAg
YnV0dG9uID0gW25zRXZlbnQgYnV0dG9uTnVtYmVyXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUtleURvd246IHsKKyAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBl
ID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2
ZW50KTsKKyAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6
OlJhd0tleURvd24pOworICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwg
MCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgaWYgKGJ1dHRvbiAhPSBub0J1dHRvbikgewogICAgICAgICBldmVudCA9IE1v
dXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3Vy
cmVudFRpbWUoKSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCiAjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNDb250cm9sS2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU1NoaWZ0S2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNDb21tYW5kS2V5TWFzaywKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bnRyb2wsCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24sCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICBidXR0b24sIDAs
IFdlYkNvcmU6OkZvcmNlQXRDbGljaywgMCwgMCwgdHJ1ZSk7CiAgICAgfQogCkBAIC0xMTQ5LDkg
KzExNDEsNyBAQCAtIChOU0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhGdW5jdGlvbktleToodW5p
Y2hhcilmdW5jdGlvbktleQogICAgIC8vIEZJWE1FIDQ0MDA0ODA6IHdoZW4gUERGVmlldyBpbXBs
ZW1lbnRzIHRoZSBzdGFuZGFyZCBzY3JvbGxpbmcgc2VsZWN0b3JzIHRoYXQgdGhpcwogICAgIC8v
IG1ldGhvZCBpcyB1c2VkIHRvIG1pbWljLCB3ZSBjYW4gZWxpbWluYXRlIHRoaXMgbWV0aG9kIGFu
ZCBjYWxsIHRoZW0gZGlyZWN0bHkuCiAgICAgTlNTdHJpbmcgKmtleUFzU3RyaW5nID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZmdW5jdGlvbktleSBsZW5ndGg6MV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIFtOU0V2ZW50IGtleUV2ZW50
V2l0aFR5cGU6TlNLZXlEb3duCisgICAgcmV0dXJuIFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246
TlNaZXJvUG9pbnQKICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMTE2MSw3ICsxMTUxLDYgQEAg
LSAoTlNFdmVudCAqKV9mYWtlS2V5RXZlbnRXaXRoRnVuY3Rpb25LZXk6KHVuaWNoYXIpZnVuY3Rp
b25LZXkKICAgICAgICAgIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczprZXlBc1N0cmluZwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBUmVwZWF0Ok5PCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGtleUNvZGU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9
CiAKIC0gKHZvaWQpX2xvb2tVcEluRGljdGlvbmFyeUZyb21NZW51OihpZClzZW5kZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9s
bGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRy
b2xsZXIubW0KaW5kZXggNDM4MmIwNDQ3NGU2MGM4YzIzNzMzMDQ3YjgxMzk2NGE0Zjc4NDI2My4u
N2I5ZTVkYmNmNDhjMjE2YjZjNTY2MzEwYzE3NGU0MzEyYzU2MjhlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIu
bW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBv
cnQgIldlYlZpZXcuaCIKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIE5TV2lu
ZG93IChXZWJOU1dpbmRvd0RldGFpbHMpCiAtICh2b2lkKV9zZXRGb3JjZUFjdGl2ZUNvbnRyb2xz
OihCT09MKWZsYWc7CkBAIC0xMTIsMTAgKzExMyw3IEBAIC0gKHZvaWQpX2J1aWxkVUkKICAgICBb
c2Nyb2xsVmlldyBzZXREb2N1bWVudFZpZXc6X3RhYmxlVmlld107CiAgICAgW190YWJsZVZpZXcg
cmVsZWFzZV07CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
X3BvcHVwV2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpzY3Jv
bGxGcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIF9wb3B1cFdpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
c2Nyb2xsRnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFtfcG9wdXBXaW5kb3cgc2V0
QWxwaGFWYWx1ZTowLjg4Zl07CiAgICAgW19wb3B1cFdpbmRvdyBzZXRDb250ZW50VmlldzpzY3Jv
bGxWaWV3XTsKICAgICBbc2Nyb2xsVmlldyByZWxlYXNlXTsKQEAgLTE1NSw4ICsxNTMsOCBAQCAt
ICh2b2lkKV9wbGFjZVBvcHVwV2luZG93OihOU1BvaW50KXRvcExlZnQKICNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNTY3JvbGxW
aWV3IGZyYW1lU2l6ZUZvckNvbnRlbnRTaXplOk5TTWFrZVNpemUobWF4V2lkdGgsIDEwMC4wZikg
aGFzSG9yaXpvbnRhbFNjcm9sbGVyOk5PIGhhc1ZlcnRpY2FsU2Nyb2xsZXI6WUVTIGJvcmRlclR5
cGU6TlNOb0JvcmRlcl0ud2lkdGgpOwotICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1dpbmRv
dyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAuMGYsIG1heFdpZHRo
LCAxMDAuMGYpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXS5zaXplLndpZHRoKTsK
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbWF4V2lkdGggPSBjZWlsZihb
TlNXaW5kb3cgZnJhbWVSZWN0Rm9yQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLjBmLCAwLjBmLCBt
YXhXaWR0aCwgMTAwLjBmKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzXS5z
aXplLndpZHRoKTsKICAgICAgICAgbWF4V2lkdGggKz0gNS4wZjsKICAgICAgICAgd2luZG93RnJh
bWUuc2l6ZS53aWR0aCA9IHN0ZDo6bWF4KG1heFdpZHRoLCB3aW5kb3dGcmFtZS5zaXplLndpZHRo
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggN2NmYWE4N2I1
NTZlYjQ3NmJmM2M1ZmVkNWUwM2U2OGZiYTJkZTRiZi4uNzg3ZTcxNmE2YjRiY2EzNGQ3NDdlMDI1
MmQ2MzI2MGU1NjkxNzljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAt
MjMwLDYgKzIzMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbHNlCiAjaW1wb3J0ICJNZW1vcnlNZWFzdXJlLmgi
CiAjaW1wb3J0ICJXZWJDYXJldENoYW5nZUxpc3RlbmVyLmgiCkBAIC02MDk1LDEwICs2MDk2LDcg
QEAgLSAoRHJhZ0FwcGxpY2F0aW9uRmxhZ3MpYXBwbGljYXRpb25GbGFnczooaWQgPE5TRHJhZ2dp
bmdJbmZvPilkcmFnZ2luZ0luZm8KICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSGFz
QXR0YWNoZWRTaGVldDsKICAgICBpZiAoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZV0gPT0g
c2VsZikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbTlNBcHAgY3VycmVudEV2ZW50
XSBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxp
Y2F0aW9uSXNDb3B5S2V5RG93bjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RHJhZ0FwcGxpY2F0
aW9uRmxhZ3M+KGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQ2hpbGRQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFBy
b2Nlc3NNYWMubW0KaW5kZXggMmU2NTgwNmRiNWQ2OGYwYTRhMjgyZDM4M2I5NmU3YjQ1MTZiOTA0
MC4uYjBjNTU0ZDRkYTYyM2Q5OWIwMTQzNTg2N2IyMDc3MjViODY3NDUzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbXBvcnQgPHB3ZC5oPgogI2ltcG9ydCA8c3RkbGliLmg+CiAjaW1wb3J0IDxzeXNleGl0cy5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAj
aW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQpAQCAtMTk3LDEwICsxOTgsNyBAQCB2b2lkIENoaWxkUHJvY2Vzczo6c3RvcE5T
QXBwUnVuTG9vcCgpCiAgICAgQVNTRVJUKFtOU0FwcCBpc1J1bm5pbmddKTsKICAgICBbTlNBcHAg
c3RvcDpuaWxdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNF
dmVudCAqZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBsaWNhdGlvbkRl
ZmluZWQgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFt
cDowLjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTowIGRhdGExOjAgZGF0YTI6
MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAqZXZlbnQgPSBb
TlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVBcHBsaWNhdGlvbkRlZmluZWQg
bG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowLjAg
d2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTowIGRhdGExOjAgZGF0YTI6MF07CiAg
ICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRydWVdOwogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IGE4NWVmY2Fl
ZTlhNTJkOGMwNDU2NjZkOTRjNDkxODcwY2E2OGE3ZDMuLjlmNTNmNjhjZDMxODIzYmQxNDRmMzE0
ZWE2MDhhODU3YTg1ZWU4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGJh
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oPgogI2ltcG9ydCA8
d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURl
Y2xhcmF0aW9ucy5oPgogCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjMsNzggKzY0
LDY5IEBAIHN0YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0b24gY3VycmVudE1vdXNlQnV0dG9uKCkK
IAogc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5TRXZl
bnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3
aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1v
dXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOwotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJh
Z2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVCdXR0b247Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
UmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3Vz
ZUV2ZW50OjpSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246
CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
T3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVC
dXR0b247CiAjaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVBy
ZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotICAgICAgICBj
YXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAg
ICAgICByZXR1cm4gY3VycmVudE1vdXNlQnV0dG9uKCk7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgY2FzZSBOU0V2ZW50
VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAg
ICAgIHJldHVybiBjdXJyZW50TW91c2VCdXR0b24oKTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogfQogCiBzdGF0aWMgV2ViRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVGb3JF
dmVudChOU0V2ZW50KiBldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01v
dXNlRXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090
aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBO
U090aGVyTW91c2VEb3duOgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBXZWJF
dmVudDo6TW91c2VVcDsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBXZWJF
dmVudDo6TW91c2VNb3ZlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOworICAgIGNhc2Ug
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgICAgIHJldHVy
biBXZWJFdmVudDo6TW91c2VEb3duOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlVXA6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VVcDsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKICAgICB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tDb3VudEZvckV2ZW50
KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3du
OgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VE
cmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNS
aWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAg
Y2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gW2V2ZW50
IGNsaWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJl
dHVybiBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgTlNQb2lu
dCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQpAQCAtMTQzLDIyICsxMzUsMTkg
QEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKICNp
ZiBkZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRp
ZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNMZWZ0TW91
c2VEb3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNMZWZ0TW91
c2VVcDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoK
LSAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAg
Y2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAg
Y2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAg
ICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2UgTlNTY3JvbGxXaGVlbDoKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2Vk
OgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6CiAgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpnbG9iYWxQb2ludChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10sIFtldmVudCB3aW5kb3ddKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gTlNaZXJvUG9pbnQ7CkBAIC0xNzEsMjIgKzE2
MCwxOSBAQCBzdGF0aWMgTlNQb2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1Zp
ZXcgKndpbmRvd1ZpZXcpCiAjaWYgZGVmaW5lZChfX0xQNjRfXykKICAgICBjYXNlIE5TRXZlbnRU
eXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoK
LSAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICBj
YXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU090
aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5T
T3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICBjYXNlIE5TUmln
aHRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICBjYXNlIE5TU2Ny
b2xsV2hlZWw6IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93
bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6IHsK
ICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9t
IGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgogICAgICAg
ICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lk
Z2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCiAgICAgICAgIE5TUG9pbnQgbG9jYXRp
b24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CkBAIC0yNDAsMTAgKzIyNiw3IEBAIHN0YXRp
YyBpbmxpbmUgU3RyaW5nIHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFj
ZXNTb2Z0U3BhY2UpCiB7CiAgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQogICAgICAgICByZXR1
cm4gZW1wdHlTdHJpbmcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5n
ZWQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmcoW2V2
ZW50IGNoYXJhY3RlcnNdKTsKIH0KQEAgLTI1MiwxMCArMjM1LDcgQEAgc3RhdGljIGlubGluZSBT
dHJpbmcgdW5tb2RpZmllZFRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFj
ZXNTb2Z0U3AKIHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAgIHJldHVybiBl
bXB0eVN0cmluZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
IChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkK
ICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmluZyhbZXZlbnQg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSk7CiB9CkBAIC0yNjQsNzQgKzI0NCw2OCBAQCBz
dGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNr
IHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAg
c3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAg
ICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgc3dpdGNo
IChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA3MTogLy8gQ2xlYXIKLSAgICAgICAg
Y2FzZSA4MTogLy8gPQotICAgICAgICBjYXNlIDc1OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6IC8v
ICoKLSAgICAgICAgY2FzZSA3ODogLy8gLQotICAgICAgICBjYXNlIDY5OiAvLyArCi0gICAgICAg
IGNhc2UgNzY6IC8vIEVudGVyCi0gICAgICAgIGNhc2UgNjU6IC8vIC4KLSAgICAgICAgY2FzZSA4
MjogLy8gMAotICAgICAgICBjYXNlIDgzOiAvLyAxCi0gICAgICAgIGNhc2UgODQ6IC8vIDIKLSAg
ICAgICAgY2FzZSA4NTogLy8gMwotICAgICAgICBjYXNlIDg2OiAvLyA0Ci0gICAgICAgIGNhc2Ug
ODc6IC8vIDUKLSAgICAgICAgY2FzZSA4ODogLy8gNgotICAgICAgICBjYXNlIDg5OiAvLyA3Ci0g
ICAgICAgIGNhc2UgOTE6IC8vIDgKLSAgICAgICAgY2FzZSA5MjogLy8gOQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgIH0KKyAgICBjYXNlIDcxOiAvLyBDbGVhcgorICAgIGNhc2UgODE6
IC8vID0KKyAgICBjYXNlIDc1OiAvLyAvCisgICAgY2FzZSA2NzogLy8gKgorICAgIGNhc2UgNzg6
IC8vIC0KKyAgICBjYXNlIDY5OiAvLyArCisgICAgY2FzZSA3NjogLy8gRW50ZXIKKyAgICBjYXNl
IDY1OiAvLyAuCisgICAgY2FzZSA4MjogLy8gMAorICAgIGNhc2UgODM6IC8vIDEKKyAgICBjYXNl
IDg0OiAvLyAyCisgICAgY2FzZSA4NTogLy8gMworICAgIGNhc2UgODY6IC8vIDQKKyAgICBjYXNl
IDg3OiAvLyA1CisgICAgY2FzZSA4ODogLy8gNgorICAgIGNhc2UgODk6IC8vIDcKKyAgICBjYXNl
IDkxOiAvLyA4CisgICAgY2FzZSA5MjogLy8gOQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tl
eVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkKLSAgICAgICAg
cmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0tleVVwOworICAgIGlmIChbZXZlbnQgdHlwZV0gIT0g
TlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCisgICAgICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0g
TlNFdmVudFR5cGVLZXlVcDsKICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBmYWlscyBpZiB0aGUg
dXNlciBwcmVzc2VzIGJvdGggU2hpZnQga2V5cyBhdCBvbmNlLCBmb3IgZXhhbXBsZToKICAgICAv
LyB3ZSB0cmVhdCByZWxlYXNpbmcgb25lIG9mIHRoZW0gYXMga2V5RG93bi4KICAgICBzd2l0Y2gg
KFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCi0g
ICAgICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgcmV0dXJuIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAg
Ci0gICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICByZXR1cm4gKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAotICAgICAgICBjYXNlIDYwOiAvLyBS
aWdodCBTaGlmdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBO
U1NoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAotICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgIHJldHVy
biAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSA9PSAwOwotICAg
ICAgICAgICAgCi0gICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAgICBjYXNlIDYy
OiAvLyBSaWdodCBDdHJsCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TQ29udHJvbEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA2
MzogLy8gRnVuY3Rpb24KLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNGdW5jdGlvbktleU1hc2spID09IDA7CisgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFu
ZAorICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAorICAgICAgICByZXR1cm4gIShbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCk7CisKKyAgICBjYXNl
IDU3OiAvLyBDYXBzbG9jaworICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spOworCisgICAgY2FzZSA1NjogLy8gTGVmdCBT
aGlmdAorICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0CisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCk7CisKKyAgICBjYXNl
IDU4OiAvLyBMZWZ0IEFsdAorICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAorICAgICAgICByZXR1
cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKTsK
KworICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwK
KyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbnRyb2wpOworCisgICAgY2FzZSA2MzogLy8gRnVuY3Rpb24KKyAgICAgICAgcmV0dXJu
ICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uKTsK
ICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCkBAIC0zMzksNyArMzEzLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZpZXJz
IG1vZGlmaWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHVuc2lnbmVkIG1vZGlm
aWVycyA9IDA7CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIw
MAogICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fw
c0xvY2spCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fwc0xvY2tLZXk7CiAgICAg
aWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkKQEAg
LTM1MCwxOCArMzIzLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlm
aWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZl
bnQ6OkFsdEtleTsKICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtleTsK
LSNlbHNlCi0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1h
c2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fwc0xvY2tLZXk7Ci0gICAgaWYg
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKQotICAgICAgICBtb2RpZmll
cnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OwotICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0NvbnRyb2xLZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRy
b2xLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFz
aykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpBbHRLZXk7Ci0gICAgaWYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8
PSBXZWJFdmVudDo6TWV0YUtleTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIChXZWJFdmVudDo6TW9k
aWZpZXJzKW1vZGlmaWVyczsKIH0KQEAgLTQ4NCwxMCArNDQ1LDcgQEAgV2ViS2V5Ym9hcmRFdmVu
dCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQs
IGJvb2wgaGEKICAgICBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlICAgICAgID0gd2luZG93c0tl
eUNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlICAg
ICAgICA9IFtldmVudCBrZXlDb2RlXTsKICAgICBpbnQgbWFjQ2hhckNvZGUgICAgICAgICAgICAg
ICAgID0gV0tHZXROU0V2ZW50S2V5Q2hhcihldmVudCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgYm9vbCBhdXRvUmVwZWF0ICAgICAgICAgICAgICAgICA9IChbZXZl
bnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpICYmIFtldmVudCBpc0FSZXBlYXRdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGJvb2wgYXV0b1JlcGVhdCAgICAgICAgICAgICAg
ICAgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgJiYgW2V2ZW50IGlz
QVJlcGVhdF07CiAgICAgYm9vbCBpc0tleXBhZCAgICAgICAgICAgICAgICAgICA9IGlzS2V5cGFk
RXZlbnQoZXZlbnQpOwogICAgIGJvb2wgaXNTeXN0ZW1LZXkgICAgICAgICAgICAgICAgPSBmYWxz
ZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogICAgIFdlYkV2ZW50
OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uLm1tCmluZGV4IGJhMTk5NmIyMTc0ZTIzZTQ3Nzg0NjM3ZWQ3MjEwN2M3NTFiMGMzY2Uu
LmU1YTU4MWU3ODUzZDE1ZjFiMWQ2YjExOWYzNTY5ODVhYzEyOWEzMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9u
Lm1tCkBAIC0zMyw2ICszMywxMCBAQAogI2ltcG9ydCAiX1dLVXNlckluaXRpYXRlZEFjdGlvbklu
dGVybmFsLmgiCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKKyNpZiBQTEFURk9STShNQUMp
CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNl
bmRpZgorCiBAaW1wbGVtZW50YXRpb24gV0tOYXZpZ2F0aW9uQWN0aW9uCiAKIHN0YXRpYyBXS05h
dmlnYXRpb25UeXBlIHRvV0tOYXZpZ2F0aW9uVHlwZShXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSBu
YXZpZ2F0aW9uVHlwZSkKQEAgLTc5LDcgKzgzLDYgQEAgc3RhdGljIE5TRXZlbnRNb2RpZmllckZs
YWdzIHRvTlNFdmVudE1vZGlmaWVyRmxhZ3MoV2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXJzIG0K
IHsKICAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBtb2RpZmllckZsYWdzID0gMDsKIAotI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCiAgICAgaWYgKG1vZGlmaWVy
cyAmIFdlYktpdDo6V2ViRXZlbnQ6OkNhcHNMb2NrS2V5KQogICAgICAgICBtb2RpZmllckZsYWdz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKICAgICBpZiAobW9kaWZpZXJzICYgV2Vi
S2l0OjpXZWJFdmVudDo6U2hpZnRLZXkpCkBAIC05MCwxOCArOTMsNiBAQCBzdGF0aWMgTlNFdmVu
dE1vZGlmaWVyRmxhZ3MgdG9OU0V2ZW50TW9kaWZpZXJGbGFncyhXZWJLaXQ6OldlYkV2ZW50OjpN
b2RpZmllcnMgbQogICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdP
cHRpb247CiAgICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6Ok1ldGFLZXkpCiAg
ICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7Ci0jZWxz
ZQotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpDYXBzTG9ja0tleSkKLSAg
ICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0FscGhhU2hpZnRLZXlNYXNrOwotICAgIGlmIChtb2Rp
ZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpTaGlmdEtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFn
cyB8PSBOU1NoaWZ0S2V5TWFzazsKLSAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVu
dDo6Q29udHJvbEtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0NvbnRyb2xLZXlNYXNr
OwotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpBbHRLZXkpCi0gICAgICAg
IG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOwotICAgIGlmIChtb2RpZmllcnMg
JiBXZWJLaXQ6OldlYkV2ZW50OjpNZXRhS2V5KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
Q29tbWFuZEtleU1hc2s7Ci0jZW5kaWYKIAogICAgIHJldHVybiBtb2RpZmllckZsYWdzOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDMy
ZTYzOWM0ZDkxOWFkMTZlOWE5NDgyYjkzNWNlZjA0NjM3NzFmYmEuLjc2M2Q5MDYwNTc1OTkzZDhj
YjA3M2M2YWE0ZTA5NWMwZGJiNGE4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTkzLDYgKzkzLDcgQEAKICNpbXBvcnQgPFdlYktpdFN5
c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0
QWRkaXRpb25zL1dlYlZpZXdJbXBsSW5jbHVkZXMuaD4KQEAgLTYyMCwxMSArNjIxLDggQEAgYm9v
bCBXZWJWaWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIoKQogICAgIGlmIChkaXJlY3Rpb24g
IT0gTlNEaXJlY3RTZWxlY3Rpb24pIHsKICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAg
Y3VycmVudEV2ZW50XTsKICAgICAgICAgTlNFdmVudCAqa2V5Ym9hcmRFdmVudCA9IG5pbDsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgaWYgKFtldmVudCB0eXBl
XSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApCisgICAgICAgIGlmIChb
ZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2
ZW50VHlwZUtleVVwKQogICAgICAgICAgICAga2V5Ym9hcmRFdmVudCA9IGV2ZW50OwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtX3BhZ2UtPnNldEluaXRpYWxGb2N1cyhk
aXJlY3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2ZW50ICE9IG5pbCwgTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwgZmFsc2UsIHsgfSksIFtdKFdl
YktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7
CkBAIC04NDgsMTAgKzg0Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNl
dHNJZkF1dG9tYXRpYygpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5TV2luZG93ICp3aW5kb3cg
PSBtX3ZpZXcud2luZG93OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IGlmICgod2luZG93LnN0eWxlTWFzayAmIE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2sp
ICYmICF3aW5kb3cudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9z
aW5nU2Nyb2xsVmlld10pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAo
KHdpbmRvdy5zdHlsZU1hc2sgJiBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXcp
ICYmICF3aW5kb3cudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9z
aW5nU2Nyb2xsVmlld10pIHsKICAgICAgICAgTlNSZWN0IGNvbnRlbnRMYXlvdXRSZWN0ID0gW21f
dmlldyBjb252ZXJ0UmVjdDp3aW5kb3cuY29udGVudExheW91dFJlY3QgZnJvbVZpZXc6bmlsXTsK
ICAgICAgICAgQ0dGbG9hdCBuZXdUb3BDb250ZW50SW5zZXQgPSBOU01heFkoY29udGVudExheW91
dFJlY3QpIC0gTlNIZWlnaHQoY29udGVudExheW91dFJlY3QpOwogICAgICAgICBpZiAobV90b3BD
b250ZW50SW5zZXQgIT0gbmV3VG9wQ29udGVudEluc2V0KQpAQCAtMTIyOCwxMCArMTIyMyw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3coKQogCiAgICAgICAgIGlmICgh
bV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMg
PSBjcmVhdGVXZWFrUHRyKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2Fs
TW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1hc2sgaGFuZGxlcjpb
d2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBb
TlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tG
bGFnc0NoYW5nZWQgaGFuZGxlcjpbd2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVu
dCkgewogICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAg
d2Vha1RoaXMtPnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoZmxh
Z3NDaGFuZ2VkRXZlbnQpOwogICAgICAgICAgICAgICAgIHJldHVybiBmbGFnc0NoYW5nZWRFdmVu
dDsKQEAgLTEzMDIsMTIgKzEyOTQsOSBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjpoaXRUZXN0KENH
UG9pbnQgcG9pbnQpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0No
YW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCisgICAg
TlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2Nh
dGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFu
Z2VkRXZlbnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0
YW1wIHdpbmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKICAgICAgICAg
Y29udGV4dDpudWxscHRyIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2Vi
RXZlbnQoZmFrZUV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOwogICAg
IG1fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7CiB9CkBAIC0xNjU2LDEwICsxNjQ1
LDcgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldygpCiBO
U1dpbmRvdyAqV2ViVmlld0ltcGw6OmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKQogewogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0gc3R5bGVNYXNrOihOU0JvcmRl
cmxlc3NXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrKSBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dIGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0gc3R5bGVN
YXNrOihOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgfCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6
YWJsZSkgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSBhdXRvcmVsZWFz
ZV07CiAjZWxzZQogICAgIHJldHVybiBuaWw7CiAjZW5kaWYKQEAgLTI2MzEsOSArMjYxNyw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnJlbW92ZVRyYWNraW5nUmVjdHMoTlNUcmFja2luZ1JlY3RUYWcg
KnRhZ3MsIGludCBjb3VudCkKIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFeGl0
ZWQoKQogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051
bWJlciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNNb3VzZUV4aXRlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhp
dEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUV4aXRlZAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdz
OjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0
YW1wOjAKQEAgLTI2NDIsMTYgKzI2MjYsMTMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xU
aXBNb3VzZUV4aXRlZCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGE6bV90cmFja2luZ1JlY3RVc2Vy
RGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW21fdHJhY2tpbmdSZWN0
T3duZXIgbW91c2VFeGl0ZWQ6ZmFrZUV2ZW50XTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2Vu
ZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQg
d2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVy
RXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQg
PSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVk
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlv
bjpOU01ha2VQb2ludCgwLCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjY2MCw3ICsyNjQxLDYgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRh
Om1fdHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
ICAgIFttX3RyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwogfQogCkBA
IC0yODE2LDEwICsyNzk2LDcgQEAgc3RhdGljIFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdz
IGFwcGxpY2F0aW9uRmxhZ3NGb3JEcmFnKE5TVmlldyAqdmlldywgaWQgPE4KICAgICAgICAgZmxh
Z3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSGFzQXR0YWNoZWRTaGVldDsKICAgICBpZiAo
ZHJhZ2dpbmdJbmZvLmRyYWdnaW5nU291cmNlID09IHZpZXcpCiAgICAgICAgIGZsYWdzIHw9IFdl
YkNvcmU6OkRyYWdBcHBsaWNhdGlvbklzU291cmNlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbTlNBcHAgY3VycmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYg
TlNBbHRlcm5hdGVLZXlNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChbTlNBcHAgY3VycmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxh
Z09wdGlvbikKICAgICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNDb3B5
S2V5RG93bjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9u
RmxhZ3M+KGZsYWdzKTsKIApAQCAtMzM1OSwxMCArMzMzNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OnNtYXJ0TWFnbmlmeVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkKIAogdm9pZCBXZWJWaWV3SW1w
bDo6c2V0TGFzdE1vdXNlRG93bkV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9
PSBOU0xlZnRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duIHx8IGV2
ZW50LnR5cGUgPT0gTlNPdGhlck1vdXNlRG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTGVmdE1v
dXNlRG93biB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gfHwgZXZl
bnQudHlwZSA9PSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duKTsKIAogICAgIGlmIChldmVudCA9
PSBtX2xhc3RNb3VzZURvd25FdmVudC5nZXQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzM5OSwx
MSArMzM3Myw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigp
CiAKIHZvaWQgV2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQoTlNFdmVudCAqZXZlbnQsIGJv
b2wgZXZlbnRXYXNIYW5kbGVkKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlw
ZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAKICAgICBpZiAodHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4
dElucHV0S2V5RG93bihldmVudCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0NzksMTEgKzM0NTAs
OCBAQCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBXZWJWaWV3SW1wbDo6Y29sbGVj
dEtleWJvYXJkTGF5b3V0Q29tbWFuZHNGb3JFdgogewogICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+IGNvbW1hbmRzOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCisgICAgaWYgKFtldmVudCB0
eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24pCiAgICAgICAgIHJldHVybiBjb21tYW5kczsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIEFTU0VSVCghbV9jb2xsZWN0ZWRLZXlw
cmVzc0NvbW1hbmRzKTsKICAgICBtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMgPSAmY29tbWFu
ZHM7CkBAIC0zODU4LDExICszODI2LDggQEAgYm9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVx
dWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgLy8gV2UgZ2V0IEVzYyBrZXkgaGVyZSBhZnRl
ciBwcm9jZXNzaW5nIGVpdGhlciBFc2Mgb3IgQ21kK3BlcmlvZC4gVGhlIGZvcm1lciBzdGFydHMg
YXMgYSBrZXlEb3duLCBhbmQgdGhlIGxhdHRlciBzdGFydHMgYXMgYSBrZXkgZXF1aXZhbGVudCwK
ICAgICAvLyBidXQgYm90aCBnZXQgdHJhbnNmb3JtZWQgdG8gYSBjYW5jZWxPcGVyYXRpb246IGNv
bW1hbmQsIGV4ZWN1dGluZyB3aGljaCBwYXNzZXMgYW4gRXNjIGtleSBldmVudCB0byAtcGVyZm9y
bUtleUVxdWl2YWxlbnQ6LgogICAgIC8vIERvbid0IGludGVycHJldCB0aGlzIGV2ZW50IGFnYWlu
LCBhdm9pZGluZyByZS1lbnRyYW5jeSBhbmQgaW5maW5pdGUgbG9vcHMuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5n
TW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrKSkKKyAgICBpZiAoW1tl
dmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0g
JiYgIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRGV2aWNlSW5k
ZXBlbmRlbnRGbGFnc01hc2spKQogICAgICAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyUGVy
Zm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
CiAgICAgaWYgKG1fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpIHsKICAgICAgICAgLy8gV2ViQ29y
ZSBoYXMgYWxyZWFkeSBzZWVuIHRoZSBldmVudCwgbm8gbmVlZCBmb3IgY3VzdG9tIHByb2Nlc3Np
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1
Z2luUHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBmMDdkMjc5ZDYzN2QzMGY4ZjUwNTMx
N2Q4ZjA5NjA1NTdhMTFkMmQyLi44ZjM3ZDQyNjE1MmI2MTdkNTVjOTE0ODgxNTExNGY4YzMzOWU3
YzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1
Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBv
cnQgPGNydF9leHRlcm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8c3Bh
d24uaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBAaW50ZXJmYWNlIFdLUGxhY2Vob2xk
ZXJNb2RhbFdpbmRvdyA6IE5TV2luZG93IApAQCAtMjMxLDEwICsyMzIsNyBAQCB2b2lkIFBsdWdp
blByb2Nlc3NQcm94eTo6YmVnaW5Nb2RhbCgpCiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2lu
ZG93KTsKICAgICBBU1NFUlQoIW1fYWN0aXZhdGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRv
cHROUyhbW1dLUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNr
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dL
UGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VS
ZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFj
a2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogICAgIFttX3BsYWNlaG9s
ZGVyV2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpOT107CiAgICAgCiAgICAgbV9hY3RpdmF0
aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9uV2lsbEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiBv
YmplY3Q6TlNBcHAgcXVldWU6bmlsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggYTQ4Mzk2NGQ4ZjFmMjI2ZDRh
ZWNjMjdjY2IwZjA3NjA3MWI3YmJkMS4uYmI1YWQ3YzIxZTgxMGNhMzY1NjVlY2M3NzdkMDZhZjMx
YmIwMjg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250
ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNDgsNiArNDgsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9OU1NoYXJpbmdTZXJ2aWNlU1BJLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29t
cGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApA
QCAtNDYzLDEwICs0NjQsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250
ZXh0TWVudVdpdGhJdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbgogICAgIFtbV0tNZW51
VGFyZ2V0IHNoYXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0aGlzXTsKIAogICAgIE5TUG9p
bnQgbWVudUxvY2F0aW9uID0gW21fd2ViVmlldyBjb252ZXJ0UG9pbnQ6bV9jb250ZXh0Lm1lbnVM
b2NhdGlvbigpIHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmln
aHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAgd2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmls
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2lu
ZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwogICAgIFtOU01lbnUgcG9wVXBDb250ZXh0TWVudTptX21lbnUuZ2V0KCkgd2l0aEV2ZW50
OmV2ZW50IGZvclZpZXc6bV93ZWJWaWV3XTsKIAogICAgIGlmIChtX2NvbnRleHRNZW51TGlzdGVu
ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVj
dG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3Rv
clByb3h5TWFjLm1tCmluZGV4IDBhNzk5MTM0NmQxNWNjZmFjNzc0MzVlZjMwZWY4ZGY4MjJhZmFl
MjMuLmYwNmI1ODQyYWNkNTM0ZGZlMjQxMGZlY2E5YTFhZGZiNmVhOTc3OTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpA
QCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIFNPRlRf
TElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJhbWV3b3Jrcywg
QSkKQEAgLTQ4LDEwICs0OSw3IEBAIFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3Bl
Y3RvclVJLCBQcml2YXRlRnJhbWV3b3JrcywgQSkKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotc3RhdGljIGNvbnN0IE5TVUludGVnZXIgd2luZG93U3R5bGVNYXNrID0gTlNUaXRsZWRX
aW5kb3dNYXNrIHwgTlNDbG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93
TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRv
d01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitzdGF0aWMgY29uc3QgTlNVSW50
ZWdlciB3aW5kb3dTdHlsZU1hc2sgPSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93
U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dpbmRvd1N0eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNX
aW5kb3dTdHlsZU1hc2tSZXNpemFibGUgfCBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVu
dFZpZXc7CiAKIC8vIFRoZSB0aW1lIHdlIGtlZXAgb3VyIFdlYlZpZXcgYWxpdmUgYmVmb3JlIGNs
b3NpbmcgaXQgYW5kIGl0cyBwcm9jZXNzLgogLy8gUmV1c2luZyB0aGUgV2ViVmlldyBpbXByb3Zl
cyBzdGFydCB1cCB0aW1lIGZvciBwZW9wbGUgdGhhdCBqdW1wIGluIGFuZCBvdXQgb2YgdGhlIElu
c3BlY3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9w
dXBNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVw
TWVudVByb3h5TWFjLm1tCmluZGV4IGQyOWQwODkwNTJjODg3YWZiODY0MjM4NDU1YWExODg0YjRk
ZDQ2NWMuLmMyMjlmYmQwYjhiZWJiYWYxMTVjMzUzZTgzYzdlMDg0NjUwNjAzNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5t
bQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0
ICJXZWJQb3B1cEl0ZW0uaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03NCwxOSArNzUsMTMgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eU1hYzo6cG9wdWxhdGUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBO
U0ZvbnQgKmYKICAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4g
cGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdy
YXBoU3R5bGVdIG11dGFibGVDb3B5XSk7CiAgICAgICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24g
d3JpdGluZ0RpcmVjdGlvbiA9IGl0ZW1zW2ldLm1fdGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1dy
aXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0
OwogICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndy
aXRpbmdEaXJlY3Rpb25dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9
PSBMVFIgPyBOU0xlZnRUZXh0QWxpZ25tZW50IDogTlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNl
dEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1RleHRBbGlnbm1lbnRMZWZ0
IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJs
ZURpY3Rpb25hcnk+IGF0dHJpYnV0ZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBh
bGxvY10gaW5pdFdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhT
dHlsZS5nZXQoKSwgTlNQYXJhZ3JhcGhTdHlsZUF0dHJpYnV0ZU5hbWUsCiAgICAgICAgICAgICAg
ICAgZm9udCwgTlNGb250QXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgIG5pbF0pOwogICAgICAg
ICAgICAgaWYgKGl0ZW1zW2ldLm1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICAgICAgUmV0YWluUHRyPE5T
TnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2Nd
IGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNUZXh0V3JpdGluZ0RpcmVjdGlv
bk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAg
ICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtb
TlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0
aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJh
eT4gd3JpdGluZ0RpcmVjdGlvbkFycmF5ID0gYWRvcHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRX
aXRoT2JqZWN0czp3cml0aW5nRGlyZWN0aW9uVmFsdWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAg
ICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJyYXkuZ2V0KCkg
Zm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAgICAgICAgfQpA
QCAtMTU0LDE4ICsxNDksMTUgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVw
TWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKIAogICAgIE5TQ29u
dHJvbFNpemUgY29udHJvbFNpemU7CiAgICAgc3dpdGNoIChkYXRhLm1lbnVTaXplKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1Jl
Z3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplUmVn
dWxhcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6
UG9wdXBNZW51U2l6ZVNtYWxsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TU21hbGxDb250cm9s
U2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVN
aW5pOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TTWluaUNvbnRyb2xTaXplOworICAgICAgICBj
b250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVNaW5pOwogICAgICAgICBicmVhazsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBSZWY8V2ViUG9wdXBNZW51UHJveHlN
YWM+IHByb3RlY3QoKnRoaXMpOwpAQCAtMTgzLDEzICsxNzUsMTEgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0
aW9uIHRleHQKICAgICBpZiAoIW1fY2xpZW50LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25F
dmVudCgpKQogICAgICAgICByZXR1cm47CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgTlNFdmVudCogaW5pdGlhdGluZ05TRXZlbnQgPSBtX2NsaWVudC0+Y3Vy
cmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKS0+bmF0aXZlRXZlbnQoKTsKLSAgICBpZiAo
W2luaXRpYXRpbmdOU0V2ZW50IHR5cGVdICE9IE5TTGVmdE1vdXNlRG93bikKKyAgICBpZiAoW2lu
aXRpYXRpbmdOU0V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ05TRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0
aW5nTlNFdmVudCB0aW1lc3RhbXBdCkBAIC0xOTgsMTMgKzE4OCwxNCBAQCB2b2lkIFdlYlBvcHVw
TWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJl
Y3Rpb24gdGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVu
dE51bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQgZXZlbnROdW1iZXJdCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlja0NvdW50Oltpbml0aWF0aW5nTlNFdmVudCBj
bGlja0NvdW50XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmVzc3VyZTpbaW5pdGlhdGluZ05TRXZlbnQgcHJlc3N1cmVdXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKIAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVT
XTsKKyAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVNb3VzZU1vdmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9u
OltbbV93ZWJWaWV3IHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVk
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3
IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VM
b2NhdGlvbl1dCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nTlNFdmVudCBtb2RpZmllckZs
YWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlh
dGluZ05TRXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvd051bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQgd2luZG93TnVtYmVyXQpAQCAtMjEyLDcgKzIw
Myw2IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50
UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
aWNrQ291bnQ6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTow
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZh
a2VFdmVudCBhdFN0YXJ0OllFU107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2lu
TWFjLm1tCmluZGV4IDFmOTkzMGUyZDg5ZmUwMDEzMzAwYTAxNGE0MmQ2MTM5ODA3OTJhMjYuLmNl
ZDk0Nzg0Mjc3MWNmMTlkYTlkNTIwMDJiYjJmOTNhYTYwMTgxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5N
YWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21h
Yy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCA8V2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDc1LDEzICs0NzYsMTMgQEAgc3RhdGljIHVpbnQzMl90
IG1vZGlmaWVyRmxhZ3MoY29uc3QgV2ViRXZlbnQmIGV2ZW50KQogICAgIHVpbnQzMl90IG1vZGlm
aWVycyA9IDA7CiAKICAgICBpZiAoZXZlbnQuc2hpZnRLZXkoKSkKLSAgICAgICAgbW9kaWZpZXJz
IHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ1NoaWZ0OwogICAgIGlmIChldmVudC5jb250cm9sS2V5KCkpCi0gICAgICAgIG1vZGlmaWVy
cyB8PSBOU0NvbnRyb2xLZXlNYXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2w7CiAgICAgaWYgKGV2ZW50LmFsdEtleSgpKQotICAgICAgICBtb2RpZmll
cnMgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ09wdGlvbjsKICAgICBpZiAoZXZlbnQubWV0YUtleSgpKQotICAgICAgICBtb2Rp
ZmllcnMgfD0gTlNDb21tYW5kS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIAogICAgIHJldHVybiBtb2RpZmllcnM7CiB9CkBAIC03
MDYsMTUgKzcwNywxNSBAQCBzdGF0aWMgdW5zaWduZWQgbW9kaWZpZXJGbGFncyhjb25zdCBXZWJL
ZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQogICAgIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3Mg
PSAwOwogCiAgICAgaWYgKGtleWJvYXJkRXZlbnQuY2Fwc0xvY2tLZXkoKSkKLSAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBOU0FscGhhU2hpZnRLZXlNYXNrOworICAgICAgICBtb2RpZmllckZsYWdz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5z
aGlmdEtleSgpKQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOworICAg
ICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICAgICBpZiAo
a2V5Ym9hcmRFdmVudC5jb250cm9sS2V5KCkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlND
b250cm9sS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29udHJvbDsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5hbHRLZXkoKSkKLSAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBOU0FsdGVybmF0ZUtleU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5tZXRh
S2V5KCkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKKyAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKIAogICAgIHJl
dHVybiBtb2RpZmllckZsYWdzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IDVlZGU1
NmVlZTQwYWNmZGI5OTAxMTlkZTdhY2U5MThlNjc4YmM2NjYuLjEyNTE4ZGYzMzRjZjNmZGQ2NThk
Zjg5MTljMzM2MWIwODQyZTJkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTgwLDYg
KzgwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMjc4LDMzICsxMjc5LDI4IEBAIHZvaWQg
UERGUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QsIGNvbnN0IFdURjo6U3Ry
aW5nJikKICAgICAKIHN0YXRpYyBOU1VJbnRlZ2VyIG1vZGlmaWVyRmxhZ3NGcm9tV2ViRXZlbnQo
Y29uc3QgV2ViRXZlbnQmIGV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TU2hpZnRLZXlNYXNrIDogMCkK
LSAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNDb250cm9sS2V5TWFzayA6IDApCi0g
ICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNBbHRlcm5hdGVLZXlNYXNrIDogMCkKLSAgICAg
ICAgfCAoZXZlbnQubWV0YUtleSgpID8gTlNDb21tYW5kS2V5TWFzayA6IDApOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TRXZl
bnRNb2RpZmllckZsYWdTaGlmdCA6IDApCisgICAgICAgIHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/
IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sIDogMCkKKyAgICAgICAgfCAoZXZlbnQuYWx0S2V5
KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uIDogMCkKKyAgICAgICAgfCAoZXZlbnQubWV0
YUtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQgOiAwKTsKIH0KICAgICAKIHN0YXRp
YyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5T
RXZlbnRUeXBlJiBldmVudFR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsKICAgICBjYXNlIFdlYkV2ZW50OjpLZXlE
b3duOgotICAgICAgICBldmVudFR5cGUgPSBOU0tleURvd247CisgICAgICAgIGV2ZW50VHlwZSA9
IE5TRXZlbnRUeXBlS2V5RG93bjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBXZWJF
dmVudDo6S2V5VXA6Ci0gICAgICAgIGV2ZW50VHlwZSA9IE5TS2V5VXA7CisgICAgICAgIGV2ZW50
VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2Ug
V2ViRXZlbnQ6Ok1vdXNlRG93bjoKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBX
ZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VF
dmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93
bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0
QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlRG93bjsKKyAgICAg
ICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd247CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEzMTIsMTAgKzEzMDgsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdl
YkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBj
YXNlIFdlYkV2ZW50OjpNb3VzZVVwOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0
IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VV
cDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1
dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZVVwOworICAgICAgICAg
ICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTEzMjMsMTMgKzEzMTksMTMgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50
KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBjYXNlIFdl
YkV2ZW50OjpNb3VzZU1vdmU6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2Vi
TW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZl
bnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZURyYWdn
ZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpS
aWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZURyYWdnZWQ7
CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6Tm9C
dXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU01vdXNlTW92ZWQ7CisgICAgICAgICAg
ICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEz
MzcsNyArMTMzMyw2IEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25z
dCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IH0KICAgICAKIE5TRXZlbnQgKlBERlBsdWdpbjo6bnNFdmVudEZvcldlYk1vdXNlRXZlbnQoY29u
c3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGM0ZDI1NmM1NTlmYjc0NmM4OTQ2ZmUx
ODA2ZjdhNDM1ZGIxNWI1NWUuLmNmODk5YzcyYTgxNDkwYWI1MTI2MmM1M2E1MWVmMDAyMzY1MmI1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCkBAIC03OSw2ICs3OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VVSUQuaD4KICNp
bXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1l
Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTk2MywxMCArOTY0LDEwIEBAIHZvaWQg
UERGUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QsIGNvbnN0IFdURjo6U3Ry
aW5nJikKIAogc3RhdGljIE5TVUludGVnZXIgbW9kaWZpZXJGbGFnc0Zyb21XZWJFdmVudChjb25z
dCBXZWJFdmVudCYgZXZlbnQpCiB7Ci0gICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNT
aGlmdEtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0NvbnRy
b2xLZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQuYWx0S2V5KCkgPyBOU0FsdGVybmF0ZUtl
eU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0NvbW1hbmRLZXlNYXNr
IDogMCk7CisgICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxh
Z1NoaWZ0IDogMCkKKyAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2wgOiAwKQorICAgICAgICB8IChldmVudC5hbHRLZXkoKSA/IE5TRXZlbnRN
b2RpZmllckZsYWdPcHRpb24gOiAwKQorICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCA6IDApOwogfQogICAgIAogc3RhdGljIGJvb2wgZ2V0RXZl
bnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2
ZW50VHlwZSkKQEAgLTk3NSwxMCArOTc2LDEwIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZy
b21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAg
ICAgY2FzZSBXZWJFdmVudDo6TW91c2VEb3duOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0
PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBX
ZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0
TW91c2VEb3duOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVu
dDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEb3du
OworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtOTg2LDEwICs5ODcsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBl
RnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkK
ICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZVVwOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0
PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBX
ZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0
TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpS
aWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZVVwOworICAg
ICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTk5NywxMyArOTk4LDEzIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJF
dmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2Fz
ZSBXZWJFdmVudDo6TW91c2VNb3ZlOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0
IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VE
cmFnZ2VkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFn
Z2VkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVu
dDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEcmFn
Z2VkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dl
ZDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6
Ok5vQnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNNb3VzZU1vdmVkOworICAgICAg
ICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVNb3VzZU1vdmVkOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xNzU2LDExICsxNzU3LDExIEBAIGJvb2wgUERGUGx1Z2luOjpIVUQ6Om1vdXNlRXZlbnQoUGFn
ZU92ZXJsYXkmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogCiAgICAgc3dpdGNo
IChldmVudC50eXBlKCkpIHsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ6Ci0g
ICAgICAgIHJldHVybiBbcGRmTGF5ZXJDb250cm9sbGVyIG1vdXNlRHJhZ2dlZDpldmVudFdpdGhU
eXBlKE5TTGVmdE1vdXNlRHJhZ2dlZCkgaW5IVURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXNdOworICAgICAgICByZXR1cm4gW3BkZkxheWVyQ29udHJvbGxlciBtb3VzZURy
YWdnZWQ6ZXZlbnRXaXRoVHlwZShOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQpIGluSFVEV2l0
aEJvdW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlUHJlc3NlZDoKLSAgICAgICAgcmV0dXJuIFtwZGZMYXllckNvbnRyb2xsZXIg
bW91c2VEb3duOmV2ZW50V2l0aFR5cGUoTlNMZWZ0TW91c2VEb3duKSBpbkhVRFdpdGhCb3VuZHM6
SFVEUmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CisgICAgICAgIHJldHVybiBbcGRmTGF5ZXJD
b250cm9sbGVyIG1vdXNlRG93bjpldmVudFdpdGhUeXBlKE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
bikgaW5IVURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIGNh
c2UgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDoKLSAgICAgICAgcmV0dXJuIFtwZGZMYXll
ckNvbnRyb2xsZXIgbW91c2VVcDpldmVudFdpdGhUeXBlKE5TTGVmdE1vdXNlVXApIGluSFVEV2l0
aEJvdW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKKyAgICAgICAgcmV0dXJuIFtw
ZGZMYXllckNvbnRyb2xsZXIgbW91c2VVcDpldmVudFdpdGhUeXBlKE5TRXZlbnRUeXBlTGVmdE1v
dXNlVXApIGluSFVEV2l0aEJvdW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAg
ICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3Rh
dGlvbi5tbQppbmRleCA2YzYwYmRkZTk1ZmRkMzE3ZjZiNzE0ZTFmNDRmNmVlYjJmMzNkMzBiLi42
MDMxYzU5MGRjMjMxZWNjZmVlYTIwYTA0N2Y4NTY5NmNhNWQ4YTNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
VGV4dEFubm90YXRpb24ubW0KQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRN
TFRleHRBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTMs
MjEgKzU0LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBjb25zdCBT
dHJpbmcgY3NzQWxpZ25tZW50VmFsdWVGb3JOU1RleHRBbGlnbm1lbnQoTlNUZXh0QWxpZ25tZW50
IGFsaWdubWVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBz
d2l0Y2ggKGFsaWdubWVudCkgewotICAgIGNhc2UgTlNMZWZ0VGV4dEFsaWdubWVudDoKKyAgICBj
YXNlIE5TVGV4dEFsaWdubWVudExlZnQ6CiAgICAgICAgIHJldHVybiAibGVmdCI7Ci0gICAgY2Fz
ZSBOU1JpZ2h0VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudFJpZ2h0Ogog
ICAgICAgICByZXR1cm4gInJpZ2h0IjsKLSAgICBjYXNlIE5TQ2VudGVyVGV4dEFsaWdubWVudDoK
KyAgICBjYXNlIE5TVGV4dEFsaWdubWVudENlbnRlcjoKICAgICAgICAgcmV0dXJuICJjZW50ZXIi
OwotICAgIGNhc2UgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxp
Z25tZW50SnVzdGlmaWVkOgogICAgICAgICByZXR1cm4gImp1c3RpZnkiOwotICAgIGNhc2UgTlNO
YXR1cmFsVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudE5hdHVyYWw6CiAg
ICAgICAgIHJldHVybiAiLXdlYmtpdC1zdGFydCI7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IGEzNmYzYjMyM2FiOTE2
NTE0NzdiZDNjN2JlMjhjNmEyM2RlOWIxN2QuLjYyNmU0MzZjNmFjNGZlNmI5YTdlYjUzYzJkMzU2
YmY3OTZmZjQ0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNDYsNiAr
NDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdUcnVuY2F0b3IuaD4KICNpbXBvcnQgPFdl
YktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTYzLDEwICs2
NCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9C
aXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEluCiAgICAgUmV0YWluUHRyPE5TR3JhcGhpY3ND
b250ZXh0PiBzYXZlZENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRd
OwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNz
Q29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNzQ29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1h
cC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1pl
cm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MSByZXNwZWN0
RmxpcHBlZDpZRVMgaGludHM6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRo
KCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlv
bjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlw
cGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRD
b250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KaW5kZXggZTFiM2VmYTk2MjExOGY5MTMw
YWU4ODdhMTA5ODRmNjFjM2M5YThlNi4uNjVlMmMxZjViNTZjYjNkZGUzNDU5N2Y1NDExYTUxNDY1
YTcwNzkyMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KQEAgLTQzLDYgKzQzLDcgQEAKIAogI2lmICFQTEFURk9STShJT1MpCiAj
aW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+IC8vIGZvciBHZXRDdXJyZW50RXZlbnRUaW1lKCkKKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zNTUsMzMgKzM1NiwzMyBAQCAtICh2b2lkKWNsZWFy
S2lsbFJpbmcKIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFj
dGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3Rpb24pCiB7CiAgICAgc3dpdGNoIChidXR0
b24pIHsKLSAgICAgICAgY2FzZSBMZWZ0TW91c2VCdXR0b246Ci0gICAgICAgICAgICBzd2l0Y2gg
KGFjdGlvbikgewotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEb3duOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91
c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TTGVmdE1vdXNlVXA7Ci0gICAgICAg
ICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBO
U0xlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGNhc2UgUmlnaHRNb3Vz
ZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAg
Y2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU1JpZ2h0TW91c2VE
b3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIE5TUmlnaHRNb3VzZVVwOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNSaWdodE1vdXNlRHJhZ2dlZDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7
Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBOU090aGVyTW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3RoZXJNb3VzZVVwOwotICAgICAgICAgICAgICAg
IGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNPdGhlck1v
dXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KKyAgICBjYXNlIExlZnRNb3VzZUJ1dHRvbjoKKyAg
ICAgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICAgICAgY2FzZSBNb3VzZURvd246CisgICAgICAg
ICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNl
VXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VVcDsKKyAgICAgICAg
Y2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91
c2VEcmFnZ2VkOworICAgICAgICB9CisgICAgY2FzZSBSaWdodE1vdXNlQnV0dG9uOgorICAgICAg
ICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAg
IHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6
CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CisgICAgICAgIGNh
c2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ7CisgICAgICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBzd2l0Y2ggKGFjdGlv
bikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50
VHlwZU90aGVyTW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICBy
ZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2Vk
OgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ7CisgICAg
ICAgIH0KICAgICB9CiAgICAgYXNzZXJ0KDApOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0V2
ZW50VHlwZT4oMCk7CkBAIC00MzMsMTEgKzQzNCwxMSBAQCAtICh2b2lkKXVwZGF0ZUNsaWNrQ291
bnRGb3JCdXR0b246KGludClidXR0b25OdW1iZXIKIHN0YXRpYyBpbnQgbW9kaWZpZXJGbGFncyhj
b25zdCBOU1N0cmluZyogbW9kaWZpZXJOYW1lKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAg
Y29uc3QgaW50IGNvbnRyb2xLZXlNYXNrID0gTlNDb250cm9sS2V5TWFzazsKLSAgICBjb25zdCBp
bnQgc2hpZnRLZXlNYXNrID0gTlNTaGlmdEtleU1hc2s7Ci0gICAgY29uc3QgaW50IGFsdGVybmF0
ZUtleU1hc2sgPSBOU0FsdGVybmF0ZUtleU1hc2s7Ci0gICAgY29uc3QgaW50IGNvbW1hbmRLZXlN
YXNrID0gTlNDb21tYW5kS2V5TWFzazsKLSAgICBjb25zdCBpbnQgY2Fwc0xvY2tLZXlNYXNrID0g
TlNBbHBoYVNoaWZ0S2V5TWFzazsKKyAgICBjb25zdCBpbnQgY29udHJvbEtleU1hc2sgPSBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKKyAgICBjb25zdCBpbnQgc2hpZnRLZXlNYXNrID0gTlNF
dmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAgIGNvbnN0IGludCBhbHRlcm5hdGVLZXlNYXNrID0g
TlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAgICBjb25zdCBpbnQgY29tbWFuZEtleU1hc2sg
PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKKyAgICBjb25zdCBpbnQgY2Fwc0xvY2tLZXlN
YXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOwogI2Vsc2UKICAgICBjb25zdCBpbnQg
Y29udHJvbEtleU1hc2sgPSBXZWJFdmVudEZsYWdNYXNrQ29udHJvbDsKICAgICBjb25zdCBpbnQg
c2hpZnRLZXlNYXNrID0gV2ViRXZlbnRGbGFnTWFza1NoaWZ0OwpAQCAtNjQzLDcgKzY0NCw3IEBA
IC0gKHZvaWQpbW91c2VNb3ZlVG9YOihpbnQpeCBZOihpbnQpeQogICAgIE5TVmlldyAqdmlldyA9
IFttYWluRnJhbWUgd2ViVmlld107CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBsYXN0TW91c2VQ
b3NpdGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDpOU01ha2VQb2ludCh4LCBbdmlldyBmcmFtZV0u
c2l6ZS5oZWlnaHQgLSB5KSB0b1ZpZXc6bmlsXTsKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0dG9uRG93biA/IE5TTGVmdE1vdXNl
RHJhZ2dlZCA6IE5TTW91c2VNb3ZlZCkKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0dG9uRG93biA/IE5TRXZlbnRUeXBlTGVmdE1v
dXNlRHJhZ2dlZCA6IE5TRXZlbnRUeXBlTW91c2VNb3ZlZCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVudFRp
bWVdCkBAIC03NzcsNyArNzc4LDcgQEAgLSAoTlNBcnJheSAqKWNvbnRleHRDbGljawogICAgIFtb
W21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKICAgICBbc2VsZiB1
cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uOlJpZ2h0TW91c2VCdXR0b25dOwogCi0gICAgTlNFdmVu
dCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93bgor
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVudFRpbWVdCkBAIC0xMDEzLDcgKzEw
MTQsNyBAQCAtICh2b2lkKWtleURvd246KE5TU3RyaW5nICopY2hhcmFjdGVyIHdpdGhNb2RpZmll
cnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVycwogCiAgICAgaWYgKFtjaGFyYWN0ZXIgbGVu
Z3RoXSA9PSAxICYmIFtjaGFyYWN0ZXIgY2hhcmFjdGVyQXRJbmRleDowXSA+PSAnQScgJiYgW2No
YXJhY3RlciBjaGFyYWN0ZXJBdEluZGV4OjBdIDw9ICdaJykgewogI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgIG1vZGlm
aWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogI2Vsc2UKICAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBXZWJFdmVudEZsYWdNYXNrQWxwaGFTaGlmdDsKICNlbmRpZgpAQCAtMTAy
MywxMiArMTAyNCwxMiBAQCAtICh2b2lkKWtleURvd246KE5TU3RyaW5nICopY2hhcmFjdGVyIHdp
dGhNb2RpZmllcnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVycwogICAgIG1vZGlmaWVyRmxh
Z3MgfD0gYnVpbGRNb2RpZmllckZsYWdzKG1vZGlmaWVycyk7CiAKICAgICBpZiAobG9jYXRpb24g
PT0gRE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNO
dW1lcmljUGFkS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnTnVtZXJpY1BhZDsKIAogICAgIFtbW21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50
Vmlld10gbGF5b3V0XTsKIAogI2lmICFQTEFURk9STShJT1MpCi0gICAgTlNFdmVudCAqZXZlbnQg
PSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5RG93bgorICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBtb2RpZmllckZsYWdzOm1vZGlmaWVyRmxhZ3MKICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWVzdGFtcDpbc2VsZiBjdXJyZW50RXZlbnRUaW1lXQpAQCAtMTA2MCw3ICsxMDYx
LDcgQEAgLSAodm9pZClrZXlEb3duOihOU1N0cmluZyAqKWNoYXJhY3RlciB3aXRoTW9kaWZpZXJz
OihXZWJTY3JpcHRPYmplY3QgKiltb2RpZmllcnMKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElP
UykKLSAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAorICAgIGV2
ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAgICAgICAg
ICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KQogICAgICAgICAgICAg
ICAgICAgICAgICAgbW9kaWZpZXJGbGFnczptb2RpZmllckZsYWdzCiAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6W3NlbGYgY3VycmVudEV2ZW50VGltZV0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0gYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tCmluZGV4IDVlYzJhOTk2ZjlhNGMx
MmNjMzg5NzBhYjVkMGIwMTFkMDAwYjdiZWUuLjc0ZjFiMTEzNGRmNmU5Njg5ZDBmY2UyZjRhNTE3
NGIwNTA2NGMyZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5w
dXRDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENv
bnRyb2xsZXIubQpAQCAtNTEsNiArNTEsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYlNjcmlwdE9i
amVjdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlR5cGVzSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdl
YktpdC9XZWJWaWV3Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNs
YXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBUZXh0SW5wdXRDb250cm9sbGVyIChEdW1wUmVuZGVy
VHJlZUlucHV0TWV0aG9kSGFuZGxlcikKIC0gKEJPT0wpaW50ZXJwcmV0S2V5RXZlbnRzOihOU0Fy
cmF5ICopZXZlbnRBcnJheSB3aXRoU2VuZGVyOihXZWJIVE1MVmlldyAqKXNlbmRlcjsKQEAgLTUw
NywyMSArNTA4LDIxIEBAIC0gKEJPT0wpaW50ZXJwcmV0S2V5RXZlbnRzOihOU0FycmF5ICopZXZl
bnRBcnJheSB3aXRoU2VuZGVyOihXZWJIVE1MVmlldyAqKXNlbmRlCiAgICAgTlNFdmVudCAqZXZl
bnQgPSBbZXZlbnRBcnJheSBvYmplY3RBdEluZGV4OjBdOwogICAgIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MgPSBbZXZlbnQgbW9kaWZpZXJGbGFnc107IAogICAgIE5TTXV0YWJsZUFycmF5ICptb2Rp
ZmllcnMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKLSAgICBpZiAobW9kaWZpZXJG
bGFncyAmIE5TQWxwaGFTaGlmdEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAi
TlNBbHBoYVNoaWZ0S2V5TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtl
eU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQp
CiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAiTlNTaGlmdEtleU1hc2siXTsKLSAgICBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TQ29udHJvbEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKICAgICAgICAgW21vZGlmaWVycyBhZGRP
YmplY3Q6QCJOU0NvbnRyb2xLZXlNYXNrIl07Ci0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0Fs
dGVybmF0ZUtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uKQogICAgICAgICBbbW9kaWZpZXJzIGFkZE9iamVjdDpAIk5TQWx0ZXJuYXRlS2V5
TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykKKyAgICBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKQogICAgICAgICBb
bW9kaWZpZXJzIGFkZE9iamVjdDpAIk5TQ29tbWFuZEtleU1hc2siXTsKLSAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TTnVtZXJpY1BhZEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCkKICAgICAgICAgW21vZGlmaWVycyBhZGRPYmpl
Y3Q6QCJOU051bWVyaWNQYWRLZXlNYXNrIl07Ci0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0hl
bHBLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0hl
bHApCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAiTlNIZWxwS2V5TWFzayJdOwotICAg
IGlmIChtb2RpZmllckZsYWdzICYgTlNGdW5jdGlvbktleU1hc2spCisgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb24pCiAgICAgICAgIFttb2RpZmllcnMg
YWRkT2JqZWN0OkAiTlNGdW5jdGlvbktleU1hc2siXTsKICAgICAKICAgICBXZWJTY3JpcHRPYmpl
Y3QqIGV2ZW50UGFyYW0gPSBbaW5wdXRNZXRob2RIYW5kbGVyIGV2YWx1YXRlV2ViU2NyaXB0OkAi
bmV3IE9iamVjdCgpOyJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dz
ZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIubQppbmRleCA2YzRiMTM1YjE4NjUwZDFjMDA0MDczYTdmOWQ4YjYyYWQzNTc0
MjQzLi41NWNlNTYwMWIwOTE0Y2MxYjRjZDA2NjNlNDFlNDQyNzkzOWQ2OGFhIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9U
b29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtMjQsNiAr
MjQsNyBAQAogICovCiAKICNpbXBvcnQgIkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgiCisjaW1w
b3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVy
ZmFjZSBCcm93c2VyV2luZG93Q29udHJvbGxlciAoKSA8TlNTaGFyaW5nU2VydmljZVBpY2tlckRl
bGVnYXRlLCBOU1NoYXJpbmdTZXJ2aWNlRGVsZWdhdGU+CiBAZW5kCkBAIC00MCwxMSArNDEsNyBA
QCAtICh2b2lkKXdpbmRvd0RpZExvYWQKIHsKICAgICBzZWxmLndpbmRvdy5zdHlsZU1hc2sgfD0g
TlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogCi0jaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICBbc2hhcmUgc2VuZEFjdGlvbk9uOk5T
RXZlbnRNYXNrTGVmdE1vdXNlRG93bl07Ci0jZWxzZQotICAgIFtzaGFyZSBzZW5kQWN0aW9uT246
TlNMZWZ0TW91c2VEb3duTWFza107Ci0jZW5kaWYKIAogICAgIFtzdXBlciB3aW5kb3dEaWRMb2Fk
XTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0NvbW1hbmRCYWNrRm9yd2FyZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbQppbmRleCA2Nzg2NzAwZWQyM2Q3YWFhODFjMWUx
NjAxYjY5ZmQzYTIxZDVlYzUyLi5hZDA0YzVlYzg0ZjhiZjRmNTlmYmQzMTYxMGZmYzJlODE4YTY5
YmVmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9D
b21tYW5kQmFja0ZvcndhcmQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0
IDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ZpZXdQcml2YXRlLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBDb21tYW5kQmFja0ZvcndhcmRP
ZmZzY3JlZW5XaW5kb3cgOiBOU1dpbmRvdwogQGVuZApAQCAtNjIsOSArNjMsOSBAQCBzdGF0aWMg
dm9pZCBzaW11bGF0ZUNvbW1hbmRBcnJvdyhOU1ZpZXcgKnZpZXcsIEFycm93RGlyZWN0aW9uIGRp
cmVjdGlvbikKICAgICBOU1N0cmluZyAqZXZlbnRDaGFyYWN0ZXIgPSAoZGlyZWN0aW9uID09IExl
ZnQpID8gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZsZWZ0IGxlbmd0aDoxXSA6IFtO
U1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczomcmlnaHQgbGVuZ3RoOjFdOwogICAgIHVuc2ln
bmVkIHNob3J0IGtleUNvZGUgPSAoZGlyZWN0aW9uID09IExlZnQpID8gMHg3QiA6IDB4N0M7CiAK
LSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlEb3du
CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlS2V5RG93bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlv
bjpOU01ha2VQb2ludCg1LCA1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9k
aWZpZXJGbGFnczpOU0NvbW1hbmRLZXlNYXNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtb2RpZmllckZsYWdzOk5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUo
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbdmlldy53
aW5kb3cgd2luZG93TnVtYmVyXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdCkBAIC03NSw5ICs3
Niw5IEBAIHN0YXRpYyB2b2lkIHNpbXVsYXRlQ29tbWFuZEFycm93KE5TVmlldyAqdmlldywgQXJy
b3dEaXJlY3Rpb24gZGlyZWN0aW9uKQogCiAgICAgW3ZpZXcga2V5RG93bjpldmVudF07CiAKLSAg
ICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAorICAgIGV2ZW50ID0g
W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBtb2RpZmllckZsYWdzOk5TQ29tbWFuZEtleU1hc2sKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOlt2aWV3LndpbmRvdyB3aW5kb3dO
dW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OltOU0dyYXBoaWNz
Q29udGV4dCBjdXJyZW50Q29udGV4dF0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQppbmRleCBlYmU4
OGI2YTQyY2UyYTFmNDE1YzM3MDk1M2U3NGFhMjQwZjliN2ZjLi44NGRjYmUyZjIyNTZjZTllZmRm
MjhlY2FhZjQ4MzE1ZmQ0M2U2NTRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCkBAIC0zMyw2
ICszMyw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8
V2ViS2l0L19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
IHN0YXRpYyBib29sIHJlY2VpdmVkTG9hZGVkTWVzc2FnZTsKIHN0YXRpYyBib29sIHJlY2VpdmVk
V2lsbEVudGVyRnVsbHNjcmVlbk1lc3NhZ2U7CkBAIC04MywxNCArODQsMTQgQEAgVEVTVChGdWxs
c2NyZWVuLCBEZWxlZ2F0ZSkKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9s
bGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJmdWxsc2Ny
ZWVuQ2hhbmdlSGFuZGxlciJdOwogICAgIFt3ZWJWaWV3IF9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6
aGFuZGxlci5nZXQoKV07CiAKLSAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0
TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0g
c3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1
ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9w
dE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVd
IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdT
dG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1
YnZpZXc6d2ViVmlldy5nZXQoKV07CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJGdWxsc2NyZWVuRGVsZWdhdGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpyZXF1ZXN0XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTG9h
ZGVkTWVzc2FnZSk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZp
ZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVt
YmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKKyAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczow
IHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVyIGNvbnRl
eHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBbd2ViVmll
dyBtb3VzZURvd246ZXZlbnRdOwogCiAgICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3IF9pc0luRnVs
bHNjcmVlbl0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLm1tCmluZGV4
IDRkZWEwYmMzZmRlMGExMjA2ZjE3ZjIwZTJhZTlhZmU4YWZmOGQzODUuLmJjMzBiNjhmNWNjMzUz
MGE5ZTFjMDAwZGFhMTNiZjMyNjE1ZGM4OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuTGF5b3V0
Q29uc3RyYWludHMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBzdGF0aWMgYm9vbCByZWNlaXZlZExvYWRl
ZE1lc3NhZ2U7CiBzdGF0aWMgYm9vbCByZWNlaXZlZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlOwpA
QCAtNjAsNyArNjEsNyBAQCBURVNUKEZ1bGxzY3JlZW4sIExheW91dENvbnN0cmFpbnRzKQogICAg
IFJldGFpblB0cjxGdWxsc2NyZWVuU3RhdGVDaGFuZ2VNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9
IGFkb3B0TlMoW1tGdWxsc2NyZWVuU3RhdGVDaGFuZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5p
dF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlw
dE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAImZ1bGxzY3JlZW5TdGF0ZUNoYW5n
ZUhhbmRsZXIiXTsKIAotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhb
W05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHls
ZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6Tk9dKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMo
W1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5
bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICB3ZWJWaWV3LmdldCgpLnRyYW5zbGF0ZXNBdXRvcmVz
aXppbmdNYXNrSW50b0NvbnN0cmFpbnRzID0gTk87CiAgICAgW1t3aW5kb3cgY29udGVudFZpZXdd
IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAgICAgCkBAIC03NCwxNCArNzUsMTQgQEAgVEVT
VChGdWxsc2NyZWVuLCBMYXlvdXRDb25zdHJhaW50cykKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTG9hZGVk
TWVzc2FnZSk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVy
IGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKKyAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxl
ZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVyIGNvbnRleHQ6
MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBbd2ViVmlldyBt
b3VzZURvd246ZXZlbnRdOwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlKTsKICAgICAKICAgICByZWNlaXZlZEZ1bGxzY3JlZW5D
aGFuZ2VNZXNzYWdlID0gZmFsc2U7CiAgICAgCi0gICAgTlNFdmVudCAqZXhpdEZTRXZlbnQgPSBb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFr
ZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6d2lu
ZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjAgcHJlc3N1cmU6MF07CisgICAgTlNFdmVudCAqZXhpdEZTRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBv
aW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6d2luZG93
LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAg
cHJlc3N1cmU6MF07CiAgICAgW3dlYlZpZXcgbW91c2VEb3duOmV4aXRGU0V2ZW50XTsKICAgICAK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1l
c3NhZ2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW0KaW5kZXggYmYxZDBj
YmMyZjQ1ZTRmZmI1NjJkNGU2NzRhZDBlMGY3YTM3NWE2MS4uMDFmNmU4ODkzYzFmMzcyNzNmNzk4
MDIzNzc4Y2RjNTIxZWViZDM4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuVG9wQ29udGVudEluc2V0
Lm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJh
dGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRMb2FkZWRNZXNzYWdlOwog
c3RhdGljIGJvb2wgcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdlTWVzc2FnZTsKQEAgLTYxLDE0ICs2
MiwxNCBAQCBURVNUKEZ1bGxzY3JlZW4sIFRvcENvbnRlbnRJbnNldCkKICAgICBSZXRhaW5QdHI8
RnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW0Z1bGxz
Y3JlZW5DaGFuZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJh
dGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRs
ZXIuZ2V0KCkgbmFtZTpAImZ1bGxzY3JlZW5DaGFuZ2VIYW5kbGVyIl07CiAKLSAgICBSZXRhaW5Q
dHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01h
c2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgUmV0YWlu
UHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0Jv
cmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAg
W1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAKICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJGdWxsc2NyZWVuVG9wQ29udGVudElu
c2V0IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZExvYWRlZE1lc3NhZ2UpOwogCi0gICAgTlNF
dmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3du
IGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3
aW5kb3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1i
ZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07CiAgICAgW3dlYlZpZXcgbW91c2VEb3duOmV2ZW50XTsKIAog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdlTWVz
c2FnZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9TaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3
V2luZG93QWN0aW9ucy5tbQppbmRleCAzYWJhOTcwOGIyM2MxZjQ0MTUwOWIwZTc5NmM5OTczYzMx
YTFmZDgxLi4xYWMzZDkyM2RhMTQ3MTRmN2RhOWY4Mjk1NmNjYmI1ZGM0MDNjNzNjIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TaG91bGRPcGVuRXh0
ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlv
bnMubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25BY3Rp
b25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAKICNpZiBXS19BUElfRU5BQkxFRAogCkBAIC03Myw3ICs3NCw3IEBA
IFRFU1QoV2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luV2luZG93T3BlbikKIHsKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CiAKLSAgICBhdXRvIHdpbmRvdyA9IGFkb3B0
TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0g
c3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1
ZmZlcmVkIGRlZmVyOllFU10pOworICAgIGF1dG8gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNX
aW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpZRVNdKTsKICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3
LmdldCgpXTsKIAogICAgIGF1dG8gY29udHJvbGxlciA9IGFkb3B0TlMoW1tTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zQ29udHJvbGxlciBhbGxvY10gaW5pdF0pOwpAQCAt
ODYsOCArODcsOCBAQCBURVNUKFdlYktpdDIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJbldpbmRv
d09wZW4pCiAKICAgICBOU1BvaW50IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgxMDAsIDEwMCk7
CiAKLSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1v
ZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1i
ZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsK
LSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29u
dGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOworICAgIFtb
d2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9k
aWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJl
cl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwor
ICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBt
b2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVt
YmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07
CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjcmVhdGVkV2ViVmlldyk7CiAgICAgY3Jl
YXRlZFdlYlZpZXcgPSBmYWxzZTsKIApAQCAtMTA4LDggKzEwOSw4IEBAIFRFU1QoV2ViS2l0Miwg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc0luV2luZG93T3BlbikKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0g
ZmFsc2U7CiAKLSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1Bv
aW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5k
b3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJl
OjFdXTsKLSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9k
aWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJl
cl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwor
ICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9p
bnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRv
d051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6
MV1dOworICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQ
b2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2lu
ZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3Vy
ZToxXV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjcmVhdGVkV2ViVmlldyk7CiAg
ICAgY3JlYXRlZFdlYlZpZXcgPSBmYWxzZTsKIApAQCAtMTM0LDcgKzEzNSw3IEBAIFRFU1QoV2Vi
S2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luVGFyZ2V0ZWRMaW5rKQogewogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKIAotICAgIGF1dG8gd2luZG93ID0gYWRvcHROUyhbW05T
V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1h
c2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6WUVTXSk7CisgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0
eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllF
U10pOwogICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCld
OwogCiAgICAgYXV0byBjb250cm9sbGVyID0gYWRvcHROUyhbW1Nob3VsZE9wZW5FeHRlcm5hbFVS
THNJbk5ld1dpbmRvd0FjdGlvbnNDb250cm9sbGVyIGFsbG9jXSBpbml0XSk7CkBAIC0xNDgsOCAr
MTQ5LDggQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5UYXJnZXRlZExp
bmspCiAgICAgTlNQb2ludCBjbGlja1BvaW50ID0gTlNNYWtlUG9pbnQoMTAwLCAxMDApOwogCiAg
ICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9p
bnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3du
IGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051
bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRd
IG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAgbG9jYXRp
b246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3
aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6
MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VE
b3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24g
bG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVt
YmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNr
Q291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0g
bW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VV
cCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dO
dW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xp
Y2tDb3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRl
Y2lkZWRQb2xpY3kpOwogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKIApAQCAtMTc4LDggKzE3
OSw4IEBAIFRFU1QoV2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luVGFyZ2V0ZWRMaW5r
KQogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAgZGVjaWRlZFBvbGljeSA9
IGZhbHNlOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9p
bnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRv
d051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6
MV1dOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVy
XSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07Cisg
ICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93
TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTox
XV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1Bv
aW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5k
b3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJl
OjFdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOwogICAg
IGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKIApAQCAtMjEwLDcgKzIxMSw3IEBAIFRFU1QoV2ViS2l0
MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luVGFyZ2V0ZWRMaW5rKQogVEVTVChXZWJLaXQyLCBS
ZXN0b3JlU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeUFmdGVyQ3Jhc2gpCiB7CiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwotICAgIGF1dG8gd2luZG93ID0gYWRvcHROUyhbW05T
V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1h
c2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6WUVTXSk7CisgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0
eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllF
U10pOwogICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCld
OwogICAgIGF1dG8gY29udHJvbGxlciA9IGFkb3B0TlMoW1tTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
SW5OZXdXaW5kb3dBY3Rpb25zQ29udHJvbGxlciBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3
IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1VzZXJJbml0aWF0ZWRBY3Rpb25J
bk5hdmlnYXRpb25BY3Rpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9Vc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9uLm1tCmluZGV4IDZmZGMw
NzVkNTE1MzY2ODU2ZmQyMzViZGI2OWRkM2IyYzU4MmUzYmQuLmM4NDRiMmUyNWJiY2ZkZmJlZTVi
ODY0ODNmNmNiNDAzMWQwZjI5OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1VzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVXNlckluaXRpYXRl
ZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8
V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tVc2VySW5pdGlh
dGVkQWN0aW9uLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVE
CiAKQEAgLTcyLDcgKzczLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgd2ViVmlldyA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKIAotICAgICAgICB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxl
c3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsK
KyAgICAgICAgd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRl
bnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJs
ZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKICAgICAgICAg
W1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAKICAgICAg
ICAgZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFj
dGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC05OSw4ICsxMDAsOCBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICBOU1BvaW50IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgxMDAsIDEwMCk7
CiAKLSAgICAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93
TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTox
XV07Ci0gICAgICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBt
b2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVt
YmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07
CisgICAgICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNs
aWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93
IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJl
c3N1cmU6MV1dOworICAgICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVw
OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0
aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpb
d2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjEgcHJlc3N1cmU6MV1dOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0FjY2VwdHNGaXJzdE1vdXNlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvQWNjZXB0c0ZpcnN0TW91c2UubW0KaW5kZXggZGVjNzg4ODA0ZjY1YjQxNjYx
ZTllOWQwZjNmZjBkNmFmZWU0N2IyMi4uN2MzNDQ5NDU1MGY3MjQ1YjEwZTA3M2I0ODcxOGQxMTlh
MGRiNGQ0MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWNjZXB0
c0ZpcnN0TW91c2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWNjZXB0
c0ZpcnN0TW91c2UubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJLaXRBZ25vc3Rp
Y1Rlc3QuaCIKIAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBOU0FwcGxp
Y2F0aW9uIChUZXN0V2ViS2l0QVBJTlNBcHBsaWNhdGlvbkRldGFpbHMpCiAtICh2b2lkKV9zZXRD
dXJyZW50RXZlbnQ6KE5TRXZlbnQgKilldmVudDsKQEAgLTQ3LDE3ICs0OCwxNyBAQCBwdWJsaWM6
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmlldz4KIHZvaWQgQWNjZXB0c0ZpcnN0TW91c2U6OnJ1blRl
c3QoVmlldyB2aWV3KQogewotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHRO
UyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnZpZXcuZnJhbWUgc3R5bGVN
YXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVk
IGRlZmVyOllFU10pOworICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhb
W05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnZpZXcuZnJhbWUgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6WUVTXSk7CiAgICAgW1t3aW5kb3cuZ2V0KCkgY29udGVudFZpZXddIGFkZFN1YnZp
ZXc6dmlld107CiAKICAgICBDR0Zsb2F0IHZpZXdIZWlnaHQgPSB2aWV3LmJvdW5kcy5zaXplLmhl
aWdodDsKIAogICAgIE5TUG9pbnQgcG9pbnRJbnNpZGVTZWxlY3Rpb24gPSBOU01ha2VQb2ludCg1
MCwgdmlld0hlaWdodCAtIDUwKTsKLSAgICBOU0V2ZW50ICptb3VzZUV2ZW50SW5zaWRlU2VsZWN0
aW9uID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlv
bjpwb2ludEluc2lkZVNlbGVjdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93
TnVtYmVyOlt3aW5kb3cuZ2V0KCkgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJl
cjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXTsKKyAgICBOU0V2ZW50ICptb3VzZUV2ZW50SW5z
aWRlU2VsZWN0aW9uID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVm
dE1vdXNlRG93biBsb2NhdGlvbjpwb2ludEluc2lkZVNlbGVjdGlvbiBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cuZ2V0KCkgd2luZG93TnVtYmVyXSBjb250
ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXTsKICAgICBFWFBF
Q1RfVFJVRShbW3ZpZXcgaGl0VGVzdDpwb2ludEluc2lkZVNlbGVjdGlvbl0gYWNjZXB0c0ZpcnN0
TW91c2U6bW91c2VFdmVudEluc2lkZVNlbGVjdGlvbl0pOwogCiAgICAgTlNQb2ludCBwb2ludE91
dHNpZGVTZWxlY3Rpb24gPSBOU01ha2VQb2ludCg1MCwgdmlld0hlaWdodCAtIDE1MCk7Ci0gICAg
TlNFdmVudCAqbW91c2VFdmVudE91dHNpZGVTZWxlY3Rpb24gPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50T3V0c2lkZVNlbGVjdGlvbiBt
b2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cuZ2V0KCkgd2lu
ZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3Vy
ZToxXTsKKyAgICBOU0V2ZW50ICptb3VzZUV2ZW50T3V0c2lkZVNlbGVjdGlvbiA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246cG9p
bnRPdXRzaWRlU2VsZWN0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6W3dpbmRvdy5nZXQoKSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAg
Y2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwogICAgIEVYUEVDVF9GQUxTRShbW3ZpZXcgaGl0VGVz
dDpwb2ludEluc2lkZVNlbGVjdGlvbl0gYWNjZXB0c0ZpcnN0TW91c2U6bW91c2VFdmVudE91dHNp
ZGVTZWxlY3Rpb25dKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IDhkYWI2Mzc4MDg5Zjc5OTU1MWUx
OGJmN2I3NTBlZDhmMzI0Y2ZjYWQuLmQ5NTc2Mzk0NGM2ZjkyZWM1NGYzNzIyM2E5ZTU2OTg3YzRj
NjIxZTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRN
ZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250
ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgPFdlYktpdC9E
T00uaD4KICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
CiAKIEBpbnRlcmZhY2UgQ29udGV4dE1lbnVDYW5Db3B5VVJMRGVsZWdhdGUgOiBOU09iamVjdCA8
V2ViRnJhbWVMb2FkRGVsZWdhdGU+IHsKQEAgLTYxLDcgKzYyLDcgQEAgc3RhdGljIHZvaWQgY29u
dGV4dE1lbnVDb3B5TGluayhXZWJWaWV3KiB3ZWJWaWV3LCBpbnQgaXRlbUluZGV4KQogICAgIERP
TUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQgKilbW2Rv
Y3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yQWxsOkAiYSJdIGl0ZW06aXRlbUluZGV4XTsKIAog
ICAgIE5TV2luZG93ICp3aW5kb3cgPSBbd2ViVmlldyB3aW5kb3ddOwotICAgIE5TRXZlbnQgKmV2
ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24KKyAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJp
Z2h0TW91c2VEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb246TlNNYWtlUG9pbnQoYW5jaG9yLm9mZnNldExlZnQgKyBhbmNob3Iub2Zmc2V0V2lkdGgg
LyAyLCB3aW5kb3cuZnJhbWUuc2l6ZS5oZWlnaHQgLSAoYW5jaG9yLm9mZnNldFRvcCArIGFuY2hv
ci5vZmZzZXRIZWlnaHQgLyAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCkBAIC04OSw3ICs5MCw3IEBAIHN0YXRpYyB2
b2lkIGNvbnRleHRNZW51Q29weUxpbmsoV2ViVmlldyogd2ViVmlldywgaW50IGl0ZW1JbmRleCkK
IFRFU1QoV2ViS2l0MSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogewogICAgIFJldGFpblB0cjxX
ZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLDAsODAwLDYwMCkgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7Ci0g
ICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgxMDAsIDEwMCwgODAwLCA2MDApIHN0eWxl
TWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJl
ZCBkZWZlcjpZRVNdKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMo
W1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAw
LCA4MDAsIDYwMCkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgUmV0YWluUHRyPENvbnRl
eHRNZW51Q2FuQ29weVVSTERlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tDb250ZXh0TWVu
dUNhbkNvcHlVUkxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogCiAgICAgW3dpbmRvdy5nZXQoKS5j
b250ZW50VmlldyBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFncy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51RGVmYXVsdEl0ZW1z
SGF2ZVRhZ3MubW0KaW5kZXggOWUwNDdmNmE4NTJiOGU0YWJmMmFjYWRlZTRjZmI0Yzk4ZmZiNTQ2
OC4uNThmMDIxN2JjOGQ2ZjViZjZhNjgwN2Q1MmQ2Zjk5ODJkZjc3NjUwYSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZl
VGFncy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudURl
ZmF1bHRJdGVtc0hhdmVUYWdzLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJQbGF0Zm9y
bVdlYlZpZXcuaCIKICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiBAaW50ZXJmYWNlIENvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3NEZWxlZ2F0
ZSA6IE5TT2JqZWN0IDxXZWJGcmFtZUxvYWREZWxlZ2F0ZT4KIEBlbmQKQEAgLTQ5LDcgKzUwLDcg
QEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogVEVTVChXZWJLaXQxLCBDb250ZXh0TWVudURl
ZmF1bHRJdGVtc0hhdmVUYWdzKQogewogICAgIFJldGFpblB0cjxXZWJWaWV3PiB3ZWJWaWV3ID0g
YWRvcHROUyhbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCkgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7Ci0gICAgUmV0YWluUHRyPE5T
V2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVu
dFJlY3Q6TlNNYWtlUmVjdCgxMDAsIDEwMCwgODAwLCA2MDApIHN0eWxlTWFzazpOU0JvcmRlcmxl
c3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsK
KyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCA4MDAsIDYwMCkgc3R5
bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgUmV0YWluUHRyPENvbnRleHRNZW51RGVmYXVsdEl0
ZW1zSGF2ZVRhZ3NEZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQ29udGV4dE1lbnVEZWZh
dWx0SXRlbXNIYXZlVGFnc0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAKICAgICBbd2luZG93Lmdl
dCgpLmNvbnRlbnRWaWV3IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CkBAIC01OSw3ICs2MCw3
IEBAIFRFU1QoV2ViS2l0MSwgQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFncykKIAogICAg
IFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBv
aW50KDQwMCwgMzAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVy
dmFsU2luY2VSZWZlcmVuY2VEYXRlXQorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gbG9jYXRpb246TlNNYWtl
UG9pbnQoNDAwLCAzMDApIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50
ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbd2luZG93IHdp
bmRvd051bWJlcl0gY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogICAgIE5TVmlldyAqc3ViVmll
dyA9IFt3ZWJWaWV3IGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXTsKICAgICBOU01l
bnUgKm1lbnUgPSBbc3ViVmlldyBtZW51Rm9yRXZlbnQ6ZXZlbnRdOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFt
ZS5tbQppbmRleCBkMzJhYWNlMDM1OGQ4MTM0ZGJjODZjNjIyNzhhOGU2ZjIzYTBjYjRiLi5mZmMw
YzZlNzUzNTBlNTFkNmM2MjkyZTk5NjNjYzhlMDAyYzkyZjQ5IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFt
ZS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIEBpbnRlcmZhY2UgTlNXaW5kb3dDb250cm9sbGVyIChXZWJLaXRGdWxsU2NyZWVu
QWRkaXRpb25zKQogLSAoTlNSZWN0KWluaXRpYWxGcmFtZTsKQEAgLTE1MCwxMiArMTUxLDEyIEBA
IHZvaWQgRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWU6OnNlbmRNb3VzZURvd25FdmVudChXS1Zp
ZXcgKndrVmlldywgTlNFdmVudCAqZXZlCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmlldz4KIHZvaWQg
RnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWU6OnJ1blRlc3QoVmlldyB2aWV3KQogewotICAgIFJl
dGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0OnZpZXcuZnJhbWUgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01h
c2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgUmV0YWlu
UHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6dmlldy5mcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJs
ZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFt3aW5k
b3cuZ2V0KCkuY29udGVudFZpZXcgYWRkU3Vidmlldzp2aWV3XTsKIAogICAgIHNldFBhZ2VTY2Fs
ZSh2aWV3LCAyKTsKIAotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmll
ckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1i
ZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOworICAg
IE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4
dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogCiAgICAgaXNXYWl0
aW5nRm9yUGFnZVNpZ25hbFRvQ29udGludWUgPSB0cnVlOwogICAgIGRpZEdldFBhZ2VTaWduYWxU
b0NvbnRpbnVlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9NZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL01lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tCmluZGV4IDhlNGI0Zjc5MWE5YWYwYTdm
ZTJiNzZmZWU2ZTkwM2I4MTBjMWYwYjYuLjIzMjA3NDBjNWJhNzRlNzdlMzUwZjc1NmY2ZGZkYTI5
M2M4YzhiYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lbnVU
eXBlc0Zvck1vdXNlRXZlbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L01lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDx3dGYvQXV0b2RyYWlu
ZWRQb29sLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewogCkBAIC02Myw3NyArNjQsNzcgQEAgc3RhdGljIHZvaWQgYnVpbGRBbmRQZXJmb3JtVGVz
dChOU0V2ZW50VHlwZSBidXR0b25FdmVudCwgTlNFdmVudE1vZGlmaWVyRmxhZ3MgbW8KIAogVEVT
VChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yTm9ybWFsTGVmdENsaWNrKQogewotICAgIGJ1aWxk
QW5kUGVyZm9ybVRlc3QoTlNMZWZ0TW91c2VEb3duLCAwLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBO
U01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd24sIDAsIFdlYkNvcmU6OkxlZnRCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKIH0KIAog
VEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yTm9ybWFsUmlnaHRDbGljaykKIHsKLSAgICBi
dWlsZEFuZFBlcmZvcm1UZXN0KE5TUmlnaHRNb3VzZURvd24sIDAsIFdlYkNvcmU6OlJpZ2h0QnV0
dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNF
dmVudFR5cGVSaWdodE1vdXNlRG93biwgMCwgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5
cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvck5vcm1h
bE1pZGRsZUNsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNPdGhlck1vdXNlRG93
biwgMCwgV2ViQ29yZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRB
bmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duLCAwLCBXZWJDb3JlOjpNaWRk
bGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0
dG9uRm9yQ29udHJvbExlZnRDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TTGVm
dE1vdXNlRG93biwgTlNDb250cm9sS2V5TWFzaywgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51
VHlwZUNvbnRleHRNZW51KTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlTGVm
dE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wsIFdlYkNvcmU6OkxlZnRCdXR0
b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1
dHRvbkZvckNvbnRyb2xSaWdodENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNS
aWdodE1vdXNlRG93biwgTlNDb250cm9sS2V5TWFzaywgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5T
TWVudVR5cGVDb250ZXh0TWVudSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCwgV2ViQ29yZTo6Umln
aHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVu
dUFuZEJ1dHRvbkZvckNvbnRyb2xNaWRkbGVDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1U
ZXN0KE5TT3RoZXJNb3VzZURvd24sIE5TQ29udHJvbEtleU1hc2ssIFdlYkNvcmU6Ok1pZGRsZUJ1
dHRvbiwgTlNNZW51VHlwZU5vbmUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5
cGVPdGhlck1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wsIFdlYkNvcmU6Ok1p
ZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogICAgIAogVEVTVChXZWJLaXQxLCBNZW51
QW5kQnV0dG9uRm9yU2hpZnRMZWZ0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChO
U0xlZnRNb3VzZURvd24sIE5TU2hpZnRLZXlNYXNrLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01l
bnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCwgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNN
ZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JTaGlmdFJp
Z2h0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU1JpZ2h0TW91c2VEb3duLCBO
U1NoaWZ0S2V5TWFzaywgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVu
dSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duLCBO
U0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQsIFdlYkNvcmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBl
Q29udGV4dE1lbnUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JTaGlmdE1p
ZGRsZUNsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNPdGhlck1vdXNlRG93biwg
TlNTaGlmdEtleU1hc2ssIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwor
ICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVPdGhlck1vdXNlRG93biwgTlNFdmVu
dE1vZGlmaWVyRmxhZ1NoaWZ0LCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25l
KTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQ29tbWFuZExlZnRDbGljaykK
IHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TTGVmdE1vdXNlRG93biwgTlNDb21tYW5kS2V5
TWFzaywgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOworICAgIGJ1aWxkQW5k
UGVyZm9ybVRlc3QoTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFn
Q29tbWFuZCwgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNU
KFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JDb21tYW5kUmlnaHRDbGljaykKIHsKLSAgICBidWls
ZEFuZFBlcmZvcm1UZXN0KE5TUmlnaHRNb3VzZURvd24sIE5TQ29tbWFuZEtleU1hc2ssIFdlYkNv
cmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOworICAgIGJ1aWxkQW5kUGVy
Zm9ybVRlc3QoTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bW1hbmQsIFdlYkNvcmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOwogfQog
CiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JDb21tYW5kTWlkZGxlQ2xpY2spCiB7Ci0g
ICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU090aGVyTW91c2VEb3duLCBOU0NvbW1hbmRLZXlNYXNr
LCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFuZFBl
cmZvcm1UZXN0KE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdD
b21tYW5kLCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKIH0KIAogVEVT
VChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQWx0TGVmdENsaWNrKQogewotICAgIGJ1aWxkQW5k
UGVyZm9ybVRlc3QoTlNMZWZ0TW91c2VEb3duLCBOU0FsdGVybmF0ZUtleU1hc2ssIFdlYkNvcmU6
OkxlZnRCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5T
RXZlbnRUeXBlTGVmdE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbiwgV2ViQ29y
ZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVB
bmRCdXR0b25Gb3JBbHRSaWdodENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNS
aWdodE1vdXNlRG93biwgTlNBbHRlcm5hdGVLZXlNYXNrLCBXZWJDb3JlOjpSaWdodEJ1dHRvbiwg
TlNNZW51VHlwZUNvbnRleHRNZW51KTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24sIFdlYkNvcmU6OlJp
Z2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOwogfQogCiBURVNUKFdlYktpdDEsIE1l
bnVBbmRCdXR0b25Gb3JBbHRNaWRkbGVDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0
KE5TT3RoZXJNb3VzZURvd24sIE5TQWx0ZXJuYXRlS2V5TWFzaywgV2ViQ29yZTo6TWlkZGxlQnV0
dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlw
ZU90aGVyTW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uLCBXZWJDb3JlOjpNaWRk
bGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVV0aWxpdGllc01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvbWFjL1BsYXRmb3JtVXRpbGl0aWVzTWFjLm1tCmluZGV4IDljNjM4ZmY0NDQyYWI0MDQxNDI4
ZjA1YjM3Njg5NmM4YjFkOWM1MjkuLmEwYzQyZTc4OWI0NDBjZDgxM2I2N2ZkMjM2ZTlhODlhNmVm
MjkzMDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtVXRpbGl0
aWVzTWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtVXRpbGl0aWVz
TWFjLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVzcG9uc2VO
Uy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CisjaW5jbHVkZSA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25z
Lmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIG5hbWVzcGFjZSBVdGlsIHsKQEAgLTYy
LDcgKzYzLDcgQEAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IE1JTUVUeXBlRm9yV0tVUkxSZXNw
b25zZShXS1VSTFJlc3BvbnNlUmVmIHdrUmVzcG9uc2UpCiAKIGJvb2wgaXNLZXlEb3duKFdLTmF0
aXZlRXZlbnRQdHIgZXZlbnQpCiB7Ci0gICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0tleURv
d247CisgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd247CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFV0aWwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3Jt
V2ViVmlld01hYy5tbQppbmRleCBhZDM1ZjU4NmNmNzIzNTlhM2I3ZTkxMzZmOWViZWJhMTYyMmY3
YzdkLi4yZTM5Y2E0YTRjODFhOGFlNjczOGY1MGU3Y2EyMTUzMjM0MDdkNzdmIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tSZXRhaW5Q
dHIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBBY3RpdmVP
ZmZzY3JlZW5XaW5kb3cgOiBOU1dpbmRvdwogQGVuZApAQCAtNTMsNyArNTQsNyBAQCB2b2lkIFBs
YXRmb3JtV2ViVmlldzo6aW5pdGlhbGl6ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3Vy
YXRpb24sIENsYXNzIHdrVgogICAgIFttX3ZpZXcgc2V0V2luZG93T2NjbHVzaW9uRGV0ZWN0aW9u
RW5hYmxlZDpOT107CiAKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IE5TT2Zmc2V0UmVjdChyZWN0
LCAtMTAwMDAsIFsoTlNTY3JlZW4gKilbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6
MF0gZnJhbWVdLnNpemUuaGVpZ2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKLSAgICBt
X3dpbmRvdyA9IFtbQWN0aXZlT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRS
ZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpO
U0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CisgICAgbV93aW5kb3cgPSBbW0FjdGl2
ZU9mZnNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0
eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOllFU107CiAgICAgW21fd2luZG93IHNldENvbG9yU3BhY2U6W1tOU1Nj
cmVlbiBtYWluU2NyZWVuXSBjb2xvclNwYWNlXV07CiAgICAgW1ttX3dpbmRvdyBjb250ZW50Vmll
d10gYWRkU3VidmlldzptX3ZpZXddOwogICAgIFttX3dpbmRvdyBvcmRlckJhY2s6bmlsXTsKQEAg
LTEyMSw3ICsxMjIsNyBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQogCiB2b2lkIFBs
YXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKCkKIHsKLSAgICBOU0V2ZW50
ICpldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlEb3duCisgICAgTlNFdmVu
dCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93bgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2lu
dCg1LCA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczow
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOkdldEN1cnJl
bnRFdmVudFRpbWUoKQpAQCAtMTM0LDcgKzEzNSw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpz
aW11bGF0ZVNwYWNlYmFyS2V5UHJlc3MoKQogCiAgICAgW21fdmlldyBrZXlEb3duOmV2ZW50XTsK
IAotICAgIGV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgZXZl
bnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTE1MCw3ICsxNTEsNyBAQCB2
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKCkKIAogdm9pZCBQ
bGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlUmlnaHRDbGljayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5
KQogewotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
UmlnaHRNb3VzZURvd24KKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoeCwgeSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCkBA
IC0xNjMsNyArMTY0LDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlUmlnaHRDbGlj
ayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQogCiAgICAgW21fdmlldyByaWdodE1vdXNlRG93bjpl
dmVudF07CiAKLSAgICBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0
TW91c2VVcAorICAgIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlUmlnaHRNb3VzZVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246
TlNNYWtlUG9pbnQoeCwgeSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFn
czowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2
ZW50VGltZSgpCkBAIC0xNzksNyArMTgwLDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVs
YXRlUmlnaHRDbGljayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQogICAgIAogdm9pZCBQbGF0Zm9y
bVdlYlZpZXc6OnNpbXVsYXRlTW91c2VNb3ZlKHVuc2lnbmVkIHgsIHVuc2lnbmVkIHkpCiB7ICAg
Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3Vz
ZU1vdmVkCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb246TlNNYWtlUG9pbnQoeCwgeSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZp
ZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3Vy
cmVudEV2ZW50VGltZSgpCkBAIC0xOTcsMzEgKzE5OCwzMSBAQCBzdGF0aWMgTlNFdmVudFR5cGUg
ZXZlbnRUeXBlRm9yQnV0dG9uKFdLRXZlbnRNb3VzZUJ1dHRvbiBidXR0b24pCiB7CiAgICAgc3dp
dGNoIChidXR0b24pIHsKICAgICBjYXNlIGtXS0V2ZW50TW91c2VCdXR0b25MZWZ0QnV0dG9uOgot
ICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOworICAgICAgICByZXR1cm4gTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duOwogICAgIGNhc2Uga1dLRXZlbnRNb3VzZUJ1dHRvblJpZ2h0QnV0dG9u
OgotICAgICAgICByZXR1cm4gTlNSaWdodE1vdXNlRG93bjsKKyAgICAgICAgcmV0dXJuIE5TRXZl
bnRUeXBlUmlnaHRNb3VzZURvd247CiAgICAgY2FzZSBrV0tFdmVudE1vdXNlQnV0dG9uTWlkZGxl
QnV0dG9uOgotICAgICAgICByZXR1cm4gTlNPdGhlck1vdXNlRG93bjsKKyAgICAgICAgcmV0dXJu
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd247CiAgICAgY2FzZSBrV0tFdmVudE1vdXNlQnV0dG9u
Tm9CdXR0b246Ci0gICAgICAgIHJldHVybiBOU0xlZnRNb3VzZURvd247CisgICAgICAgIHJldHVy
biBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAgICAgfQogCi0gICAgcmV0dXJuIE5TTGVmdE1v
dXNlRG93bjsKKyAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwogfQogCiBzdGF0
aWMgTlNFdmVudE1vZGlmaWVyRmxhZ3MgbW9kaWZpZXJGbGFnc0ZvcldLTW9kaWZpZXJzKFdLRXZl
bnRNb2RpZmllcnMgbW9kaWZpZXJzKQogewogICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIHJldHVy
blZhbCA9IDA7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzU2hpZnRLZXkp
Ci0gICAgICAgIHJldHVyblZhbCB8PSBOU1NoaWZ0S2V5TWFzazsKKyAgICAgICAgcmV0dXJuVmFs
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICAgICBpZiAobW9kaWZpZXJzICYga1dLRXZl
bnRNb2RpZmllcnNDb250cm9sS2V5KQotICAgICAgICByZXR1cm5WYWwgfD0gTlNDb250cm9sS2V5
TWFzazsKKyAgICAgICAgcmV0dXJuVmFsIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwog
ICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc0FsdEtleSkKLSAgICAgICAgcmV0
dXJuVmFsIHw9IE5TQWx0ZXJuYXRlS2V5TWFzazsKKyAgICAgICAgcmV0dXJuVmFsIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdPcHRpb247CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZp
ZXJzTWV0YUtleSkKLSAgICAgICAgcmV0dXJuVmFsIHw9IE5TQ29tbWFuZEtleU1hc2s7CisgICAg
ICAgIHJldHVyblZhbCB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKICAgICBpZiAobW9k
aWZpZXJzICYga1dLRXZlbnRNb2RpZmllcnNDYXBzTG9ja0tleSkKLSAgICAgICAgcmV0dXJuVmFs
IHw9IE5TQWxwaGFTaGlmdEtleU1hc2s7CisgICAgICAgIHJldHVyblZhbCB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnQ2Fwc0xvY2s7CiAKICAgICByZXR1cm4gcmV0dXJuVmFsOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0KaW5kZXggMWE2NjY1YmYyYmI4NjBl
MWU4ZDJkYWVkOTZjOTllOWM2OWE2YzYyYi4uODkzYjFiYzJmYjcyYzJiZmIyOWU3OWYyNTA0ODAy
ZjExNjVhYWRmOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2Vi
Vmlld01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFj
Lm1tCkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0UHJpdmF0ZS5oPgog
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1w
b3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGltcGxl
bWVudGF0aW9uIFRlc3RNZXNzYWdlSGFuZGxlciB7CiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeTxO
U1N0cmluZyAqLCBkaXNwYXRjaF9ibG9ja190PiAqX21lc3NhZ2VIYW5kbGVyczsKQEAgLTcwLDIx
ICs3MSwxMyBAQCBzdGF0aWMgaW50IGdFdmVudE51bWJlciA9IDE7CiAjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDMKIE5TRXZlbnRNYXNrIF9fc2ltdWxhdGVkX2Zv
cmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayhpZCBzZWxmLCBTRUwgX2NtZCkKIHsKLSNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIHJldHVybiBOU0V2
ZW50TWFza1ByZXNzdXJlIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEb3duIHwgTlNFdmVudE1hc2tM
ZWZ0TW91c2VVcCB8IE5TRXZlbnRNYXNrTGVmdE1vdXNlRHJhZ2dlZDsKLSNlbHNlCi0gICAgcmV0
dXJuIE5TRXZlbnRNYXNrUHJlc3N1cmUgfCAoMSA8PCBOU0xlZnRNb3VzZURvd24pIHwgKDEgPDwg
TlNMZWZ0TW91c2VVcCkgfCAoMSA8PCBOU0xlZnRNb3VzZURyYWdnZWQpOwotI2VuZGlmCiB9CiAj
ZW5kaWYKIAogLSAodm9pZClfbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0
ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUKIHsKLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIE5TRXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBl
ID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwotI2Vsc2UKLSAgICBOU0V2ZW50VHlwZSBtb3Vz
ZUV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93bjsKLSNlbmRpZgogCiAgICAgTlNFdmVudE1hc2sg
bW9kaWZpZXJGbGFncyA9IDA7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEwMDMKQEAgLTE1Nyw3ICsxNTAsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFt
ZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpbwogCiAt
ICh2b2lkKV9zZXRVcFRlc3RXaW5kb3c6KE5TUmVjdClmcmFtZQogewotICAgIF9ob3N0V2luZG93
ID0gW1tUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpm
cmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0
b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOworICAgIF9ob3N0V2luZG93ID0gW1tUZXN0V0tXZWJWaWV3
SG9zdFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNX
aW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpOT107CiAgICAgW19ob3N0V2luZG93IHNldEZyYW1lT3JpZ2luOk5TTWFrZVBvaW50KDAs
IDApXTsKICAgICBbW19ob3N0V2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OnNlbGZdOwog
ICAgIFtfaG9zdFdpbmRvdyBzZXRJc1Zpc2libGU6WUVTXTsKQEAgLTE5MywxMyArMTg2LDggQEAg
LSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5h
bWUKIAogLSAodm9pZCl0eXBlQ2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlciB7CiAgICAgTlNTdHJp
bmcgKmNoYXJhY3RlckFzU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlYyIg
LCBjaGFyYWN0ZXJdOwotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MjAwCiAgICAgTlNFdmVudFR5cGUga2V5RG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5RG93
bjsKICAgICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7Ci0j
ZWxzZQotICAgIE5TRXZlbnRUeXBlIGtleURvd25FdmVudFR5cGUgPSBOU0tleURvd247Ci0gICAg
TlNFdmVudFR5cGUga2V5VXBFdmVudFR5cGUgPSBOU0tleVVwOwotI2VuZGlmCiAgICAgW3NlbGYg
a2V5RG93bjpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleURvd25FdmVudFR5cGUgbG9jYXRp
b246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRU
aW1lKCkgd2luZG93TnVtYmVyOl9ob3N0V2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBj
aGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpj
aGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKICAgICBb
c2VsZiBrZXlVcDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleVVwRXZlbnRUeXBlIGxvY2F0
aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50
VGltZSgpIHdpbmRvd051bWJlcjpfaG9zdFdpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwg
Y2hhcmFjdGVyczpjaGFyYWN0ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6
Y2hhcmFjdGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVyXV07CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQppbmRleCBj
YWZjM2VkZGE5YmY4NWVlMTA2NWFmZGUwODlmMTY0OTM1NjQxZTZiLi5kNWJjZGQ3OWRiNWNjNTA1
Njg0NzNhZWU5N2RhZTIzMzhkNDQwMzE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
bWFjL0V2ZW50U2VuZGVyUHJveHkubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYktp
dC9XS1BhZ2VQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChEZXRhaWxzKQogLSAo
dm9pZClfc2V0Q3VycmVudEV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CkBAIC0yMDcsMzMgKzIwOCwz
MyBAQCBzdHJ1Y3QgS2V5TWFwcGluZ0VudHJ5IHsKIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5
cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3Rpb24p
CiB7CiAgICAgc3dpdGNoIChidXR0b24pIHsKLSAgICAgICAgY2FzZSBMZWZ0TW91c2VCdXR0b246
Ci0gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgICAgICAgICAgICAgIGNhc2UgTW91
c2VEb3duOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOwotICAg
ICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5T
TGVmdE1vdXNlVXA7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBOU0xlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIGNhc2UgUmlnaHRNb3VzZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9u
KSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBOU1JpZ2h0TW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TUmlnaHRNb3VzZVVwOwotICAgICAgICAgICAg
ICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNSaWdo
dE1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBOU090aGVyTW91c2VEb3duOwotICAgICAgICAgICAg
ICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3RoZXJNb3Vz
ZVVwOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gTlNPdGhlck1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KKyAgICBjYXNl
IExlZnRNb3VzZUJ1dHRvbjoKKyAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICAgICAgY2Fz
ZSBNb3VzZURvd246CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3du
OworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDsKKyAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAgICAgICByZXR1
cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICB9CisgICAgY2FzZSBSaWdo
dE1vdXNlQnV0dG9uOgorICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1v
dXNlRG93bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOwor
ICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdo
dE1vdXNlVXA7CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJu
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KKyAgICBkZWZhdWx0Ogor
ICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAg
ICAgICAgIHJldHVybiBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOworICAgICAgICBjYXNlIE1v
dXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7CisgICAg
ICAgIGNhc2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KICAgICB9CiAgICAgYXNzZXJ0KDApOwogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxOU0V2ZW50VHlwZT4oMCk7CkBAIC0yNDMsMTUgKzI0NCwxNSBAQCBz
dGF0aWMgaW50IGJ1aWxkTW9kaWZpZXJGbGFncyhXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycykK
IHsKICAgICBpbnQgZmxhZ3MgPSAwOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlm
aWVyc0NvbnRyb2xLZXkpCi0gICAgICAgIGZsYWdzIHw9IE5TQ29udHJvbEtleU1hc2s7CisgICAg
ICAgIGZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwogICAgIGlmIChtb2RpZmll
cnMgJiBrV0tFdmVudE1vZGlmaWVyc1NoaWZ0S2V5KQotICAgICAgICBmbGFncyB8PSBOU1NoaWZ0
S2V5TWFzazsKKyAgICAgICAgZmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogICAg
IGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc0FsdEtleSkKLSAgICAgICAgZmxhZ3Mg
fD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICBmbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc01ldGFLZXkp
Ci0gICAgICAgIGZsYWdzIHw9IE5TQ29tbWFuZEtleU1hc2s7CisgICAgICAgIGZsYWdzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1v
ZGlmaWVyc0NhcHNMb2NrS2V5KQotICAgICAgICBmbGFncyB8PSBOU0FscGhhU2hpZnRLZXlNYXNr
OworICAgICAgICBmbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2s7CiAgICAgcmV0
dXJuIGZsYWdzOwogfQogCkBAIC0zNTEsNyArMzUyLDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5
OjpzZW5kTW91c2VEb3duVG9TdGFydFByZXNzdXJlRXZlbnRzKCkKIHsKICAgICB1cGRhdGVDbGlj
a0NvdW50Rm9yQnV0dG9uKDApOwogCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duCiAgICAgICAg
IGxvY2F0aW9uOk5TTWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55KQogICAgICAg
ICBtb2RpZmllckZsYWdzOk5TRXZlbnRNYXNrUHJlc3N1cmUKICAgICAgICAgdGltZXN0YW1wOmFi
c29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC00MTUsNyArNDE2
LDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZUZvcmNlQ2xpY2soKQogICAgIFJldGFp
blB0cjxOU0V2ZW50PiBwcmVGb3JjZUNsaWNrID0gcHJlc3N1cmVDaGFuZ2VFdmVudCgxLCBQcmVz
c3VyZUNoYW5nZURpcmVjdGlvbjo6SW5jcmVhc2luZyk7CiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+
IGZvcmNlQ2xpY2sgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDIsIFByZXNzdXJlQ2hhbmdlRGlyZWN0
aW9uOjpJbmNyZWFzaW5nKTsKICAgICBSZXRhaW5QdHI8TlNFdmVudD4gcmVsZWFzaW5nUHJlc3N1
cmUgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDEsIFByZXNzdXJlQ2hhbmdlRGlyZWN0aW9uOjpEZWNy
ZWFzaW5nKTsKLSAgICBOU0V2ZW50ICptb3VzZVVwID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TTGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICptb3VzZVVwID0gW05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAgICAgbG9jYXRpb246TlNN
YWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpCiAgICAgICAgIG1vZGlmaWVyRmxh
Z3M6MAogICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRF
dmVudFRpbWUoKSkKQEAgLTQ1Miw3ICs0NTMsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN0
YXJ0QW5kQ2FuY2VsTW91c2VGb3JjZUNsaWNrKCkKICAgICBSZXRhaW5QdHI8TlNFdmVudD4gYmVn
aW5QcmVzc3VyZSA9IGJlZ2luUHJlc3N1cmVFdmVudCgxKTsKICAgICBSZXRhaW5QdHI8TlNFdmVu
dD4gaW5jcmVhc2luZ1ByZXNzdXJlID0gcHJlc3N1cmVDaGFuZ2VFdmVudCgxLCBQcmVzc3VyZUNo
YW5nZURpcmVjdGlvbjo6SW5jcmVhc2luZyk7CiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+IHJlbGVh
c2luZ1ByZXNzdXJlID0gcHJlc3N1cmVDaGFuZ2VFdmVudCgxLCBQcmVzc3VyZUNoYW5nZURpcmVj
dGlvbjo6RGVjcmVhc2luZyk7Ci0gICAgTlNFdmVudCAqbW91c2VVcCA9IFtOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgTlNFdmVudCAqbW91c2VVcCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55KQogICAgICAgICBt
b2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0YW1wOmFic29sdXRlVGltZUZvckV2ZW50VGlt
ZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC02MDIsNyArNjAzLDcgQEAgdm9pZCBFdmVudFNlbmRl
clByb3h5Ojptb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkpCiAgICAgTlNQb2ludCBwb3Np
dGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDpOU01ha2VQb2ludCh4LCB5KSB0b1ZpZXc6bmlsXTsK
ICAgICBtX3Bvc2l0aW9uLnggPSBwb3NpdGlvbi54OwogICAgIG1fcG9zaXRpb24ueSA9IHBvc2l0
aW9uLnk7Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
KG1fbGVmdE1vdXNlQnV0dG9uRG93biA/IE5TTGVmdE1vdXNlRHJhZ2dlZCA6IE5TTW91c2VNb3Zl
ZCkKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobV9s
ZWZ0TW91c2VCdXR0b25Eb3duID8gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkIDogTlNFdmVu
dFR5cGVNb3VzZU1vdmVkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxvY2F0aW9uOnBvc2l0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
ZGlmaWVyRmxhZ3M6MCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp
bWVzdGFtcDphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQpAQCAt
Nzk4LDE2ICs3OTksMTYgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5n
UmVmIGtleSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIHVuc2kKICAgICBpbnQgbW9kaWZp
ZXJGbGFncyA9IDA7CiAKICAgICBpZiAoW2NoYXJhY3RlciBsZW5ndGhdID09IDEgJiYgW2NoYXJh
Y3RlciBjaGFyYWN0ZXJBdEluZGV4OjBdID49ICdBJyAmJiBbY2hhcmFjdGVyIGNoYXJhY3RlckF0
SW5kZXg6MF0gPD0gJ1onKSB7Ci0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1h
c2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0Owog
ICAgICAgICBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnMgPSBbY2hhcmFjdGVyIGxvd2VyY2Fz
ZVN0cmluZ107CiAgICAgfQogCiAgICAgbW9kaWZpZXJGbGFncyB8PSBidWlsZE1vZGlmaWVyRmxh
Z3MobW9kaWZpZXJzKTsKIAogICAgIGlmIChrZXlMb2NhdGlvbiA9PSAweDAzIC8qRE9NX0tFWV9M
T0NBVElPTl9OVU1QQUQqLykKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU051bWVyaWNQYWRL
ZXlNYXNrOworICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1l
cmljUGFkOwogCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBl
Ok5TS2V5RG93bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5T
TWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOm1v
ZGlmaWVyRmxhZ3MKICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDphYnNvbHV0ZVRp
bWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQpAQCAtODIyLDcgKzgyMyw3IEBAIHZv
aWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiBrZXksIFdLRXZlbnRNb2Rp
ZmllcnMgbW9kaWZpZXJzLCB1bnNpCiAgICAgW1ttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmll
dygpLT5wbGF0Zm9ybVdpbmRvdygpIGZpcnN0UmVzcG9uZGVyXSBrZXlEb3duOmV2ZW50XTsKICAg
ICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpuaWxdOwogCi0gICAgZXZlbnQgPSBbTlNFdmVudCBr
ZXlFdmVudFdpdGhUeXBlOk5TS2V5VXAKKyAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246
TlNNYWtlUG9pbnQoNSwgNSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6
bW9kaWZpZXJGbGFncwogICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOmFic29sdXRl
VGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC05MTgsNyArOTE5LDcgQEAg
dm9pZCBFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyhpbnQgeCwgaW50IHksIGludAogICAgIFJldGFpblB0cjxFdmVudFNlbmRlclN5bnRoZXRp
Y0V2ZW50PiBldmVudCA9IGFkb3B0TlMoW1tFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IGFsbG9j
XSBpbml0XSk7CiAKICAgICAvLyAibWF5QmVnaW4iIGEgc3dpcGUgaXMgYWN0dWFsbHkgYSBzY3Jv
bGwgd2hlZWwgZXZlbnQuCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl90eXBlID0gKHBoYXNlID09
IDEyOCkgPyBOU1Njcm9sbFdoZWVsIDogTlNFdmVudFR5cGVHZXN0dXJlOworICAgIGV2ZW50LT5f
ZXZlbnRTZW5kZXJfdHlwZSA9IChwaGFzZSA9PSAxMjgpID8gTlNFdmVudFR5cGVTY3JvbGxXaGVl
bCA6IE5TRXZlbnRUeXBlR2VzdHVyZTsKICAgICBldmVudC0+X2V2ZW50U2VuZGVyX3N1YnR5cGUg
PSA2OyAvLyBrSU9ISURFdmVudFR5cGVTY3JvbGwKICAgICBldmVudC0+X2V2ZW50U2VuZGVyX2xv
Y2F0aW9uSW5XaW5kb3cgPSBOU01ha2VQb2ludChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSk7
CiAgICAgZXZlbnQtPl9ldmVudFNlbmRlcl9sb2NhdGlvbiA9IChbbV90ZXN0Q29udHJvbGxlci0+
bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSBjb252ZXJ0UmVjdFRvU2NyZWVuOk5TTWFr
ZVJlY3QobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnksIDEsIDEpXS5vcmlnaW4pOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IGZi
N2NkODVmZjcxN2MzMzNjNzEwYjNhMDU5MDQ1MmY5ZjA0YTJjYmUuLjgzMzg1MDJkNDhiYzgwYTMy
MDc3OGExY2IxMGFkZWJlY2FiZDZmNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgPFdl
YktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3
UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9B
cHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBXS19BUElfRU5BQkxFRAog
QGludGVyZmFjZSBXS1dlYlZpZXcgKERldGFpbHMpCkBAIC0xNDUsNyArMTQ2LDcgQEAgUGxhdGZv
cm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tXZWJWaWV3Q29uZmlndXJhdGlvbiogY29uZmln
dXJhdGlvbiwgY29uc3QgVGUKIAogICAgIE5TU2NyZWVuICpmaXJzdFNjcmVlbiA9IFtbTlNTY3Jl
ZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXTsKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IG1f
b3B0aW9ucy5zaG91bGRTaG93V2ViVmlldyA/IE5TT2Zmc2V0UmVjdChyZWN0LCAxMDAsIDEwMCkg
OiBOU09mZnNldFJlY3QocmVjdCwgLTEwMDAwLCBbZmlyc3RTY3JlZW4gZnJhbWVdLnNpemUuaGVp
Z2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKLSAgICBtX3dpbmRvdyA9IFtbV2ViS2l0
VGVzdFJ1bm5lcldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0
eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6KE5TQmFja2luZ1N0b3JlVHlw
ZSlfTlNCYWNraW5nU3RvcmVVbmJ1ZmZlcmVkIGRlZmVyOllFU107CisgICAgbV93aW5kb3cgPSBb
W1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93
UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6KE5TQmFj
a2luZ1N0b3JlVHlwZSlfTlNCYWNraW5nU3RvcmVVbmJ1ZmZlcmVkIGRlZmVyOllFU107CiAgICAg
bV93aW5kb3cucGxhdGZvcm1XZWJWaWV3ID0gdGhpczsKICAgICBbbV93aW5kb3cgc2V0Q29sb3JT
cGFjZTpbZmlyc3RTY3JlZW4gY29sb3JTcGFjZV1dOwogICAgIFttX3dpbmRvdyBzZXRDb2xsZWN0
aW9uQmVoYXZpb3I6TlNXaW5kb3dDb2xsZWN0aW9uQmVoYXZpb3JTdGF0aW9uYXJ5XTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggY2Y4
N2U2OWVjYTg4NzhmODQ1ZGIwMjBhMjUzOWVjMDhkNThlNTQ4ZS4uNWQxZGQxZTgyNzg3MzQxODRh
MTMyMzJmYmFhM2E4ODJmNDk2ZmE2MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9t
YWMvVGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbXBvcnQgPFdlYktp
dC9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8bWFjaC1v
L2R5bGQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgTlNT
b3VuZCAoKQogKyAodm9pZClfc2V0QWxlcnRUeXBlOihOU1VJbnRlZ2VyKWFsZXJ0VHlwZTsKQEAg
LTEwMyw3ICsxMDQsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVU
b0NvbnNpc3RlbnRWYWx1ZXMoKQogewogICAgIGNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZh
bHVlcygpOwogCi0gICAgd2hpbGUgKFtOU0FwcCBuZXh0RXZlbnRNYXRjaGluZ01hc2s6TlNFdmVu
dE1hc2tHZXN0dXJlIHwgTlNTY3JvbGxXaGVlbE1hc2sgdW50aWxEYXRlOm5pbCBpbk1vZGU6TlNE
ZWZhdWx0UnVuTG9vcE1vZGUgZGVxdWV1ZTpZRVNdKSB7CisgICAgd2hpbGUgKFtOU0FwcCBuZXh0
RXZlbnRNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tHZXN0dXJlIHwgTlNFdmVudFR5cGVTY3JvbGxX
aGVlbCB1bnRpbERhdGU6bmlsIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllF
U10pIHsKICAgICAgICAgLy8gQ2xlYXIgb3V0IChhbmQgaWdub3JlKSBhbnkgcGVuZGluZyBnZXN0
dXJlIGFuZCBzY3JvbGwgd2hlZWwgZXZlbnRzLgogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294132</attachid>
            <date>2016-11-07 21:30:32 -0800</date>
            <delta_ts>2016-11-07 21:42:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107212623.patch</filename>
            <type>text/plain</type>
            <size>236817</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBL
aXRTdHVicy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVi
cy5oCmluZGV4IDExNjYxODkwMjY0YjU3Nzk5OTNiZDM3YWVjMzU0M2JhMTMwZDE0MDQuLjQyOGQ2
OTM4NjVhZDViN2QyM2VjNmI4YTJhNjk2ZDU5ODUxZjE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLQXBwS2l0U3R1YnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS0FwcEtpdFN0dWJzLmgKQEAgLTE1NCwxNSArMTU0LDE1
IEBAIHR5cGVkZWYgTlNVSW50ZWdlciBOU1JlY3RFZGdlOwogCiAvKiBEZXZpY2UtaW5kZXBlbmRl
bnQgYml0cyBmb3VuZCBpbiBldmVudCBtb2RpZmllciBmbGFncyAqLwogZW51bSB7Ci0gICAgTlNB
bHBoYVNoaWZ0S2V5TWFzayA9IDEgPDwgMTYsCi0gICAgTlNTaGlmdEtleU1hc2sgPSAgICAgIDEg
PDwgMTcsCi0gICAgTlNDb250cm9sS2V5TWFzayA9ICAgIDEgPDwgMTgsCi0gICAgTlNBbHRlcm5h
dGVLZXlNYXNrID0gIDEgPDwgMTksCi0gICAgTlNDb21tYW5kS2V5TWFzayA9ICAgIDEgPDwgMjAs
Ci0gICAgTlNOdW1lcmljUGFkS2V5TWFzayA9IDEgPDwgMjEsCi0gICAgTlNIZWxwS2V5TWFzayA9
ICAgICAgIDEgPDwgMjIsCi0gICAgTlNGdW5jdGlvbktleU1hc2sgPSAgIDEgPDwgMjMsCi0gICAg
TlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKKyAgICBO
U0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2sgPSAxIDw8IDE2LAorICAgIE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdCA9IDEgPDwgMTcsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSAx
IDw8IDE4LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gPSAxIDw8IDE5LAorICAgIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kID0gMSA8PCAyMCwKKyAgICBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZCA9IDEgPDwgMjEsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgPSAx
IDw8IDIyLAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbiA9IDEgPDwgMjMsCisgICAg
TlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrID0gMHhmZmZmMDAw
MFUKIH07CiAKIHR5cGVkZWYgZW51bSBfV0tXcml0aW5nRGlyZWN0aW9uIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5
YzBiZDBmNjY5ZWIyNTRkMGMuLjcyOGQzNDRhOTQ1MDM0YjljN2EyMDg1ZjQ1NjNkYzFiYjY5NjRl
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtMjksNiAr
MjksNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50
ZXJmYWNlIFdlYkNvcmVDdXJzb3JCdW5kbGUgOiBOU09iamVjdCB7IH0KIEBlbmQKQEAgLTY0LDEw
ICs2NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJ
bWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTCiAgICAgICAgIE5TUmVjdCBmcm9tUmVj
dCA9IE5TTWFrZVJlY3QoMCwgMCwgaW1hZ2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CiAK
ICAgICAgICAgW2V4cGFuZGVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJl
Y3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVj
dDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRp
b25Tb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwogICAgICAgICBbZXhwYW5kZWRJbWFnZSB1bmxvY2tG
b2N1c107CiAKICAgICAgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0N1cnNvciBhbGxvY10gaW5pdFdp
dGhJbWFnZTpleHBhbmRlZEltYWdlLmdldCgpIGhvdFNwb3Q6aG90U3BvdF0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggNjgyNDZiZWZhNTIzZWRm
ZjNiNjA1YzYwMTE4NzE5ZDQ3Mjk4ZDA5Yi4uMGZmNDIwMjAwY2M4YmQzNDg3ZTQ1NmY3NzkwZWRl
ZTk1ZThmNTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIKICNpbXBv
cnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzUsMTAgKzc2LDcgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZl
RHJhZ0ltYWdlVG9GcmFjdGlvbihSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGZsb2F0IGQKICAg
ICBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVkSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBh
bGxvY10gaW5pdFdpdGhTaXplOltpbWFnZS5nZXQoKSBzaXplXV0pOwogICAgIAogICAgIFtkaXNz
b2x2ZWRJbWFnZS5nZXQoKSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIFtpbWFnZS5nZXQoKSBkcmF3QXRQb2ludDpOU1plcm9Qb2ludCBmcm9tUmVj
dDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXplXS53aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdo
dCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weSBmcmFjdGlvbjpkZWx0YV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5TWmVyb1Bv
aW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ug
c2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvbkNvcHkgZnJhY3Rp
b246ZGVsdGFdOwogICAgIFtkaXNzb2x2ZWRJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICByZXR1cm4gZGlzc29sdmVkSW1hZ2U7CkBAIC0xMTksMTAgKzExNyw4IEBAIFJldGFpblB0cjxO
U0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpCiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgc2V0VHJhbnNm
b3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QqKSZ0cmFuc2Zvcm1dOwogICAgICAg
ICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIGNvbmNhdF07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkg
ZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlv
bjoxLjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW2ltYWdl
LT5zbmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJl
Y3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3Np
dGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKKwogICAgICAgICAgICAgW3Jv
dGF0ZWREcmFnSW1hZ2UuZ2V0KCkgdW5sb2NrRm9jdXNdOwogCiAgICAgICAgICAgICByZXR1cm4g
cm90YXRlZERyYWdJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9FdmVudExvb3BNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29w
TWFjLm1tCmluZGV4IGFmMGEzOTkyYjY2ZTlkNmZmYzAxNzcxMjQ4NTc2MjZhMDA1YTVlOTAuLmI5
Y2M1NDVhOTg0OTM0ZDU0NjBkZGJkZjViZDRlYzNlYTcxNTkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQpAQCAtMjUsMTYgKzI1LDE0IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlIDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQogewogICAgIFtOU0FwcCBzZXRXaW5kb3dz
TmVlZFVwZGF0ZTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0FueUV2ZW50
TWFzayB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjAuMDVd
IGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU11dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1h
dGNoaW5nTWFzazpOU0V2ZW50TWFza0FueSB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJ
bnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVl
OllFU11dOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGE1ZGYzNDc0YzMxMWM2YTc1NjFkN2Y0
ZDQ0NTUzMTRhYTA0ZDAwNzAuLjFjNGUzYzE5ODAzMWNmZmE2ZmE5YjY2NTI3MWFiZmE0NzMyZDc2
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBA
IC01NSw2ICs1NSw3IEBACiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2ltcG9ydCA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIApAQCAt
NjUzLDExICs2NTQsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBsb2NhdGlvbikKICAgICAvLyBIYWNrOiBXZSBtdXN0
IHBvc3QgYW4gZXZlbnQgdG8gd2FrZSB1cCB0aGUgTlNEcmFnTWFuYWdlciwgd2hpY2ggaXMgc2l0
dGluZyBpbiBhIG5leHRFdmVudCBjYWxsCiAgICAgLy8gdXAgdGhlIHN0YWNrIGZyb20gdXMgYmVj
YXVzZSB0aGUgQ29yZUZvdW5kYXRpb24gZHJhZyBtYW5hZ2VyIGRvZXMgbm90IHVzZSB0aGUgcnVu
IGxvb3AgYnkgaXRzZWxmLgogICAgIC8vIFRoaXMgaXMgdGhlIG1vc3QgaW5ub2N1b3VzIGV2ZW50
IHRvIHVzZSwgcGVyIEtyaXN0ZW4gRm9yc3Rlci4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU01vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9pbnQKKyAgICBOU0V2ZW50KiBldmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRp
b246TlNaZXJvUG9pbnQKICAgICAgICAgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRv
d051bWJlcjowIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6
ZXZlbnQgYXRTdGFydDpZRVNdOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggZDM0ZDZlYWU5
NDhmN2FmY2JhYjMzMDMxNGZkY2JhNzhlOWU0MDBiOC4uMGQyZTMxOGVjZGZiMTMwNDIzODc3YTcz
MmQ4MmY4NjkxOTc2OTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNTIsMjcgKzUyLDI0IEBAIHN0YXRp
YyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQ
cmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3Vz
ZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2lu
ZG93XSwgW2V2ZW50IHdpbmRvd10pOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIHsgMCwgMCB9OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKKyAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtl
dmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiB7IDAsIDAgfTsKICAgICB9CiB9CiAKQEAgLTgwLDMzICs3NywzMCBAQCBz
dGF0aWMgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5k
b3dWaWV3KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQ
NjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJl
OgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNh
c2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgot
ICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNTY3JvbGxXaGVlbDogewotICAg
ICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9t
IGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgotICAgICAg
ICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5
IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93LgotICAgICAgICAgICAgTlNQb2lu
dCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKLSAgICAgICAgICAgIGlmICh3
aW5kb3dWaWV3KQotICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW3dpbmRvd1ZpZXcgY29udmVy
dFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9p
bnQobG9jYXRpb24pOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQoKTsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hl
ZWw6IHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUg
Ym90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgor
ICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQg
YnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCisgICAgICAgIE5TUG9pbnQg
bG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIGlmICh3aW5kb3dW
aWV3KQorICAgICAgICAgICAgbG9jYXRpb24gPSBbd2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9j
YXRpb24gZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgcmV0dXJuIEludFBvaW50KGxvY2F0aW9uKTsK
KyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CiAgICAgfQog
fQogCkBAIC0xMTQsNzIgKzEwOCw2MyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91c2VCdXR0b25G
b3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewog
I2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJl
dHVybiBMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIE5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIExlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gUmlnaHRC
dXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBOb0J1dHRvbjsKICAgICB9CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBl
IG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6
Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92
ZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJl
dHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2Vk
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3Nl
ZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKIHN0YXRp
YyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNs
aWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVy
biBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogfQogCkBAIC00OTcsMjggKzQ4MiwyOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktl
eUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVGbGFnc0NoYW5nZWQpIHsKICAgICAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsK
LSAgICAgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgICAgIGNhc2Ug
NTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2siKTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgICAgIGNhc2Ug
NjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0g
ICAgICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgICAgICByZXR1cm4g
U3RyaW5nKCJBbHQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTk6IC8v
IExlZnQgQ3RybAotICAgICAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgNTQ6IC8v
IFJpZ2h0IENvbW1hbmQKKyAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
ICAgICByZXR1cm4gU3RyaW5nKCJNZXRhIik7CisKKyAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xv
Y2sKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7CisKKyAgICAgICAgY2Fz
ZSA1NjogLy8gTGVmdCBTaGlmdAorICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKworICAgICAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAorICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoIkFsdCIpOworCisgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgICAg
ICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDb250
cm9sIik7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgCkBAIC01MzQsNDQgKzUxOSwzOCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5T
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBl
dmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246
Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAg
ICAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
RmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TTnVtZXJpY1BhZEtleU1hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFy
Ci0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBj
YXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8g
KwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAg
ICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0
OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAg
ICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4
OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAg
ICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAg
ICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVy
CisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAx
CisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0
CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3
CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNTg1LDEwICs1NjQs
NyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAv
LyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29k
ZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlz
LiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVu
dCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NL
ZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlE
b3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9
PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXAp
KSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdF
UlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5T
U3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3Ro
XSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0p
IDogMDsKQEAgLTY0NiwzNSArNjIyLDMyIEBAIGRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3
MChOU0V2ZW50KiBldmVudCkKIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2ZW50
IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZs
YWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtl
eVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNzZXMg
Ym90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0IHJl
bGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNv
ZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2FzZSA1
NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2Fz
ZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0g
ICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNr
KSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAg
ICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0
cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9u
S2V5TWFzaykgPT0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIDU0
OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21t
YW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1No
aWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQg
QWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2
MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAg
Kzc5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9rZXkgPSBrZXlGb3JLZXlFdmVudChldmVudCk7
CiAgICAgICAgIG1fY29kZSA9IGNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIG1fYXV0b1JlcGVhdCA9
IFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50
IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwog
ICAgICAgICBtX2lzS2V5cGFkID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgICAgIG1faXNT
eXN0ZW1LZXkgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFj
LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
bW0KaW5kZXggOTFjYmVkZDBjZGEwNzA2NWIzYmYzZjE3MDE1OGYxZDYyNzczMTgzZi4uNjRkODU0
YThlODRjODYyYTkwYWJkNDU3NWNlNjNlYmVlNGQyZWUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtNDIsNiArNDIsNyBAQAog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIC8vIEZJWE1FOiBUaGVyZSBh
cmUgcmVwYWludGluZyBwcm9ibGVtcyBkdWUgdG8gQXF1YSBzY3JvbGwgYmFyIGJ1dHRvbnMnIHZp
c3VhbCBvdmVyZmxvdy4KIApAQCAtMTM5LDE4ICsxNDAsMTUgQEAgc3RhdGljIFNjcm9sbGJhckJ1
dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVF
bmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoY29udHJvbFNpemUpIHsKICAgICBj
YXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6
ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGNhc2UgU21hbGxT
Y3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIH0KIAogdm9pZCBT
Y3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggMDI0NzJjOWE2
OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4uYjEwMDQxYjVlYjE3MmY0MzcyYzQwMDU1
YjE2OTk3YzEzOTRjMjNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHN0YXRpYyBOU1JlY3QgZm9jdXNSaW5nQ2xpcFJlY3Q7CiBzdGF0aWMgQk9PTCB0aGVtZVdp
bmRvd0hhc0tleUFwcGVhcmFuY2U7CkBAIC02NywxMSArNjgsOCBAQCAtIChOU1dpbmRvdyAqKXdp
bmRvdwogewogICAgIC8vIFVzaW5nIGRlZmVyOllFUyBwcmV2ZW50cyB1cyBmcm9tIHdhc3Rpbmcg
YW55IHdpbmRvdyBzZXJ2ZXIgcmVzb3VyY2VzIGZvciB0aGlzIHdpbmRvdywgc2luY2Ugd2UncmUg
bm90IGFjdHVhbGx5CiAgICAgLy8gZ29pbmcgdG8gZHJhdyBpbnRvIGl0LiBUaGUgb3RoZXIgYXJn
dW1lbnRzIG1hdGNoIHdoYXQgeW91IGdldCB3aGVuIGNhbGxpbmcgLVtOU1dpbmRvdyBpbml0XS4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzdGF0aWMgV2ViQ29yZVRo
ZW1lV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVUaGVtZVdpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCkKLSAgICAgICAgc3R5bGVN
YXNrOk5TVGl0bGVkV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrVGl0bGVkIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpZRVNdOwogICAgIHJldHVybiB3aW5kb3c7CiB9CiAKQEAgLTE0NCwxNSArMTQyLDEyIEBA
IFRoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKIAogc3RhdGljIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAg
ICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNp
emU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICBpZiAoZm9udFNp
emUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWlu
aTsKIH0KIAogc3RhdGljIExlbmd0aFNpemUgc2l6ZUZyb21OU0NvbnRyb2xTaXplKE5TQ29udHJv
bFNpemUgbnNDb250cm9sU2l6ZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvciwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMpCkBAIC0xNzUs
MTYgKzE3MCwxMyBAQCBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbUZvbnQoY29uc3QgRm9udENh
c2NhZGUmIGZvbnQsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZAogCiBzdGF0aWMgQ29udHJvbFNp
emUgY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4m
IHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChtaW5ab29tZWRT
aXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6
ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3IpICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0
KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwot
ICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tO
U1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5a
b29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNTbWFsbENv
bnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19j
YXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tRmFjdG9y
KQorICAgICAgICAmJiBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53
aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0
aCgpICogem9vbUZhY3RvcikKKyAgICAgICAgJiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4g
TlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldENvbnRyb2xTaXplKE5TQ2Vs
bCogY2VsbCwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNp
emUmIG1pblpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpCkBAIC00ODAsMTAgKzQ3Miw3IEBA
IHN0YXRpYyB2b2lkIHNldFVwQnV0dG9uQ2VsbChOU0J1dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTCiB7CiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUg
YmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFpbnRpbmcgaW50by4KICAgICBjb25zdCBz
dGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcyA9IGJ1dHRvblNpemVzKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFy
dCB8fCB6b29tZWRTaXplLmhlaWdodCgpID4gYnV0dG9uU2l6ZXMoKVtOU1JlZ3VsYXJDb250cm9s
U2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRTaXplLmhlaWdo
dCgpID4gYnV0dG9uU2l6ZXMoKVtOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSB7CiAgICAgICAgIC8vIFVzZSB0aGUgc3F1YXJlIGJ1dHRvbgogICAgICAgICBpZiAo
W2NlbGwgYmV6ZWxTdHlsZV0gIT0gTlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZSkKICAgICAg
ICAgICAgIFtjZWxsIHNldEJlemVsU3R5bGU6TlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZV07
CkBAIC01NzksMTUgKzU2OCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAz
PiYgc3RlcHBlclNpemVzKCkKIC8vIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNzIHRoYW4gdGhl
IGNvcnJlc3BvbmRpbmcgdGV4dCBmaWVsZCBoZWlnaHQsCiBzdGF0aWMgTlNDb250cm9sU2l6ZSBz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQu
cGl4ZWxTaXplKCk7CiAgICAgaWYgKGZvbnRTaXplID49IDE4KQotICAgICAgICByZXR1cm4gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsK
ICAgICBpZiAoZm9udFNpemUgPj0gMTMpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNp
emU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBO
U0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xT
dGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqKQpAQCAtNjAwLDE1ICs1
ODYsMTIgQEAgc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGRyYXdJbmZvLnN0YXRlID0gY29u
dmVydENvbnRyb2xTdGF0ZXNUb1RoZW1lRHJhd1N0YXRlKGtUaGVtZUluY0RlY0J1dHRvbiwgc3Rh
dGVzKTsKICAgICBkcmF3SW5mby5hZG9ybm1lbnQgPSBrVGhlbWVBZG9ybm1lbnREZWZhdWx0Owog
ICAgIENvbnRyb2xTaXplIGNvbnRyb2xTaXplID0gY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKHN0
ZXBwZXJTaXplcygpLCBJbnRTaXplKHpvb21lZFJlY3Quc2l6ZSgpKSwgem9vbUZhY3Rvcik7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xTaXplID09
IE5TU21hbGxDb250cm9sU2l6ZSkKKyAgICBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6
ZVNtYWxsKQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uU21hbGw7
Ci0gICAgZWxzZSBpZiAoY29udHJvbFNpemUgPT0gTlNNaW5pQ29udHJvbFNpemUpCisgICAgZWxz
ZSBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZU1pbmkpCiAgICAgICAgIGRyYXdJbmZv
LmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b25NaW5pOwogICAgIGVsc2UKICAgICAgICAgZHJhd0lu
Zm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIAogICAgIEludFJlY3QgcmVjdCh6b29tZWRSZWN0KTsKICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CkBAIC03NDksMTIgKzczMiw5IEBAIExlbmd0
aFNpemUgVGhlbWVNYWM6Om1pbmltdW1Db250cm9sU2l6ZShDb250cm9sUGFydCBwYXJ0LCBjb25z
dCBGb250Q2FzY2FkZSYgZm9uCiAgICAgICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICAgICAgICAg
IHJldHVybiBMZW5ndGhTaXplKExlbmd0aCgwLCBGaXhlZCksIExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KDE1ICogem9vbUZhY3RvciksIEZpeGVkKSk7CiAgICAgICAgIGNhc2UgSW5uZXJTcGluQnV0
dG9uUGFydDp7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAg
ICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU01pbmlDb250cm9sU2l6ZV07CisgICAg
ICAgICAgICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU0NvbnRyb2xTaXplTWluaV07
CiAgICAgICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZShMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pihi
YXNlLndpZHRoKCkgKiB6b29tRmFjdG9yKSwgRml4ZWQpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oYmFzZS5oZWlnaHQoKSAqIHpvb21GYWN0
b3IpLCBGaXhlZCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gVGhlbWU6Om1pbmltdW1Db250cm9s
U2l6ZShwYXJ0LCBmb250LCB6b29tRmFjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KaW5kZXggZDNiOWVlOThkZjk0MjBjY2Q3MTE2YjA0MDM1NjM4M2NmYzc0NmY5
MC4uYjQ4NjA2Y2I1YTc0NGQ4NzBiODYxOTM0MzY2Mjg5OGJhOWZmNGVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxWaWRlb0Vs
ZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0
Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtNzMsMTAgKzc0LDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdwogLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0KWNv
bnRlbnRSZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilhU3R5bGUgYmFja2luZzooTlNCYWNraW5n
U3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxhZwogewogICAgIFVOVVNFRF9Q
QVJBTShhU3R5bGUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6TlNC
b3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENv
bnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3MgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmZsYWddOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKIApAQCAtMTIyLDE1ICsxMjAsMTIgQEAgLSAoQk9PTClyZXNpZ25G
aXJzdFJlc3BvbmRlcgogCiAtIChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICop
ZXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBCbG9j
ayBhbGwgY29tbWFuZCBrZXkgZXZlbnRzIHdoaWxlIHRoZSBmdWxsc2NyZWVuIHdpbmRvdyBpcyB1
cC4KLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5
cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotICAg
IGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spKQorICAgIGlm
ICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSkK
ICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIHJl
dHVybiBZRVM7CiB9CiAKQEAgLTE0NSwxMSArMTQwLDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIKIAogLSAoaWQpaW5pdAogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dl
YlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01h
a2VSZWN0KDAsIDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCB3aW5kb3dXaWR0aCwg
d2luZG93SGVpZ2h0KSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBp
bml0V2l0aFdpbmRvdzp3aW5kb3ddOwogICAgIFt3aW5kb3cgc2V0RGVsZWdhdGU6c2VsZl07CiAg
ICAgW3dpbmRvdyByZWxlYXNlXTsKQEAgLTE4OCwyMCArMTc5LDE3IEBAIC0gKHZvaWQpa2V5RG93
bjooTlNFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICBjYXNlICcgJzoKICAgICAgICAgICAgICAg
ICBbc2VsZiB0b2dnbGVQbGF5aW5nOm5pbF07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKLSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNBbHRlcm5hdGVLZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAg
ICBbc2VsZiBzZXRWb2x1bWU6W3NlbGYgbWF4Vm9sdW1lXV07CiAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBpbmNyZW1lbnRWb2x1bWVdOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToK
LSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzZXRWb2x1
bWU6MF07CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBk
ZWNyZW1lbnRWb2x1bWVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC0zNzgsMTcgKzM2NiwxMSBAQCAtICh2b2lkKXdpbmRvd0RpZExvYWQKICAgICBbY29u
dGVudFZpZXcgYWRkU3VidmlldzpfdGltZWxpbmVdOwogCiAgICAgX2VsYXBzZWRUaW1lVGV4dCA9
IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZVRleHRG
aWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtf
ZWxhcHNlZFRpbWVUZXh0IHNldEFsaWdubWVudDpOU0xlZnRUZXh0QWxpZ25tZW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX2VsYXBzZWRUaW1lVGV4dCBzZXRBbGlnbm1l
bnQ6TlNUZXh0QWxpZ25tZW50TGVmdF07CiAgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X2Vs
YXBzZWRUaW1lVGV4dF07CiAKICAgICBfcmVtYWluaW5nVGltZVRleHQgPSBjcmVhdGVUaW1lVGV4
dEZpZWxkKE5TTWFrZVJlY3Qod2luZG93V2lkdGggLSB0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiAtIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0
RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX3Jl
bWFpbmluZ1RpbWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAg
W2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X3JlbWFpbmluZ1RpbWVUZXh0XTsKIAogICAgIFt3aW5k
b3cgcmVjYWxjdWxhdGVLZXlWaWV3TG9vcF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQppbmRleCA0NTk4YTAzZWQyZmEzMjE1MGU2NGFm
OWNiYjY0NTk5NDY5ZmRkZjc3Li43ZGU1ZWI1MzdjN2ZhMDIzNTIyYmNlZjY4MzMyM2IyNTg0ZWNj
NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5p
bWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmlt
YXRpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zOCwxMCArMzksNyBAQCBzdGF0aWMg
Y29uc3QgQ0dGbG9hdCBzbG93TW90aW9uRmFjdG9yID0gMTA7CiAKIHN0YXRpYyBOU1RpbWVJbnRl
cnZhbCBXZWJXaW5kb3dBbmltYXRpb25EdXJhdGlvbkZyb21EdXJhdGlvbihOU1RpbWVJbnRlcnZh
bCBkdXJhdGlvbikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBy
ZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlN
YXNrKSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1v
ZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSA/IGR1cmF0aW9uICogc2xv
d01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwogfQogCiBzdGF0aWMgTlNSZWN0IHNjYWxlZFJlY3Qo
TlNSZWN0IF9pbml0aWFsRnJhbWUsIE5TUmVjdCBfZmluYWxGcmFtZSwgQ0dGbG9hdCBmYWN0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggM2VkZGMw
M2U0ZDhlOWY2MzUxN2M1MjcxZjIwMWI1Njc4MjJiOTAyOC4uODU3NjQyMzUyM2E5MGM4YTUyNTE4
MDU0YWQ5MmI1MTQ0ZjQxOTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtODEsNiArODEsNyBAQAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgog
I2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNpbXBvcnQgPG1hdGguaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgRU5BQkxFKE1FVEVS
X0VMRU1FTlQpCiAjaW1wb3J0ICJSZW5kZXJNZXRlci5oIgpAQCAtMzc5LDIyICszODAsMTMgQEAg
dm9pZCBSZW5kZXJUaGVtZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENT
U1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm8KICAgICAgICAgICAgIGZvbnROYW1lID0gQXRvbWljU3Ry
aW5nKCItYXBwbGUtc3RhdHVzLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNaW5p
Q29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAg
IGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZv
ckNvbnRyb2xTaXplOk5TTWluaUNvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0Zv
bnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplTWluaV1dOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0
ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF1dOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDb250cm9sOgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lz
dGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNSZWd1
bGFyQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1bGFyXV07CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZv
bnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZV1dOwpAQCAtNzc3LDMwICs3NjksMjQgQEAg
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvKSBjb25zdAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVG
b3JGb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpbnQgZm9udFNp
emUgPSBzdHlsZS5mb250U2l6ZSgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGlmIChmb250U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRy
b2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZv
bnRTaXplID49IDExKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJl
dHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6
ZU1pbmk7CiB9CiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9y
Q2VsbChOU0NlbGwqLCBjb25zdCBJbnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6
ZSwgZmxvYXQgem9vbUxldmVsKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXpl
c1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21MZXZlbCkKLSAgICAgICAgJiYg
bWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tTGV2ZWwpCisgICAgICAg
ICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xT
aXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVJlZ3VsYXI7CiAKLSAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0
PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxldmVsKQotICAg
ICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFs
bENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1Nt
YWxsQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lkdGgoKSAqIHpvb21MZXZlbCkKKyAgICAg
ICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJv
bFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVNtYWxsOwogCi0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAog
dm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBJ
bnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSwgZmxvYXQgem9vbUxldmVsKQpA
QCAtODU3LDE1ICs4NDMsMTIgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250
cm9sU2l6ZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmIHN0eWxlLAogCiBOU0NvbnRyb2xT
aXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0gICAgaWYgKGZvbnRTaXpl
ID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9s
U2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAoZm9u
dFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250
cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250
cm9sU2l6ZVJlZ3VsYXJdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7Cisg
ICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpO
U0NvbnRyb2xTaXplU21hbGxdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOwor
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6
cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiByKQpAQCAtMTE0NywxMCArMTEzMCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50UHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgY29uc3QgYXV0byYgcmVuZGVyUHJvZ3Jlc3MgPSBkb3du
Y2FzdDxSZW5kZXJQcm9ncmVzcz4ocmVuZGVyT2JqZWN0KTsKICAgICBISVRoZW1lVHJhY2tEcmF3
SW5mbyB0cmFja0luZm87CiAgICAgdHJhY2tJbmZvLnZlcnNpb24gPSAwOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU1JlZ3VsYXJD
b250cm9sU2l6ZSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoY29udHJv
bFNpemUgPT0gTlNDb250cm9sU2l6ZVJlZ3VsYXIpCiAgICAgICAgIHRyYWNrSW5mby5raW5kID0g
cmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBrVGhlbWVMYXJnZUluZGV0ZXJtaW5hdGVC
YXIgOiBrVGhlbWVMYXJnZVByb2dyZXNzQmFyOwogICAgIGVsc2UKICAgICAgICAgdHJhY2tJbmZv
LmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZU1lZGl1bUluZGV0
ZXJtaW5hdGVCYXIgOiBrVGhlbWVNZWRpdW1Qcm9ncmVzc0JhcjsKQEAgLTE0MzgsMTUgKzE0MTgs
MTIgQEAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgUmVuZGVyVGhlbWVNYWM6OnBvcHVw
TWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICBOU1BvcFVwQnV0dG9uQ2VsbCogcG9w
dXBCdXR0b24gPSB0aGlzLT5wb3B1cEJ1dHRvbigpOwogICAgIE5TQ29udHJvbFNpemUgc2l6ZSA9
IGNvbnRyb2xTaXplRm9yQ2VsbChwb3B1cEJ1dHRvbiwgcG9wdXBCdXR0b25TaXplcygpLCByZWN0
LnNpemUoKSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICBzd2l0Y2ggKHNpemUpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TUmVndWxhckNvbnRy
b2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVJlZ3VsYXI6CiAgICAgICAgIHJldHVybiBQ
b3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsKLSAgICBjYXNlIE5TU21hbGxDb250
cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVTbWFsbDoKICAgICAgICAgcmV0dXJuIFBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw7Ci0gICAgY2FzZSBOU01pbmlDb250cm9s
U2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVNaW5pOgogICAgICAgICByZXR1cm4gUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU5vcm1hbDsKICAgICB9CkBAIC0yMDU1LDEyICsyMDMyLDkgQEAgTlNTbGlkZXJDZWxsKiBS
ZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJIb3Jpem9udGFsKCkgY29uc3QKIHsKICAgICBpZiAo
IW1fc2xpZGVyVGh1bWJIb3Jpem9udGFsKSB7CiAgICAgICAgIG1fc2xpZGVyVGh1bWJIb3Jpem9u
dGFsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxvY10gaW5pdF0pOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwu
Z2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRlclRo
dW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdOwor
ICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1Ns
aWRlclR5cGVMaW5lYXJdOworICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkg
c2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1
bWJIb3Jpem9udGFsLmdldCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJp
b3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIHJldHVybiBt
X3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKTsKQEAgLTIwNzAsMTEgKzIwNDQsOCBAQCBOU1Ns
aWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYlZlcnRpY2FsKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fc2xpZGVyVGh1bWJWZXJ0aWNhbCkgewogICAgICAgICBtX3NsaWRlclRodW1i
VmVydGljYWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0XSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRlclRodW1iVmVydGlj
YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRl
clRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0
aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFtt
X3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRGb2N1c1JpbmdU
eXBlOk5TRm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXggZjJhMzU5NzNhNzFlMDY4
MjYwYTkxYzk2N2QyOTA1MGQyZWRlNzYwZC4uYTY5ZjZmMWZhNTBhOWE0YWRkODYzZjQ3OTViYzFk
NzEyZjBiYTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW0KQEAgLTc2LDYgKzc2LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RF
eHRyYXMuaCIKQEAgLTE3MywxMyArMTc0LDE0IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93
UmVmOihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAK
ICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBzdHlsZSBtYXNrLgogICAgIHN0eWxlTWFz
ayA9IFdLQ2FyYm9uV2luZG93TWFzaygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRl
KSBzdHlsZU1hc2sgfD0gTlNDbG9zYWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0F0dHJp
YnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKSBzdHlsZU1hc2sgfD0gTlNSZXNpemFi
bGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBz
ZSkgc3R5bGVNYXNrIHw9IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5k
b3dGZWF0dXJlcyAmIGtXaW5kb3dIYXNUaXRsZUJhcikgc3R5bGVNYXNrIHw9IE5TVGl0bGVkV2lu
ZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAod2luZG93QXR0
cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0dHJpYnV0ZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9
IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBr
V2luZG93UmVzaXphYmxlQXR0cmlidXRlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dT
dHlsZU1hc2tSZXNpemFibGU7CisgICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0NhbkNv
bGxhcHNlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6
YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpCisgICAg
ICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZDsKIAogICAgIG9zU3RhdHVz
ID0gR2V0V2luZG93TW9kYWxpdHkoX3dpbmRvd1JlZiwgJndpbmRvd01vZGFsaXR5LCBOVUxMKTsK
ICAgICBpZiAob3NTdGF0dXMgIT0gbm9FcnIpIHsKQEAgLTM5MywxOCArMzk1LDEyIEBAIC0gKHZv
aWQpc2VuZFN1cGVyRXZlbnQ6KE5TRXZlbnQgKilpbkV2ZW50IHsKICAgICAvLyBJZ25vcmUgc29t
ZSB1bmtub3duIGV2ZW50IHRoYXQgZ2V0cyBzZW50IHdoZW4gTlNUZXh0Vmlld3MgaW4gcHJpbnRp
bmcgYWNjZXNzb3J5IHZpZXdzIGFyZSBmb2N1c2VkLiAgTS5QLiBOb3RpY2UgLSAxMi83LzAwCiAg
ICAgQk9PTCBpZ25vcmVFdmVudCA9IE5POwogICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IFtp
bkV2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
IChldmVudFR5cGU9PU5TU3lzdGVtRGVmaW5lZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZpbmVkKSB7CiAg
ICAgICAgIHNob3J0IGV2ZW50U3VidHlwZSA9IFtpbkV2ZW50IHN1YnR5cGVdOwotICAgICAgICBp
ZiAoZXZlbnRTdWJ0eXBlPT03KSB7CisgICAgICAgIGlmIChldmVudFN1YnR5cGUgPT0gNykgewog
ICAgICAgICAgICAgaWdub3JlRXZlbnQgPSBZRVM7CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBOU0tleURv
d24pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICB9IGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAgICAgICAgLy8gSGFuZGxlIGNvbW1hbmQt
c3BhY2UgYXMgW05TQXBwIHNlbmRFdmVudDpdIGRvZXMuCiAgICAgICAgIGlmIChbTlNJbnB1dENv
bnRleHQgcHJvY2Vzc0lucHV0S2V5QmluZGluZ3M6aW5FdmVudF0pIHsKICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCmluZGV4IGQxYzU1MGYxZmNl
NzRkZGVlMTI3MTRlYmEzM2Q4NzNkMGZjNjMyOTIuLjZmNTM1ZDQwMzkxY2E3ZDA1NDU5YmRiZjE2
MzRjMzY0OGM1ZjI3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9ISVdl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQpAQCAt
MzcsNiArMzcsNyBAQAogI2ltcG9ydCAiV2ViS2l0LmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2Ug
TlNXaW5kb3cgKEFwcEtpdFNlY3JldHNISVdlYlZpZXdLbm93cykKIC0gKHZvaWQpX3JlbW92ZVdp
bmRvd1JlZjsKQEAgLTUzOSw3ICs1NDAsNyBAQCBDb250ZXh0TWVudUNsaWNrKCBISVdlYlZpZXcq
IGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiAgICAgTlNQb2ludCBsb2NhdGlvbiA9IE5TTWFr
ZVBvaW50KHBvaW50LngsIFt3aW5kb3cgZnJhbWVdLnNpemUuaGVpZ2h0IC0gcG9pbnQueSk7CiAg
ICAgCiAgICAgLy8gTWFrZSB1cCBhbiBldmVudCB3aXRoIHRoZSBwb2ludCBhbmQgc2VuZCBpdCB0
byB0aGUgd2luZG93LgotICAgIE5TRXZlbnQgKmtpdEV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24KKyAgICBOU0V2ZW50ICpraXRFdmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246bG9jYXRpb24KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0RXZlbnRU
aW1lKGluRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TRXZl
bnRFeHRyYXMubSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCmlu
ZGV4IGVlYjhjOTIxZDk0YjU4YmU0YmZjZmJmMTM1NGM4YWMwNWU1NGZjMGYuLmQ4ZmIyYTFmNjE5
YTkzNDVjOGQ2MzA3YzUzMzBlODVlYjBmMDY5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2Mv
V2ViTlNFdmVudEV4dHJhcy5tCkBAIC0yOSwxNiArMjksMTQgQEAKICNpZiAhUExBVEZPUk0oSU9T
KQogCiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViTlNFdmVudEV4dHJhcy5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbXBsZW1lbnRh
dGlvbiBOU0V2ZW50IChXZWJFeHRyYXMpCiAKIC0oQk9PTClfd2ViX2lzS2V5RXZlbnQ6KHVuaWNo
YXIpa2V5CiB7CiAgICAgaW50IHR5cGUgPSBbc2VsZiB0eXBlXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAodHlwZSAhPSBOU0tleURvd24gJiYgdHlwZSAhPSBO
U0tleVVwKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICh0eXBlICE9IE5T
RXZlbnRUeXBlS2V5RG93biAmJiB0eXBlICE9IE5TRXZlbnRUeXBlS2V5VXApCiAgICAgICAgIHJl
dHVybiBOTzsKICAgICAKICAgICBOU1N0cmluZyAqY2hhcnMgPSBbc2VsZiBjaGFyYWN0ZXJzSWdu
b3JpbmdNb2RpZmllcnNdOwpAQCAtNjcsMTAgKzY1LDcgQEAgLSAoQk9PTClfd2ViX2lzRXNjYXBl
S2V5RXZlbnQKIAogLSAoQk9PTClfd2ViX2lzT3B0aW9uVGFiS2V5RXZlbnQKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gKFtzZWxmIG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSAmJiBbc2VsZiBfd2ViX2lzVGFiS2V5RXZlbnRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW3NlbGYgbW9kaWZpZXJG
bGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSAmJiBbc2VsZiBfd2ViX2lzVGFiS2V5
RXZlbnRdOwogfQogCiAtIChCT09MKV93ZWJfaXNSZXR1cm5PckVudGVyS2V5RXZlbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYk5TVmlld0V4dHJhcy5tCmluZGV4IDNkYzhmN2Y3YzFmYTQ2NmUx
YzdiYjY2MzUwNzEyMDJiMGJmODAyZTcuLjc0ODkwZDVlMjdkZTY5NmExNGI5NjgxZmQ5ZGIyNmZm
YThmYmViNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0
cmFzLm0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1ZpZXdFeHRyYXMubQpAQCAt
MzgsNiArMzgsNyBAQAogCiAjaWYgIVBMQVRGT1JNKElPUykKICNpbXBvcnQgPFdlYktpdExlZ2Fj
eS9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04
MiwxMiArODMsOSBAQCAtIChCT09MKV93ZWJfZHJhZ1Nob3VsZEJlZ2luRnJvbU1vdXNlRG93bjoo
TlNFdmVudCAqKW1vdXNlRG93bkV2ZW50CiAgICAgTlNFdmVudCAqbmV4dEV2ZW50LCAqZmlyc3RF
dmVudCwgKmRyYWdFdmVudCwgKm1vdXNlVXA7CiAgICAgQk9PTCBkcmFnSXQ7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW21vdXNlRG93bkV2ZW50IHR5cGVd
ICE9IE5TTGVmdE1vdXNlRG93bikgeworICAgIGlmIChbbW91c2VEb3duRXZlbnQgdHlwZV0gIT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CiAgICAgICAgIHJldHVybiBOTzsKICAgICB9Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBuZXh0RXZlbnQgPSBuaWw7CiAgICAg
Zmlyc3RFdmVudCA9IG5pbDsKQEAgLTk1LDkgKzkzLDcgQEAgLSAoQk9PTClfd2ViX2RyYWdTaG91
bGRCZWdpbkZyb21Nb3VzZURvd246KE5TRXZlbnQgKiltb3VzZURvd25FdmVudAogICAgIG1vdXNl
VXAgPSBuaWw7CiAgICAgZHJhZ0l0ID0gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICB3aGlsZSAoKG5leHRFdmVudCA9IFtbc2VsZiB3aW5kb3ddIG5leHRFdmVu
dE1hdGNoaW5nTWFzazooTlNMZWZ0TW91c2VVcE1hc2sgfCBOU0xlZnRNb3VzZURyYWdnZWRNYXNr
KQorICAgIHdoaWxlICgobmV4dEV2ZW50ID0gW1tzZWxmIHdpbmRvd10gbmV4dEV2ZW50TWF0Y2hp
bmdNYXNrOihOU0V2ZW50TWFza0xlZnRNb3VzZVVwIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEcmFn
Z2VkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW50aWxEYXRlOmV4cGlyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluTW9kZTpOU0V2ZW50VHJhY2tpbmdSdW5Mb29wTW9kZQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXF1ZXVl
OllFU10pICE9IG5pbCkgewpAQCAtMTA1LDcgKzEwMSw3IEBAIC0gKEJPT0wpX3dlYl9kcmFnU2hv
dWxkQmVnaW5Gcm9tTW91c2VEb3duOihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAgICAgICAg
ICAgIGZpcnN0RXZlbnQgPSBuZXh0RXZlbnQ7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoW25l
eHRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURyYWdnZWQpIHsKKyAgICAgICAgaWYgKFtuZXh0
RXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkKSB7CiAgICAgICAgICAg
ICBmbG9hdCBkZWx0YXggPSBBQlMoW25leHRFdmVudCBsb2NhdGlvbkluV2luZG93XS54IC0gW21v
dXNlRG93bkV2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLngpOwogICAgICAgICAgICAgZmxvYXQgZGVs
dGF5ID0gQUJTKFtuZXh0RXZlbnQgbG9jYXRpb25JbldpbmRvd10ueSAtIFttb3VzZURvd25FdmVu
dCBsb2NhdGlvbkluV2luZG93XS55KTsKICAgICAgICAgICAgIGRyYWdFdmVudCA9IG5leHRFdmVu
dDsKQEAgLTExOSwxMiArMTE1LDExIEBAIC0gKEJPT0wpX3dlYl9kcmFnU2hvdWxkQmVnaW5Gcm9t
TW91c2VEb3duOihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAgICAgICAgICAgICAgICBkcmFn
SXQgPSBZRVM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZSBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZVVwKSB7CisgICAgICAg
IH0gZWxzZSBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwKSB7
CiAgICAgICAgICAgICBtb3VzZVVwID0gbmV4dEV2ZW50OwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICAvLyBT
aW5jZSB3ZSd2ZSBiZWVuIGRlcXVldWluZyB0aGUgZXZlbnRzIChJZiB3ZSBkb24ndCwgd2UnbGwg
bmV2ZXIgc2VlIHRoZSBtb3VzZSB1cC4uLiksCiAgICAgLy8gd2UgbmVlZCB0byBwdXNoIHNvbWUg
b2YgdGhlIGV2ZW50cyBiYWNrIG9uLiAgSXQgbWFrZXMgc2Vuc2UgdG8gcHV0IHRoZSBmaXJzdCBh
bmQgbGFzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYWQ1OTM2OTZkNGI5YTk3NjZhM2Ni
Y2UwM2VhZDZlYWZkMDc5NTc5Li42ZDA2YzcwMTBjNTJiODFkNTMxNTFlMTg1MmQ0MTQ0MWI5MTI5
ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xs
ZXIuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9B
cHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIGV4dGVybiAiQyIgewogI2ltcG9y
dCAiV2ViS2l0UGx1Z2luSG9zdC5oIgpAQCAtMjMwLDEwICsyMzEsNyBAQCB2b2lkIE5ldHNjYXBl
UGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1fcGxhY2Vob2xkZXJX
aW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwogICAgIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBh
ZG9wdE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dN
YXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhb
W1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNN
YWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNz
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKIAogICAgIG1fYWN0
aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVBY3RpdmVOb3RpZmljYXRp
b24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nQmxvY2s6XihO
U05vdGlmaWNhdGlvbiAqKXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKTsgfV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlhZTdhMTc3ZTQ1MTJmNDU2
NDFkYWEyNDM3ZDRjOS4uYWEwZGY1NDI0YTQyNmZkM2FkNzgzNDM0NmNkN2IyYWQ0YzI5NTUzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtNjYsNiArNjYsNyBAQAogI2ltcG9y
dCA8dXRpbGl0eT4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3Rm
L1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRp
YmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIGV4
dGVybiAiQyIgewpAQCAtNDY1LDE1ICs0NjYsMTIgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHk6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludCBrZXlDb2QK
IHsKICAgICBOU0RhdGEgKmNoYXJhY3RlcnNEYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiZj
aGFyYWN0ZXIgbGVuZ3RoOjFdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CiAgICAgX1dLUEhQbHVnaW5JbnN0YW5jZUtleWJvYXJkRXZlbnQobV9wbHVnaW5Ib3N0UHJveHkt
PnBvcnQoKSwgbV9wbHVnaW5JRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0sIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtleURvd24sIE5TQ29tbWFuZEtl
eU1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBDb2NvYUV2ZW50
S2V5RG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3Ro
XSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFy
Kj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkp
LCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmFsc2UsIGtleUNvZGUsIGNoYXJhY3Rlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpmbGFnc0No
YW5nZWQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXgg
Mzc2NjcyYjY4NjczN2M3NzNlZGM2ZGY2ODRiMjg3OTgyOTY0ZjU0MS4uZGZjOGNjYTcyODI0OGE4
OTZhODEzZTZmNzkyNDJjMDk0MmIyNWM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5t
bQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQg
PHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC00NDMsMTAgKzQ0
NCw3IEBAIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0CiB7CiAgICAgaWYgKF9jYWNoZWRT
bmFwc2hvdCkgewogICAgICAgICBOU1JlY3Qgc291cmNlUmVjdCA9IHsgTlNaZXJvUG9pbnQsIFtf
Y2FjaGVkU25hcHNob3QuZ2V0KCkgc2l6ZV0gfTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0OltzZWxm
IGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VP
dmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
X2NhY2hlZFNuYXBzaG90LmdldCgpIGRyYXdJblJlY3Q6W3NlbGYgYm91bmRzXSBmcm9tUmVjdDpz
b3VyY2VSZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFj
dGlvbjoxXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJD
YXJib24ubW0KaW5kZXggZjJkN2U5ZjQxZjZlYmQ1YjljYjgzNWVkNjJkYzEzYTFmYWEyZDg3YS4u
ZjUwOWJkMDFmNWMzZjQwNDc3MmE0NDc5ZmE0MTJiNWEyNWRjNDAzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZl
bnRIYW5kbGVyQ2FyYm9uLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJOZXRzY2Fw
ZVBsdWdpblZpZXcuaCIKICNpbXBvcnQgIldlYktpdExvZ2dpbmcuaCIKICNpbXBvcnQgIldlYktp
dFN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAKIC8vIFNlbmQgbnVsbCBldmVudHMgNTAgdGltZXMgYSBzZWNvbmQg
d2hlbiBhY3RpdmUsIHNvIHBsdWctaW5zIGxpa2UgRmxhc2ggZ2V0IGhpZ2ggZnJhbWUgcmF0ZXMu
CiAjZGVmaW5lIE51bGxFdmVudEludGVydmFsQWN0aXZlICAgICAgICAgMC4wMgpAQCAtNjIsMjIg
KzYzLDIyIEBAIHN0YXRpYyBFdmVudE1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChOU0V2ZW50
ICpldmVudCkKICAgICAKICAgICBtb2RpZmllcnMgPSAwOwogICAgIAotICAgIGlmIChldmVudFR5
cGUgIT0gTlNMZWZ0TW91c2VEb3duICYmIGV2ZW50VHlwZSAhPSBOU1JpZ2h0TW91c2VEb3duKQor
ICAgIGlmIChldmVudFR5cGUgIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duICYmIGV2ZW50VHlw
ZSAhPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duKQogICAgICAgICBtb2RpZmllcnMgfD0gYnRu
U3RhdGU7CiAgICAgCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKQor
ICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpCiAgICAg
ICAgIG1vZGlmaWVycyB8PSBjbWRLZXk7CiAgICAgCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U1NoaWZ0S2V5TWFzaykKKyAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZs
YWdTaGlmdCkKICAgICAgICAgbW9kaWZpZXJzIHw9IHNoaWZ0S2V5OwogCi0gICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0FscGhhU2hpZnRLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYg
TlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrKQogICAgICAgICBtb2RpZmllcnMgfD0gYWxwaGFM
b2NrOwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAg
aWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBt
b2RpZmllcnMgfD0gb3B0aW9uS2V5OwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbnRy
b2xLZXlNYXNrIHx8IGV2ZW50VHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duKQorICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgfHwgZXZlbnRUeXBlID09IE5T
RXZlbnRUeXBlUmlnaHRNb3VzZURvd24pCiAgICAgICAgIG1vZGlmaWVycyB8PSBjb250cm9sS2V5
OwogICAgIAogICAgIHJldHVybiBtb2RpZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2Eu
bW0KaW5kZXggYTFkMTU5YWY5NGUxNDg5YTQ4YjA5OTIxMDhkMDNmMzk4MDVmMjk5Ni4uOWM1MjAx
ZmU2MmQyNjNiZDM1ZWI1ZTcxZDRhMzcwMWFhYTkxN2U3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJm
YWNlLmgiCiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZpZXcuaCIKICNpbXBvcnQgPHd0Zi9W
ZWN0b3IuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpXZWJOZXRzY2FwZVBs
dWdpbkV2ZW50SGFuZGxlckNvY29hKFdlYk5ldHNjYXBlUGx1Z2luVmlldyogcGx1Z2luVmlldykK
ICAgICA6IFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyKHBsdWdpblZpZXcpCkBAIC0xNjEs
MTAgKzE2Miw3IEBAIHZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6c3lu
dGhldGljS2V5RG93bldpdGhDb21tYW5kTW9kaWZpZXIoaW50CiAgICAgCiAgICAgTlBDb2NvYUV2
ZW50IGV2ZW50OwogICAgIGluaXRpYWxpemVFdmVudCgmZXZlbnQsIE5QQ29jb2FFdmVudEtleURv
d24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGV2ZW50LmRhdGEu
a2V5Lm1vZGlmaWVyRmxhZ3MgPSBOU0NvbW1hbmRLZXlNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIGV2ZW50LmRhdGEua2V5Lm1vZGlmaWVyRmxhZ3MgPSBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29tbWFuZDsKICAgICBldmVudC5kYXRhLmtleS5rZXlDb2RlID0ga2V5Q29kZTsK
ICAgICBldmVudC5kYXRhLmtleS5pc0FSZXBlYXQgPSBmYWxzZTsKICAgICBldmVudC5kYXRhLmtl
eS5jaGFyYWN0ZXJzID0gKE5QTlNTdHJpbmcgKiljaGFyYWN0ZXJzLmdldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCmluZGV4IGM0NjY3
MGI0ZDc5ZDhjZTg0ZmJkNDExNThmYjczMDgwYWU4MDQ3OWIuLjc5ZjI4ZmI4MmNiN2ZkOTM5Y2Qz
MzIzNGVjNDdlYzAzOTY2ZWU1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvUG9wdXBNZW51Q2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTkwLDE3ICs5MSwxMSBAQCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQog
ICAgICAgICB9CiAKICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0eWxlPiBw
YXJhZ3JhcGhTdHlsZSA9IGFkb3B0TlMoW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3Jh
cGhTdHlsZV0gbXV0YWJsZUNvcHldKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlv
biA9PSBMVFIgPyBOU0xlZnRUZXh0QWxpZ25tZW50IDogTlNSaWdodFRleHRBbGlnbm1lbnRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0
QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVGV4dEFsaWdubWVudExlZnQg
OiBOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0
aW5nRGlyZWN0aW9uID0gc3R5bGUudGV4dERpcmVjdGlvbigpID09IExUUiA/IE5TV3JpdGluZ0Rp
cmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAg
ICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbjp3cml0aW5nRGlyZWN0
aW9uXTsKICAgICAgICAgaWYgKHN0eWxlLmhhc1RleHREaXJlY3Rpb25PdmVycmlkZSgpKSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBSZXRhaW5QdHI8
TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxv
Y10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1RleHRXcml0aW5nRGlyZWN0
aW9uT3ZlcnJpZGVdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAg
IFJldGFpblB0cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05T
TnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TV3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlXSk7CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJheT4gd3Jp
dGluZ0RpcmVjdGlvbkFycmF5ID0gYWRvcHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2Jq
ZWN0czp3cml0aW5nRGlyZWN0aW9uVmFsdWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAgICAgW2F0
dHJpYnV0ZXMgc2V0T2JqZWN0OndyaXRpbmdEaXJlY3Rpb25BcnJheS5nZXQoKSBmb3JLZXk6TlNX
cml0aW5nRGlyZWN0aW9uQXR0cmlidXRlTmFtZV07CiAgICAgICAgIH0KQEAgLTIwNiwxOCArMjAx
LDE1IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmll
dyogdiwgaW50IGluZGV4KQogCiAgICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZTsKICAgICBz
d2l0Y2ggKG1fY2xpZW50LT5tZW51U3R5bGUoKS5tZW51U2l6ZSgpKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgY2FzZSBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU5vcm1hbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
KyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZVNtYWxsOgotICAgICAg
ICBjb250cm9sU2l6ZSA9IE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUg
PSBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9wdXBNZW51
U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TTWluaUNv
bnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVNaW5pOwogICAg
ICAgICBicmVhazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBX
S1BvcHVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocikpLCBkdW1teVZpZXcu
Z2V0KCksIGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJvbFNpemUsICFtX2NsaWVudC0+bWVu
dVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCmluZGV4IDkx
NGQ4ZTA2M2U4ZWIwZmNhOWVhZTlkN2JiYmM4MWY2MWI3Yjg4ZDYuLmEzOWI5M2U3N2UyNmE2NDMz
YjkyODg4ZjE5MzNhMDk5NTUxNWM2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCkBAIC02MCw2ICs2MCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9VUkwuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01Qcml2YXRlLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTI2OSwxMCArMjcwLDcgQEAgdm9pZCBXZWJDb250
ZXh0TWVudUNsaWVudDo6c2hvd0NvbnRleHRNZW51KCkKIAogICAgIE5TVmlldyogdmlldyA9IGZy
YW1lVmlldy0+ZG9jdW1lbnRWaWV3KCk7CiAgICAgSW50UG9pbnQgcG9pbnQgPSBmcmFtZVZpZXct
PmNvbnRlbnRzVG9XaW5kb3cocGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGl0VGVzdFJl
c3VsdCgpLnJvdW5kZWRQb2ludEluSW5uZXJOb2RlRnJhbWUoKSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2
ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93biBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdz
OjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0g
Y29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gbG9jYXRpb246cG9pbnQg
bW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbW3ZpZXcgd2luZG93XSB3
aW5kb3dOdW1iZXJdIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3Vy
ZToxXTsKIAogICAgIC8vIFNob3cgdGhlIGNvbnRleHR1YWwgbWVudSBmb3IgdGhpcyBldmVudC4K
ICAgICBib29sIGlzU2VydmljZXNNZW51OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAxMTQ3NmEwMzI3
NmVkZDk0ZTc1NTUxMzkzMGFiNDYxOWJjZWRmOTUzLi4wMjdlNTRiNzM3ZWFlYjA3OGExNmYwZWZk
NmVlOGRiZWM4M2YzNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTQ2LDYgKzE0Niw4IEBACiAj
aW1wb3J0ICJXZWJLaXRWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXZWJNYWlsRGVsZWdhdGUu
aCIKICNpbXBvcnQgIldlYlVJS2l0RGVsZWdhdGUuaCIKKyNlbHNlCisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbmRpZgogCiAjaWYgVVNFKFFV
SUNLX0xPT0spCkBAIC0xNTYxLDE3ICsxNTYzLDE0IEBAIE5TRGljdGlvbmFyeSAqV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmFjdGlvbkRpY3Rpb25hcnkoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0
CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBjb25zdCBVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlT
dGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0X2Nhc3Q8RXZlbnQqPihldmVu
dCkpOwogICAgIGlmIChrZXlTdGF0ZUV2ZW50ICYmIGtleVN0YXRlRXZlbnQtPmlzVHJ1c3RlZCgp
KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgIGlmIChrZXlT
dGF0ZUV2ZW50LT5jdHJsS2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29u
dHJvbEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdDb250cm9sOwogICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+YWx0S2V5KCkpCi0gICAg
ICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQWx0ZXJuYXRlS2V5TWFzazsKKyAgICAgICAgICAg
IG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICAgICAgaWYg
KGtleVN0YXRlRXZlbnQtPnNoaWZ0S2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9
IE5TU2hpZnRLZXlNYXNrOworICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnU2hpZnQ7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5tZXRhS2V5KCkpCi0g
ICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIH0KICNlbHNlCiAgICAgLy8gTm8gbW9kaWZpZXIgZmxh
Z3Mgb24gaU9TIHJpZ2h0IG5vdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDkwNzg3ZDYyMGIzODFlNTM4Yzdi
MWFkZGM3NmYyZDI5YzU5MzIyMDkuLjc2YjJjZDJjYmYxMGIyMGEzOTkzYzJmM2Y3YjcxOWNiZTdh
NTgxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTUzLDYgKzUzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
U29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01FeHRlbnNpb25zLmg+CiAj
aW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+
CiAKIFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJh
bWV3b3JrcywgQSkKQEAgLTE5MSwxMCArMTkyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudDo6YXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2YWlsYWJsZSkKIAogYm9v
bCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKCkKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1ttX2Zyb250ZW5kV2luZG93Q29udHJv
bGxlciB3aW5kb3ddIHN0eWxlTWFza10gJiBOU0Z1bGxTY3JlZW5XaW5kb3dNYXNrKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250cm9s
bGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TV2luZG93U3R5bGVNYXNrRnVsbFNjcmVlbikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIGNhbkF0dGFjaFdpbmRvdygpOwpAQCAt
NDY1LDEwICs0NjMsNyBAQCAtIChOU1dpbmRvdyAqKXdpbmRvdwogICAgIGlmICh3aW5kb3cpCiAg
ICAgICAgIHJldHVybiB3aW5kb3c7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBOU1VJbnRlZ2VyIHN0eWxlTWFzayA9IE5TVGl0bGVkV2luZG93TWFzayB8IE5TQ2xv
c2FibGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJs
ZVdpbmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNXaW5kb3dT
dHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHls
ZU1hc2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5k
b3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogICAgIHdpbmRvdyA9IFtbTlNXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBpbml0aWFsV2luZG93
V2lkdGgsIGluaXRpYWxXaW5kb3dIZWlnaHQpIHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpO
U0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbd2luZG93IHNldERlbGVnYXRl
OnNlbGZdOwogICAgIFt3aW5kb3cgc2V0TWluU2l6ZTpOU01ha2VTaXplKG1pbmltdW1XaW5kb3dX
aWR0aCwgbWluaW11bVdpbmRvd0hlaWdodCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQppbmRleCAwMmE3NTZmNzY3NzMxNWM2MjJk
ZDgxZDk5YTI5ZmFjM2ZiNWJmOWUyLi42NjdiMmM1YTU0NDdhYWU0NmE1ZTYwN2M1NzQxNDQwMjcy
YjQ2MjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9k
ZUhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9k
ZUhpZ2hsaWdodC5tbQpAQCAtMzksNiArMzksOCBAQAogI2ltcG9ydCAiV2ViVmlldy5oIgogI2lt
cG9ydCA8V2ViQ29yZS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dBS1dpbmRv
dy5oPgorI2Vsc2UKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtOTEsMTAgKzkz
LDcgQEAgLSAoaWQpaW5pdFdpdGhUYXJnZXRWaWV3OihOU1ZpZXcgKil0YXJnZXRWaWV3IGluc3Bl
Y3RvckNvbnRyb2xsZXI6KEluc3BlY3RvckNvbnQKICAgICBfaW5zcGVjdG9yQ29udHJvbGxlciA9
IGluc3BlY3RvckNvbnRyb2xsZXI7CiAKICNpZiAhUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGludCBzdHlsZU1hc2sgPSBOU0JvcmRlcmxlc3NX
aW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGludCBzdHlsZU1h
c2sgPSBOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3M7CiAgICAgTlNSZWN0IGNvbnRlbnRSZWN0
ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0OltzZWxmIF9jb21wdXRlSGlnaGxp
Z2h0V2luZG93RnJhbWVdIHN0eWxlTWFzazpzdHlsZU1hc2tdOwogICAgIF9oaWdobGlnaHRXaW5k
b3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0
eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5P
XTsKICAgICBbX2hpZ2hsaWdodFdpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgY2xl
YXJDb2xvcl1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZVZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRl
eCA1ZWMxOTc4NWRhNzI5N2IxYTI0NGM1NzYzMjA3MGM0YmRlOTQ2YjA1Li41Yjg2NzE1NDBlNmY4
YTEyMzFlY2UxZjU0OTQ0YjE1ODg5Mzc0YjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lVmlldy5tbQpAQCAtODMsNiArODMsNyBAQAogI2Vsc2UKICNpbXBvcnQgIldlYk5T
UGFzdGVib2FyZEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNXaW5kb3dFeHRyYXMuaCIKKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtOTE1LDkgKzkxNiw3IEBAIC0gKHZvaWQpa2V5
RG93bjooV2ViRXZlbnQgKilldmVudAogICAgIEJPT0wgY2FsbFN1cGVyID0gWUVTOwogICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKICAgICBCT09MIG1haW50YWluc0Jh
Y2tGb3J3YXJkTGlzdCA9IGNvcmVGcmFtZSAmJiBzdGF0aWNfY2FzdDxCYWNrRm9yd2FyZExpc3Qq
Pihjb3JlRnJhbWUtPnBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPmVuYWJsZWQoKSA/
IFlFUyA6IE5POwotICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCiAg
ICAgY291bnQgPSBbY2hhcmFjdGVycyBsZW5ndGhdOwogICAgIGZvciAoaW5kZXggPSAwOyBpbmRl
eCA8IGNvdW50OyArK2luZGV4KSB7CiAgICAgICAgIHN3aXRjaCAoW2NoYXJhY3RlcnMgY2hhcmFj
dGVyQXRJbmRleDppbmRleF0pIHsKQEAgLTkyOCw3ICs5MjcsNyBAQCAtICh2b2lkKWtleURvd246
KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8g
VGhpcyBvZGQgYmVoYXZpb3IgbWF0Y2hlcyBzb21lIGV4aXN0aW5nIGJyb3dzZXJzLAogICAgICAg
ICAgICAgICAgIC8vIGluY2x1ZGluZyBXaW5kb3dzIElFCi0gICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU1NoaWZ0S2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSB7CiAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIF9nb0ZvcndhcmRdOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgIFtzZWxmIF9nb0JhY2tdOwpAQCAtOTQzLDcgKzk0Miw3IEBAIC0gKHZvaWQp
a2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIg
PSBZRVM7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQp
IHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZVVwOm5pbF07CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZURv
d246bmlsXTsKQEAgLTk4NCw3ICs5ODMsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICop
ZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNVcEFycm93
RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQg
b3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgot
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlND
b250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChO
U0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC05OTgsOSArOTk3LDkgQEAgLSAodm9pZClr
ZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgW3Nl
bGYgc2Nyb2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
bikgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxMaW5l
VXA6bmlsXTsKQEAgLTEwMDksNyArMTAwOCw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25B
cnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlm
dGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5j
ZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8
IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTAyMyw5ICsxMDIyLDkgQEAgLSAo
dm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmll
ckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmll
ckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAg
ICAgW3NlbGYgc2Nyb2xsVG9FbmRPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
bikgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlRG93bjpuaWxdOwogICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbExp
bmVEb3duOm5pbF07CkBAIC0xMDM0LDEyICsxMDMzLDEyIEBAIC0gKHZvaWQpa2V5RG93bjooV2Vi
RXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBO
U0xlZnRBcnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRs
ZSBzaGlmdGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBh
IGNoYW5jZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5
TWFzayB8IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bnRyb2wpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8v
IENoZWNrIGJhY2svZm9yd2FyZCByZWxhdGVkIGtleXMuCi0gICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAg
ICAgICAgICBpZiAoIW1haW50YWluc0JhY2tGb3J3YXJkTGlzdCkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC0xMDUyLDcgKzEwNTEsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQK
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1h
c2spIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9k
aWZpZXJGbGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfcGFnZUhv
cml6b250YWxseTpZRVNdOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgX3Njcm9sbExpbmVIb3Jpem9udGFsbHk6WUVTXTsKQEAgLTEw
NjIsMTIgKzEwNjEsMTIgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1bmN0aW9u
S2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRy
b2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAg
ICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtl
eU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1v
ZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIENoZWNrIGJhY2svZm9yd2Fy
ZCByZWxhdGVkIGtleXMuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0Nv
bW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1haW50
YWluc0JhY2tGb3J3YXJkTGlzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVy
ID0gWUVTOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDgwLDcgKzEwNzks
NyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfcGFnZUhvcml6b250YWxseTpOT107CiAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2Vs
ZiBfc2Nyb2xsTGluZUhvcml6b250YWxseTpOT107CkBAIC0xMDkwLDcgKzEwODksNiBAQCAtICh2
b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBpZiAoY2Fs
bFN1cGVyKSB7CiAgICAgICAgIFtzdXBlciBrZXlEb3duOmV2ZW50XTsKICAgICB9IGVsc2Ugewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJv
bGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xs
ZXIubW0KaW5kZXggOWZkOTU2NjE3ZjA3YzZjZjZmNDg1N2NjOWUyMjE0MGIyMTg4YjJlNC4uZjU0
MzQxZmRiYjRlNGQzY2VkOWRlZDE2M2YxODQzMmIwNDZkOWIwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCkBAIC00Nyw2
ICs0Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYldpbmRvd0FuaW1hdGlvbi5oPgogI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTg2LDExICs4Nyw4IEBAIEBpbXBsZW1lbnRhdGlv
biBXZWJGdWxsU2NyZWVuQ29udHJvbGxlcgogI3ByYWdtYSBtYXJrIEluaXRpYWxpemF0aW9uCiAt
IChpZClpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgLy8g
RG8gbm90IGRlZmVyIHdpbmRvdyBjcmVhdGlvbiwgdG8gbWFrZSBzdXJlIC13aW5kb3dOdW1iZXIg
aXMgY3JlYXRlZCAobmVlZGVkIGJ5IFdlYldpbmRvd1NjYWxlQW5pbWF0aW9uKS4KLSAgICBOU1dp
bmRvdyAqd2luZG93ID0gW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU1plcm9SZWN0IHN0eWxlTWFzazpOU0Nsb3NhYmxlV2luZG93TWFzayBiYWNr
aW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2lu
ZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TV2lu
ZG93U3R5bGVNYXNrQ2xvc2FibGUgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVy
Ok5PXTsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dp
bmRvdyByZWxlYXNlXTsKICAgICBpZiAoIXNlbGYpCkBAIC00NjIsMTAgKzQ2MCw3IEBAIC0gKHZv
aWQpX3N3YXBWaWV3OihOU1ZpZXcqKXZpZXcgd2l0aDooTlNWaWV3KilvdGhlclZpZXcKIAogc3Rh
dGljIFJldGFpblB0cjxOU1dpbmRvdz4gY3JlYXRlQmFja2dyb3VuZEZ1bGxzY3JlZW5XaW5kb3co
TlNSZWN0IGZyYW1lKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IE5TV2luZG93ICp3aW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
OmZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6ZnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0T3BhcXVlOllF
U107CiAgICAgW3dpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgYmxhY2tDb2xvcl1d
OwogICAgIFt3aW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDU1ZjFhZTJkNDU4ZjU2MTM5NWZjMzI2YWFj
YmM2MGY0ZGIzMjEzYzQuLmEyMTU1ODQ1NDI2N2JkODgzZWQ5ODA1NTljMzU1N2JhNDM4Y2MwMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTQwLDEyICsx
NDAsMTMgQEAKICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiAhUExBVEZPUk0oSU9TKQor
I2ltcG9ydCAiV2ViTlNFdmVudEV4dHJhcy5oIgorI2ltcG9ydCAiV2ViTlNQYXN0ZWJvYXJkRXh0
cmFzLmgiCiAjaW1wb3J0IDxBcHBLaXQvTlNBY2Nlc3NpYmlsaXR5Lmg+CiAjaW1wb3J0IDxBcHBs
aWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
TlNNZW51U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+
Ci0jaW1wb3J0ICJXZWJOU0V2ZW50RXh0cmFzLmgiCi0jaW1wb3J0ICJXZWJOU1Bhc3RlYm9hcmRF
eHRyYXMuaCIKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogI2VuZGlmCiAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgpAQCAtMTM1
MSwxMiArMTM1Miw5IEBAIC0gKHZvaWQpX3Bhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZDoo
TlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZAogCiAtICh2b2lkKV9wb3N0RmFrZU1vdXNlTW92ZWRF
dmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50OihOU0V2ZW50ICopZmxhZ3NDaGFuZ2VkRXZlbnQKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9uOmZs
YWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0K
KyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3Vz
ZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KICAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFn
c0NoYW5nZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50
aW1lc3RhbXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgogICAg
ICAgICBjb250ZXh0Om51bGxwdHIgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6
MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW3NlbGYgbW91c2VNb3ZlZDpm
YWtlRXZlbnRdOwogfQogCkBAIC0xNTA2LDEwICsxNTA0LDcgQEAgLSAodm9pZClfc2V0TW91c2VE
b3duRXZlbnQ6KFdlYkV2ZW50ICopZXZlbnQKICNlbmRpZgogewogI2lmICFQTEFURk9STShJT1Mp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJUKCFldmVudCB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU1Jp
Z2h0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU090aGVyTW91c2VEb3duKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBU1NFUlQoIWV2ZW50IHx8IFtldmVudCB0eXBl
XSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURvd24pOwogI2Vsc2UKICAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gV2ViRXZl
bnRNb3VzZURvd24pOwogI2VuZGlmCkBAIC0xNjYxLDE2ICsxNjU2LDE3IEBAIC0gKGlkKV9icmlk
Z2UKIAogLSAodm9pZClfdXBkYXRlTW91c2VvdmVyV2l0aEZha2VFdmVudAogeworICAgIE5TRXZl
bnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1v
dXNlTW92ZWQKKyAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkCi0gICAgICAgIGxvY2F0aW9uOltbc2VsZiB3
aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAg
ICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJy
ZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJ
bnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3
aW5kb3ddIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogCiAgICAgW3NlbGYgX3VwZGF0ZU1vdXNlb3ZlcldpdGhFdmVudDpmYWtlRXZl
bnRdOwogfQpAQCAtMTg2OCwxMSArMTg2NCw4IEBAIC0gKEJPT0wpX2luc2lkZUFub3RoZXJIVE1M
VmlldwogI2lmICFQTEFURk9STShJT1MpCiBzdGF0aWMgQk9PTCBpc1F1aWNrTG9va0V2ZW50KE5T
RXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IGNvbnN0IGludCBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxlYXNl
ZCA9IDk7Ci0gICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU1N5c3RlbURlZmluZWQgJiYgW2V2
ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJl
bGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0gJ2xrdXAnOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZp
bmVkICYmIFtldmVudCBzdWJ0eXBlXSA9PSBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29t
YmluYXRpb25SZWxlYXNlZCAmJiBbZXZlbnQgZGF0YTFdID09ICdsa3VwJzsKIH0KICNlbmRpZgog
CkBAIC0xOTI4LDE0ICsxOTIxLDExIEBAIC0gKE5TVmlldyAqKWhpdFRlc3Q6KE5TUG9pbnQpcG9p
bnQKICAgICBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6IFdoeSBkb2Vzbid0IHRoaXMgaW5jbHVk
ZSBtb3VzZSBlbnRlcmVkL2V4aXRlZCBldmVudHMsIG9yIG90aGVyIG1vdXNlIGJ1dHRvbiBldmVu
dHM/CiAgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW1tzZWxmIHdpbmRvd10gY3VycmVudEV2ZW50
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FwdHVyZUhp
dHNPblN1YnZpZXdzID0gIShbZXZlbnQgdHlwZV0gPT0gTlNNb3VzZU1vdmVkCi0gICAgICAgICAg
ICB8fCBbZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1vdXNlRG93bgotICAgICAgICAgICAgfHwgKFtl
dmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TQ29udHJvbEtleU1hc2spICE9IDApCi0gICAgICAgICAgICB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNGbGFnc0NoYW5nZWQKKyAgICAgICAgY2FwdHVyZUhpdHNPblN1YnZpZXdzID0gIShbZXZlbnQg
dHlwZV0gPT0gTlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAgICAgICB8fCBbZXZlbnQgdHlw
ZV0gPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bgorICAgICAgICAgICAgfHwgKFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gJiYgW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpCisgICAgICAgICAgICB8fCBbZXZlbnQgdHlw
ZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQKICAgICAgICAgICAgIHx8IGlzUXVpY2tMb29r
RXZlbnQoZXZlbnQpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAg
ICBpZiAoIWNhcHR1cmVIaXRzT25TdWJ2aWV3cykgewpAQCAtMjAyMyw5ICsyMDEzLDcgQEAgLSAo
dm9pZClfcmVtb3ZlVHJhY2tpbmdSZWN0czooTlNUcmFja2luZ1JlY3RUYWcgKil0YWdzIGNvdW50
OihpbnQpY291bnQKIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFeGl0ZWQKIHsKICAgICAvLyBO
b3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0
YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtl
RXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFeGl0ZWQKKyAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlTW91c2VFeGl0ZWQKICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
ICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yMDM0LDE2
ICsyMDIyLDEzIEBAIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFeGl0ZWQKICAgICAgICAgZXZl
bnROdW1iZXI6MAogICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAg
ICAgICB1c2VyRGF0YTpfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0T3duZXIgbW91
c2VFeGl0ZWQ6ZmFrZUV2ZW50XTsKIH0KIAogLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUVudGVy
ZWQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBOb3RoaW5n
IG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5T
TW91c2VFbnRlcmVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZAogICAgICAgICBsb2NhdGlvbjpO
U01ha2VQb2ludCgwLCAwKQogICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0
YW1wOjAKQEAgLTIwNTMsNyArMjAzOCw2IEBAIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFbnRl
cmVkCiAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgIHVz
ZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1JlY3RVc2VyRGF0YV07CiAgICAgW19wcml2YXRlLT50
cmFja2luZ1JlY3RPd25lciBtb3VzZUVudGVyZWQ6ZmFrZUV2ZW50XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKIH0KICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCkBAIC0yMDg5LDIx
ICsyMDczLDE4IEBAIC0gKE5TU3RyaW5nICopdmlldzooTlNWaWV3ICopdmlldyBzdHJpbmdGb3JU
b29sVGlwOihOU1Rvb2xUaXBUYWcpdGFnIHBvaW50OihOU1BvCiBzdGF0aWMgYm9vbCBtb3VzZUV2
ZW50SXNQYXJ0T2ZDbGlja09yRHJhZyhOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtl
dmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VE
b3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2Fz
ZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9CiAKQEAgLTIxMzQsMTYg
KzIxMTUsMTQgQEAgLSAodm9pZClfdXBkYXRlTW91c2VvdmVyV2l0aEV2ZW50OihOU0V2ZW50ICop
ZXZlbnQKICAgICAgICAgZmxvYXQgeVNjcm9sbCA9IHZpc2libGVSZWN0Lm9yaWdpbi55OwogICAg
ICAgICBmbG9hdCB4U2Nyb2xsID0gdmlzaWJsZVJlY3Qub3JpZ2luLng7CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkCisgICAgICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAg
ICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoLTEgLSB4U2Nyb2xsLCAtMSAtIHlTY3JvbGwp
CiAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmll
ckZsYWdzXQogICAgICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VS
ZWZlcmVuY2VEYXRlXQogICAgICAgICAgICAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdp
bmRvd051bWJlcl0KICAgICAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICAgICAgZXZl
bnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisKICAgICAgICAgaWYgKEZyYW1lKiBsYXN0SGl0Q29yZUZyYW1lID0gY29yZShb
bGFzdEhpdFZpZXcgX2ZyYW1lXSkpCiAgICAgICAgICAgICBsYXN0SGl0Q29yZUZyYW1lLT5ldmVu
dEhhbmRsZXIoKS5tb3VzZU1vdmVkKGV2ZW50LCBbW3NlbGYgX3dlYlZpZXddIF9wcmVzc3VyZUV2
ZW50XSk7CiAgICAgfQpAQCAtMjMzMCwxNiArMjMwOSwxOCBAQCAtICh2b2lkKV9hdXRvc2Nyb2xs
CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkCisg
ICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TTGVmdE1vdXNlRHJhZ2dlZAotICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93
XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICBj
b252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2
ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2
YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93
XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICBldmVudE51
bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKwogICAgIFtzZWxmIG1vdXNlRHJhZ2dlZDpmYWtlRXZlbnRdOwogI2VuZGlmCiB9CkBA
IC0zMzU0LDEyICszMzM1LDkgQEAgLSAoQk9PTClhY2NlcHRzRmlyc3RSZXNwb25kZXIKICAgICAv
LyBvciBmcm9tIGNhbGxzIGJhY2sgZnJvbSBXZWJDb3JlIG9uY2Ugd2UgYmVnaW4gbW91c2UtZG93
biBldmVudCBoYW5kbGluZy4KICNpZiAhUExBVEZPUk0oSU9TKSAgICAgICAgICAgIAogICAgIE5T
RXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24K
KyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bgogICAgICAg
ICAgICAgJiYgIV9wcml2YXRlLT5oYW5kbGluZ01vdXNlRG93bkV2ZW50CiAgICAgICAgICAgICAm
JiBOU1BvaW50SW5SZWN0KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW3NlbGYgY29udmVydFJl
Y3Q6W3NlbGYgdmlzaWJsZVJlY3RdIHRvVmlldzpuaWxdKSkgewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgICAgICByZXR1cm4gTk87CiAgICAgfQogI2Vsc2UKQEAgLTM1MjgsMTMg
KzM1MDYsMTAgQEAgLSAodm9pZCl2aWV3RGlkTW92ZVRvV2luZG93CiAKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgICAgICBpZiAoIV9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIF9wcml2YXRl
LT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JF
dmVudHNNYXRjaGluZ01hc2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6XihOU0V2ZW50ICpm
bGFnc0NoYW5nZWRFdmVudCkgeworICAgICAgICAgICAgX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2
ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFz
azpOU0V2ZW50TWFza0ZsYWdzQ2hhbmdlZCBoYW5kbGVyOl4oTlNFdmVudCAqZmxhZ3NDaGFuZ2Vk
RXZlbnQpIHsKICAgICAgICAgICAgICAgICBbc2VsZiBfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRG
b3JGbGFnc0NoYW5nZWRFdmVudDpmbGFnc0NoYW5nZWRFdmVudF07CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZsYWdzQ2hhbmdlZEV2ZW50OwogICAgICAgICAgICAgfV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBbTlNFdmVu
dCByZW1vdmVNb25pdG9yOl9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3JdOwpAQCAt
NDU0MCwxMSArNDUxNSwxMiBAQCAtICh2b2lkKW1vdXNlRG93bjooV2ViRXZlbnQgKilldmVudAog
ICAgIE5TSW5wdXRNYW5hZ2VyICpjdXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5hZ2Vy
IGN1cnJlbnRJbnB1dE1hbmFnZXJdOwogCiAgICAgaWYgKCFbY3VycmVudElucHV0TWFuYWdlciB3
YW50c1RvSGFuZGxlTW91c2VFdmVudHNdIHx8ICFbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVN
b3VzZUV2ZW50OmV2ZW50XSkgeworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAg
ICBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVyIGVuZFJldmVydGluZ0NoYW5nZTpOTyBt
b3ZlTGVmdDpOT107CiAKICAgICAgICAgLy8gSWYgdGhlIHdlYiBwYWdlIGhhbmRsZXMgdGhlIGNv
bnRleHQgbWVudSBldmVudCBhbmQgbWVudUZvckV2ZW50OiByZXR1cm5zIG5pbCwgd2UnbGwgZ2V0
IGNvbnRyb2wgY2xpY2sgZXZlbnRzIGhlcmUuCiAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8g
cGFzcyB0aGVtIGFsb25nIHRvIEtIVE1MIGEgc2Vjb25kIHRpbWUuCi0gICAgICAgIGlmICghKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgIGlmICgh
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewog
ICAgICAgICAgICAgX3ByaXZhdGUtPmlnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzID0gTk87CiAK
ICAgICAgICAgICAgIC8vIExldCBXZWJDb3JlIGdldCBhIGNoYW5jZSB0byBkZWFsIHdpdGggdGhl
IGV2ZW50LiBUaGlzIHdpbGwgY2FsbCBiYWNrIHRvIHVzCkBAIC00NTUzLDcgKzQ1MjksNiBAQCAt
ICh2b2lkKW1vdXNlRG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGNvcmVm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkubW91c2VEb3duKGV2ZW50LCBbW3NlbGYgX3dlYlZpZXddIF9w
cmVzc3VyZUV2ZW50XSk7CiAgICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAjZW5kaWYKIAogICAgIF9wcml2YXRlLT5oYW5kbGluZ01vdXNlRG93bkV2ZW50ID0g
Tk87CkBAIC00NjQyLDcgKzQ2MTcsNyBAQCAtICh2b2lkKWRyYWdnZWRJbWFnZTooTlNJbWFnZSAq
KWFuSW1hZ2UgZW5kZWRBdDooTlNQb2ludClhUG9pbnQgb3BlcmF0aW9uOihOU0RyYQogICAgIAog
ICAgIC8vIE9uY2UgdGhlIGRyYWdnaW5nIG1hY2hpbmVyeSBraWNrcyBpbiwgd2Ugbm8gbG9uZ2Vy
IGdldCBtb3VzZSBkcmFncyBvciB0aGUgdXAgZXZlbnQuCiAgICAgLy8gV2ViQ29yZSBleHBlY3Rz
IHRvIGdldCBiYWxhbmNlZCBkb3duL3VwJ3MsIHNvIHdlIG11c3QgZmFrZSB1cCBhIG1vdXNldXAu
Ci0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
TGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjp3aW5kb3dNb3VzZUxvYwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRF
dmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVd
CkBAIC00ODE4LDE5ICs0NzkzLDEyIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+
IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5RG93bjogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZv
cm1LZXlib2FyZEV2ZW50IHBsYXRmb3JtRXZlbnQgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3Jl
YXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KGV2ZW50KTsKICAgICAgICAgcGxhdGZvcm1FdmVudC5k
aXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bik7CiAgICAg
ICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGxhdGZvcm1FdmVudCwgY29yZUZyYW1l
LT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0tleVVwOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKICAgICAgICAgcmV0dXJuIEtleWJv
YXJkRXZlbnQ6OmNyZWF0ZShQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXli
b2FyZEV2ZW50KGV2ZW50KSwgY29yZUZyYW1lLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTU1MjQsMTEgKzU0OTIsOCBAQCAt
IChCT09MKV9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogICAgIGlm
ICghW3NlbGYgX2NhbkVkaXRdKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2spICE9IE5TQ29tbWFuZEtleU1h
c2spCisgICAgaWYgKChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFn
RGV2aWNlSW5kZXBlbmRlbnRGbGFnc01hc2spICE9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5k
KQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAg
ICBOU1N0cmluZyAqc3RyaW5nID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgIGlmIChbc3RyaW5n
IGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJiIl0gPT0gTlNPcmRlcmVkU2FtZSkgewpAQCAtNjQ0
OCwxNCArNjQxMywxMSBAQCAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooS2V5Ym9hcmRFdmVu
dCopZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbQogICAgICAgICByZXR1cm4g
Tk87CiAKICAgICBOU0V2ZW50ICptYWNFdmVudCA9IHBsYXRmb3JtRXZlbnQtPm1hY0V2ZW50KCk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFttYWNFdmVudCB0
eXBlXSA9PSBOU0tleURvd24gJiYgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBmaWx0
ZXJLZXlEb3duOm1hY0V2ZW50XSkKKyAgICBpZiAoW21hY0V2ZW50IHR5cGVdID09IE5TRXZlbnRU
eXBlS2V5RG93biAmJiBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVyIGZpbHRlcktleURv
d246bWFjRXZlbnRdKQogICAgICAgICByZXR1cm4gWUVTOwogICAgIAotICAgIGlmIChbbWFjRXZl
bnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCisgICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBO
U0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIAogICAgIHBhcmFtZXRlcnMuZXZlbnQgPSBldmVudDsKICAg
ICBfcHJpdmF0ZS0+aW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyA9ICZwYXJhbWV0ZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDc4ZjU2ZTQ5MWUwODZh
YWU5ODNiMzgwNjk5YTU1MTU3Y2Q5OGZkYmEuLjk2MGM2Mzc5ZDFhY2U2MDA3YmUxMjA1MmFlMjg0
NzQ3MzU0N2Q4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERG
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAg
LTY1LDYgKzY1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0
cmFzLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRU
aW1lLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxBcHBsaWNhdGlvblNl
cnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXNQcml2Lmg+CkBAIC0zMjEsMTAgKzMyMiw3IEBAIC0g
KE5TVmlldyAqKWhpdFRlc3Q6KE5TUG9pbnQpcG9pbnQKICAgICAvLyBPdmVycmlkZSBoaXRUZXN0
IHNvIHdlIGNhbiBvdmVycmlkZSBtZW51Rm9yRXZlbnQuCiAgICAgTlNFdmVudCAqZXZlbnQgPSBb
TlNBcHAgY3VycmVudEV2ZW50XTsKICAgICBOU0V2ZW50VHlwZSB0eXBlID0gW2V2ZW50IHR5cGVd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICh0eXBlID09IE5T
UmlnaHRNb3VzZURvd24gfHwgKHR5cGUgPT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgaWYgKHR5cGUgPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8fCAodHlw
ZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkpCiAgICAgICAgIHJldHVybiBzZWxmOwogCiAg
ICAgcmV0dXJuIFtzdXBlciBoaXRUZXN0OnBvaW50XTsKQEAgLTEwMDksMzkgKzEwMDcsMzMgQEAg
LSAodm9pZClQREZWaWV3V2lsbENsaWNrT25MaW5rOihQREZWaWV3ICopc2VuZGVyIHdpdGhVUkw6
KE5TVVJMICopVVJMCiAgICAgaW50IGJ1dHRvbiA9IG5vQnV0dG9uOwogICAgIFJlZlB0cjxFdmVu
dD4gZXZlbnQ7CiAgICAgc3dpdGNoIChbbnNFdmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAg
ICAgICBidXR0b24gPSAwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSAxOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSBbbnNFdmVu
dCBidXR0b25OdW1iZXJdOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNLZXlE
b3duOiB7Ci0gICAgICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGUgPSBQbGF0Zm9ybUV2
ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KG5zRXZlbnQpOwotICAgICAg
ICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURv
d24pOwotICAgICAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVu
dFR5cGVMZWZ0TW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICAgICAg
YnV0dG9uID0gW25zRXZlbnQgYnV0dG9uTnVtYmVyXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUtleURvd246IHsKKyAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBl
ID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2
ZW50KTsKKyAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6
OlJhd0tleURvd24pOworICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwg
MCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgaWYgKGJ1dHRvbiAhPSBub0J1dHRvbikgewogICAgICAgICBldmVudCA9IE1v
dXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3Vy
cmVudFRpbWUoKSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCiAjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNDb250cm9sS2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU1NoaWZ0S2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNDb21tYW5kS2V5TWFzaywKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bnRyb2wsCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24sCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICBidXR0b24sIDAs
IFdlYkNvcmU6OkZvcmNlQXRDbGljaywgMCwgMCwgdHJ1ZSk7CiAgICAgfQogCkBAIC0xMTQ5LDkg
KzExNDEsNyBAQCAtIChOU0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhGdW5jdGlvbktleToodW5p
Y2hhcilmdW5jdGlvbktleQogICAgIC8vIEZJWE1FIDQ0MDA0ODA6IHdoZW4gUERGVmlldyBpbXBs
ZW1lbnRzIHRoZSBzdGFuZGFyZCBzY3JvbGxpbmcgc2VsZWN0b3JzIHRoYXQgdGhpcwogICAgIC8v
IG1ldGhvZCBpcyB1c2VkIHRvIG1pbWljLCB3ZSBjYW4gZWxpbWluYXRlIHRoaXMgbWV0aG9kIGFu
ZCBjYWxsIHRoZW0gZGlyZWN0bHkuCiAgICAgTlNTdHJpbmcgKmtleUFzU3RyaW5nID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZmdW5jdGlvbktleSBsZW5ndGg6MV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIFtOU0V2ZW50IGtleUV2ZW50
V2l0aFR5cGU6TlNLZXlEb3duCisgICAgcmV0dXJuIFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246
TlNaZXJvUG9pbnQKICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMTE2MSw3ICsxMTUxLDYgQEAg
LSAoTlNFdmVudCAqKV9mYWtlS2V5RXZlbnRXaXRoRnVuY3Rpb25LZXk6KHVuaWNoYXIpZnVuY3Rp
b25LZXkKICAgICAgICAgIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczprZXlBc1N0cmluZwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBUmVwZWF0Ok5PCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGtleUNvZGU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9
CiAKIC0gKHZvaWQpX2xvb2tVcEluRGljdGlvbmFyeUZyb21NZW51OihpZClzZW5kZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9s
bGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRy
b2xsZXIubW0KaW5kZXggNDM4MmIwNDQ3NGU2MGM4YzIzNzMzMDQ3YjgxMzk2NGE0Zjc4NDI2My4u
N2I5ZTVkYmNmNDhjMjE2YjZjNTY2MzEwYzE3NGU0MzEyYzU2MjhlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIu
bW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBv
cnQgIldlYlZpZXcuaCIKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIE5TV2lu
ZG93IChXZWJOU1dpbmRvd0RldGFpbHMpCiAtICh2b2lkKV9zZXRGb3JjZUFjdGl2ZUNvbnRyb2xz
OihCT09MKWZsYWc7CkBAIC0xMTIsMTAgKzExMyw3IEBAIC0gKHZvaWQpX2J1aWxkVUkKICAgICBb
c2Nyb2xsVmlldyBzZXREb2N1bWVudFZpZXc6X3RhYmxlVmlld107CiAgICAgW190YWJsZVZpZXcg
cmVsZWFzZV07CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
X3BvcHVwV2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpzY3Jv
bGxGcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIF9wb3B1cFdpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
c2Nyb2xsRnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFtfcG9wdXBXaW5kb3cgc2V0
QWxwaGFWYWx1ZTowLjg4Zl07CiAgICAgW19wb3B1cFdpbmRvdyBzZXRDb250ZW50VmlldzpzY3Jv
bGxWaWV3XTsKICAgICBbc2Nyb2xsVmlldyByZWxlYXNlXTsKQEAgLTE1NSw4ICsxNTMsOCBAQCAt
ICh2b2lkKV9wbGFjZVBvcHVwV2luZG93OihOU1BvaW50KXRvcExlZnQKICNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNTY3JvbGxW
aWV3IGZyYW1lU2l6ZUZvckNvbnRlbnRTaXplOk5TTWFrZVNpemUobWF4V2lkdGgsIDEwMC4wZikg
aGFzSG9yaXpvbnRhbFNjcm9sbGVyOk5PIGhhc1ZlcnRpY2FsU2Nyb2xsZXI6WUVTIGJvcmRlclR5
cGU6TlNOb0JvcmRlcl0ud2lkdGgpOwotICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1dpbmRv
dyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAuMGYsIG1heFdpZHRo
LCAxMDAuMGYpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXS5zaXplLndpZHRoKTsK
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbWF4V2lkdGggPSBjZWlsZihb
TlNXaW5kb3cgZnJhbWVSZWN0Rm9yQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLjBmLCAwLjBmLCBt
YXhXaWR0aCwgMTAwLjBmKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzXS5z
aXplLndpZHRoKTsKICAgICAgICAgbWF4V2lkdGggKz0gNS4wZjsKICAgICAgICAgd2luZG93RnJh
bWUuc2l6ZS53aWR0aCA9IHN0ZDo6bWF4KG1heFdpZHRoLCB3aW5kb3dGcmFtZS5zaXplLndpZHRo
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggN2NmYWE4N2I1
NTZlYjQ3NmJmM2M1ZmVkNWUwM2U2OGZiYTJkZTRiZi4uNzg3ZTcxNmE2YjRiY2EzNGQ3NDdlMDI1
MmQ2MzI2MGU1NjkxNzljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAt
MjMwLDYgKzIzMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbHNlCiAjaW1wb3J0ICJNZW1vcnlNZWFzdXJlLmgi
CiAjaW1wb3J0ICJXZWJDYXJldENoYW5nZUxpc3RlbmVyLmgiCkBAIC02MDk1LDEwICs2MDk2LDcg
QEAgLSAoRHJhZ0FwcGxpY2F0aW9uRmxhZ3MpYXBwbGljYXRpb25GbGFnczooaWQgPE5TRHJhZ2dp
bmdJbmZvPilkcmFnZ2luZ0luZm8KICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSGFz
QXR0YWNoZWRTaGVldDsKICAgICBpZiAoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZV0gPT0g
c2VsZikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbTlNBcHAgY3VycmVudEV2ZW50
XSBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxp
Y2F0aW9uSXNDb3B5S2V5RG93bjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RHJhZ0FwcGxpY2F0
aW9uRmxhZ3M+KGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQ2hpbGRQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFBy
b2Nlc3NNYWMubW0KaW5kZXggMmU2NTgwNmRiNWQ2OGYwYTRhMjgyZDM4M2I5NmU3YjQ1MTZiOTA0
MC4uYjBjNTU0ZDRkYTYyM2Q5OWIwMTQzNTg2N2IyMDc3MjViODY3NDUzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbXBvcnQgPHB3ZC5oPgogI2ltcG9ydCA8c3RkbGliLmg+CiAjaW1wb3J0IDxzeXNleGl0cy5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAj
aW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQpAQCAtMTk3LDEwICsxOTgsNyBAQCB2b2lkIENoaWxkUHJvY2Vzczo6c3RvcE5T
QXBwUnVuTG9vcCgpCiAgICAgQVNTRVJUKFtOU0FwcCBpc1J1bm5pbmddKTsKICAgICBbTlNBcHAg
c3RvcDpuaWxdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNF
dmVudCAqZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBsaWNhdGlvbkRl
ZmluZWQgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFt
cDowLjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTowIGRhdGExOjAgZGF0YTI6
MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAqZXZlbnQgPSBb
TlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVBcHBsaWNhdGlvbkRlZmluZWQg
bG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowLjAg
d2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTowIGRhdGExOjAgZGF0YTI6MF07CiAg
ICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRydWVdOwogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IGE4NWVmY2Fl
ZTlhNTJkOGMwNDU2NjZkOTRjNDkxODcwY2E2OGE3ZDMuLjlmNTNmNjhjZDMxODIzYmQxNDRmMzE0
ZWE2MDhhODU3YTg1ZWU4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGJh
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oPgogI2ltcG9ydCA8
d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURl
Y2xhcmF0aW9ucy5oPgogCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjMsNzggKzY0
LDY5IEBAIHN0YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0b24gY3VycmVudE1vdXNlQnV0dG9uKCkK
IAogc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5TRXZl
bnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3
aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1v
dXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOwotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJh
Z2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVCdXR0b247Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
UmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3Vz
ZUV2ZW50OjpSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246
CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
T3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVC
dXR0b247CiAjaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVBy
ZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotICAgICAgICBj
YXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAg
ICAgICByZXR1cm4gY3VycmVudE1vdXNlQnV0dG9uKCk7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgY2FzZSBOU0V2ZW50
VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAg
ICAgIHJldHVybiBjdXJyZW50TW91c2VCdXR0b24oKTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogfQogCiBzdGF0aWMgV2ViRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVGb3JF
dmVudChOU0V2ZW50KiBldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01v
dXNlRXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090
aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBO
U090aGVyTW91c2VEb3duOgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBXZWJF
dmVudDo6TW91c2VVcDsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBXZWJF
dmVudDo6TW91c2VNb3ZlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOworICAgIGNhc2Ug
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgICAgIHJldHVy
biBXZWJFdmVudDo6TW91c2VEb3duOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlVXA6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VVcDsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKICAgICB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tDb3VudEZvckV2ZW50
KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3du
OgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VE
cmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNS
aWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAg
Y2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gW2V2ZW50
IGNsaWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJl
dHVybiBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgTlNQb2lu
dCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQpAQCAtMTQzLDIyICsxMzUsMTkg
QEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKICNp
ZiBkZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRp
ZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNMZWZ0TW91
c2VEb3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNMZWZ0TW91
c2VVcDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoK
LSAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAg
Y2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAg
Y2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAg
ICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2UgTlNTY3JvbGxXaGVlbDoKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2Vk
OgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6CiAgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpnbG9iYWxQb2ludChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10sIFtldmVudCB3aW5kb3ddKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gTlNaZXJvUG9pbnQ7CkBAIC0xNzEsMjIgKzE2
MCwxOSBAQCBzdGF0aWMgTlNQb2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1Zp
ZXcgKndpbmRvd1ZpZXcpCiAjaWYgZGVmaW5lZChfX0xQNjRfXykKICAgICBjYXNlIE5TRXZlbnRU
eXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoK
LSAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICBj
YXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU090
aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5T
T3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICBjYXNlIE5TUmln
aHRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICBjYXNlIE5TU2Ny
b2xsV2hlZWw6IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93
bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6IHsK
ICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9t
IGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgogICAgICAg
ICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lk
Z2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCiAgICAgICAgIE5TUG9pbnQgbG9jYXRp
b24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CkBAIC0yNDAsMTAgKzIyNiw3IEBAIHN0YXRp
YyBpbmxpbmUgU3RyaW5nIHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFj
ZXNTb2Z0U3BhY2UpCiB7CiAgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQogICAgICAgICByZXR1
cm4gZW1wdHlTdHJpbmcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5n
ZWQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmcoW2V2
ZW50IGNoYXJhY3RlcnNdKTsKIH0KQEAgLTI1MiwxMCArMjM1LDcgQEAgc3RhdGljIGlubGluZSBT
dHJpbmcgdW5tb2RpZmllZFRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFj
ZXNTb2Z0U3AKIHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAgIHJldHVybiBl
bXB0eVN0cmluZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
IChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkK
ICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmluZyhbZXZlbnQg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSk7CiB9CkBAIC0yNjQsNzQgKzI0NCw2OCBAQCBz
dGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNr
IHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAg
c3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAg
ICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgc3dpdGNo
IChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA3MTogLy8gQ2xlYXIKLSAgICAgICAg
Y2FzZSA4MTogLy8gPQotICAgICAgICBjYXNlIDc1OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6IC8v
ICoKLSAgICAgICAgY2FzZSA3ODogLy8gLQotICAgICAgICBjYXNlIDY5OiAvLyArCi0gICAgICAg
IGNhc2UgNzY6IC8vIEVudGVyCi0gICAgICAgIGNhc2UgNjU6IC8vIC4KLSAgICAgICAgY2FzZSA4
MjogLy8gMAotICAgICAgICBjYXNlIDgzOiAvLyAxCi0gICAgICAgIGNhc2UgODQ6IC8vIDIKLSAg
ICAgICAgY2FzZSA4NTogLy8gMwotICAgICAgICBjYXNlIDg2OiAvLyA0Ci0gICAgICAgIGNhc2Ug
ODc6IC8vIDUKLSAgICAgICAgY2FzZSA4ODogLy8gNgotICAgICAgICBjYXNlIDg5OiAvLyA3Ci0g
ICAgICAgIGNhc2UgOTE6IC8vIDgKLSAgICAgICAgY2FzZSA5MjogLy8gOQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgIH0KKyAgICBjYXNlIDcxOiAvLyBDbGVhcgorICAgIGNhc2UgODE6
IC8vID0KKyAgICBjYXNlIDc1OiAvLyAvCisgICAgY2FzZSA2NzogLy8gKgorICAgIGNhc2UgNzg6
IC8vIC0KKyAgICBjYXNlIDY5OiAvLyArCisgICAgY2FzZSA3NjogLy8gRW50ZXIKKyAgICBjYXNl
IDY1OiAvLyAuCisgICAgY2FzZSA4MjogLy8gMAorICAgIGNhc2UgODM6IC8vIDEKKyAgICBjYXNl
IDg0OiAvLyAyCisgICAgY2FzZSA4NTogLy8gMworICAgIGNhc2UgODY6IC8vIDQKKyAgICBjYXNl
IDg3OiAvLyA1CisgICAgY2FzZSA4ODogLy8gNgorICAgIGNhc2UgODk6IC8vIDcKKyAgICBjYXNl
IDkxOiAvLyA4CisgICAgY2FzZSA5MjogLy8gOQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tl
eVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkKLSAgICAgICAg
cmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0tleVVwOworICAgIGlmIChbZXZlbnQgdHlwZV0gIT0g
TlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCisgICAgICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0g
TlNFdmVudFR5cGVLZXlVcDsKICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBmYWlscyBpZiB0aGUg
dXNlciBwcmVzc2VzIGJvdGggU2hpZnQga2V5cyBhdCBvbmNlLCBmb3IgZXhhbXBsZToKICAgICAv
LyB3ZSB0cmVhdCByZWxlYXNpbmcgb25lIG9mIHRoZW0gYXMga2V5RG93bi4KICAgICBzd2l0Y2gg
KFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCi0g
ICAgICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgcmV0dXJuIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAg
Ci0gICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICByZXR1cm4gKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAotICAgICAgICBjYXNlIDYwOiAvLyBS
aWdodCBTaGlmdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBO
U1NoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAotICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgIHJldHVy
biAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSA9PSAwOwotICAg
ICAgICAgICAgCi0gICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAgICBjYXNlIDYy
OiAvLyBSaWdodCBDdHJsCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TQ29udHJvbEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA2
MzogLy8gRnVuY3Rpb24KLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNGdW5jdGlvbktleU1hc2spID09IDA7CisgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFu
ZAorICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAorICAgICAgICByZXR1cm4gIShbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCk7CisKKyAgICBjYXNl
IDU3OiAvLyBDYXBzbG9jaworICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spOworCisgICAgY2FzZSA1NjogLy8gTGVmdCBT
aGlmdAorICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0CisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCk7CisKKyAgICBjYXNl
IDU4OiAvLyBMZWZ0IEFsdAorICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAorICAgICAgICByZXR1
cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKTsK
KworICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwK
KyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbnRyb2wpOworCisgICAgY2FzZSA2MzogLy8gRnVuY3Rpb24KKyAgICAgICAgcmV0dXJu
ICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uKTsK
ICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCkBAIC0zMzksNyArMzEzLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZpZXJz
IG1vZGlmaWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHVuc2lnbmVkIG1vZGlm
aWVycyA9IDA7CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIw
MAogICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fw
c0xvY2spCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fwc0xvY2tLZXk7CiAgICAg
aWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkKQEAg
LTM1MCwxOCArMzIzLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlm
aWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZl
bnQ6OkFsdEtleTsKICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtleTsK
LSNlbHNlCi0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1h
c2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fwc0xvY2tLZXk7Ci0gICAgaWYg
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKQotICAgICAgICBtb2RpZmll
cnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OwotICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0NvbnRyb2xLZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRy
b2xLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFz
aykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpBbHRLZXk7Ci0gICAgaWYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8
PSBXZWJFdmVudDo6TWV0YUtleTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIChXZWJFdmVudDo6TW9k
aWZpZXJzKW1vZGlmaWVyczsKIH0KQEAgLTQ4NCwxMCArNDQ1LDcgQEAgV2ViS2V5Ym9hcmRFdmVu
dCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQs
IGJvb2wgaGEKICAgICBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlICAgICAgID0gd2luZG93c0tl
eUNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlICAg
ICAgICA9IFtldmVudCBrZXlDb2RlXTsKICAgICBpbnQgbWFjQ2hhckNvZGUgICAgICAgICAgICAg
ICAgID0gV0tHZXROU0V2ZW50S2V5Q2hhcihldmVudCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgYm9vbCBhdXRvUmVwZWF0ICAgICAgICAgICAgICAgICA9IChbZXZl
bnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpICYmIFtldmVudCBpc0FSZXBlYXRdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGJvb2wgYXV0b1JlcGVhdCAgICAgICAgICAgICAg
ICAgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgJiYgW2V2ZW50IGlz
QVJlcGVhdF07CiAgICAgYm9vbCBpc0tleXBhZCAgICAgICAgICAgICAgICAgICA9IGlzS2V5cGFk
RXZlbnQoZXZlbnQpOwogICAgIGJvb2wgaXNTeXN0ZW1LZXkgICAgICAgICAgICAgICAgPSBmYWxz
ZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogICAgIFdlYkV2ZW50
OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uLm1tCmluZGV4IGJhMTk5NmIyMTc0ZTIzZTQ3Nzg0NjM3ZWQ3MjEwN2M3NTFiMGMzY2Uu
LmU1YTU4MWU3ODUzZDE1ZjFiMWQ2YjExOWYzNTY5ODVhYzEyOWEzMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9u
Lm1tCkBAIC0zMyw2ICszMywxMCBAQAogI2ltcG9ydCAiX1dLVXNlckluaXRpYXRlZEFjdGlvbklu
dGVybmFsLmgiCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKKyNpZiBQTEFURk9STShNQUMp
CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNl
bmRpZgorCiBAaW1wbGVtZW50YXRpb24gV0tOYXZpZ2F0aW9uQWN0aW9uCiAKIHN0YXRpYyBXS05h
dmlnYXRpb25UeXBlIHRvV0tOYXZpZ2F0aW9uVHlwZShXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSBu
YXZpZ2F0aW9uVHlwZSkKQEAgLTc5LDcgKzgzLDYgQEAgc3RhdGljIE5TRXZlbnRNb2RpZmllckZs
YWdzIHRvTlNFdmVudE1vZGlmaWVyRmxhZ3MoV2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXJzIG0K
IHsKICAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBtb2RpZmllckZsYWdzID0gMDsKIAotI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCiAgICAgaWYgKG1vZGlmaWVy
cyAmIFdlYktpdDo6V2ViRXZlbnQ6OkNhcHNMb2NrS2V5KQogICAgICAgICBtb2RpZmllckZsYWdz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKICAgICBpZiAobW9kaWZpZXJzICYgV2Vi
S2l0OjpXZWJFdmVudDo6U2hpZnRLZXkpCkBAIC05MCwxOCArOTMsNiBAQCBzdGF0aWMgTlNFdmVu
dE1vZGlmaWVyRmxhZ3MgdG9OU0V2ZW50TW9kaWZpZXJGbGFncyhXZWJLaXQ6OldlYkV2ZW50OjpN
b2RpZmllcnMgbQogICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdP
cHRpb247CiAgICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6Ok1ldGFLZXkpCiAg
ICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7Ci0jZWxz
ZQotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpDYXBzTG9ja0tleSkKLSAg
ICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0FscGhhU2hpZnRLZXlNYXNrOwotICAgIGlmIChtb2Rp
ZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpTaGlmdEtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFn
cyB8PSBOU1NoaWZ0S2V5TWFzazsKLSAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVu
dDo6Q29udHJvbEtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0NvbnRyb2xLZXlNYXNr
OwotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpBbHRLZXkpCi0gICAgICAg
IG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOwotICAgIGlmIChtb2RpZmllcnMg
JiBXZWJLaXQ6OldlYkV2ZW50OjpNZXRhS2V5KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
Q29tbWFuZEtleU1hc2s7Ci0jZW5kaWYKIAogICAgIHJldHVybiBtb2RpZmllckZsYWdzOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDMy
ZTYzOWM0ZDkxOWFkMTZlOWE5NDgyYjkzNWNlZjA0NjM3NzFmYmEuLjc2M2Q5MDYwNTc1OTkzZDhj
YjA3M2M2YWE0ZTA5NWMwZGJiNGE4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTkzLDYgKzkzLDcgQEAKICNpbXBvcnQgPFdlYktpdFN5
c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0
QWRkaXRpb25zL1dlYlZpZXdJbXBsSW5jbHVkZXMuaD4KQEAgLTYyMCwxMSArNjIxLDggQEAgYm9v
bCBXZWJWaWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIoKQogICAgIGlmIChkaXJlY3Rpb24g
IT0gTlNEaXJlY3RTZWxlY3Rpb24pIHsKICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAg
Y3VycmVudEV2ZW50XTsKICAgICAgICAgTlNFdmVudCAqa2V5Ym9hcmRFdmVudCA9IG5pbDsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgaWYgKFtldmVudCB0eXBl
XSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApCisgICAgICAgIGlmIChb
ZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2
ZW50VHlwZUtleVVwKQogICAgICAgICAgICAga2V5Ym9hcmRFdmVudCA9IGV2ZW50OwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtX3BhZ2UtPnNldEluaXRpYWxGb2N1cyhk
aXJlY3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2ZW50ICE9IG5pbCwgTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwgZmFsc2UsIHsgfSksIFtdKFdl
YktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7
CkBAIC04NDgsMTAgKzg0Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNl
dHNJZkF1dG9tYXRpYygpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5TV2luZG93ICp3aW5kb3cg
PSBtX3ZpZXcud2luZG93OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IGlmICgod2luZG93LnN0eWxlTWFzayAmIE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2sp
ICYmICF3aW5kb3cudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9z
aW5nU2Nyb2xsVmlld10pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAo
KHdpbmRvdy5zdHlsZU1hc2sgJiBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXcp
ICYmICF3aW5kb3cudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9z
aW5nU2Nyb2xsVmlld10pIHsKICAgICAgICAgTlNSZWN0IGNvbnRlbnRMYXlvdXRSZWN0ID0gW21f
dmlldyBjb252ZXJ0UmVjdDp3aW5kb3cuY29udGVudExheW91dFJlY3QgZnJvbVZpZXc6bmlsXTsK
ICAgICAgICAgQ0dGbG9hdCBuZXdUb3BDb250ZW50SW5zZXQgPSBOU01heFkoY29udGVudExheW91
dFJlY3QpIC0gTlNIZWlnaHQoY29udGVudExheW91dFJlY3QpOwogICAgICAgICBpZiAobV90b3BD
b250ZW50SW5zZXQgIT0gbmV3VG9wQ29udGVudEluc2V0KQpAQCAtMTIyOCwxMCArMTIyMyw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3coKQogCiAgICAgICAgIGlmICgh
bV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMg
PSBjcmVhdGVXZWFrUHRyKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2Fs
TW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1hc2sgaGFuZGxlcjpb
d2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBb
TlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tG
bGFnc0NoYW5nZWQgaGFuZGxlcjpbd2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVu
dCkgewogICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAg
d2Vha1RoaXMtPnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoZmxh
Z3NDaGFuZ2VkRXZlbnQpOwogICAgICAgICAgICAgICAgIHJldHVybiBmbGFnc0NoYW5nZWRFdmVu
dDsKQEAgLTEzMDIsMTIgKzEyOTQsOSBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjpoaXRUZXN0KENH
UG9pbnQgcG9pbnQpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0No
YW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCisgICAg
TlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2Nh
dGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFu
Z2VkRXZlbnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0
YW1wIHdpbmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKICAgICAgICAg
Y29udGV4dDpudWxscHRyIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2Vi
RXZlbnQoZmFrZUV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOwogICAg
IG1fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7CiB9CkBAIC0xNjU2LDEwICsxNjQ1
LDcgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldygpCiBO
U1dpbmRvdyAqV2ViVmlld0ltcGw6OmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKQogewogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0gc3R5bGVNYXNrOihOU0JvcmRl
cmxlc3NXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrKSBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dIGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0gc3R5bGVN
YXNrOihOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgfCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6
YWJsZSkgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSBhdXRvcmVsZWFz
ZV07CiAjZWxzZQogICAgIHJldHVybiBuaWw7CiAjZW5kaWYKQEAgLTI2MzEsOSArMjYxNyw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnJlbW92ZVRyYWNraW5nUmVjdHMoTlNUcmFja2luZ1JlY3RUYWcg
KnRhZ3MsIGludCBjb3VudCkKIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFeGl0
ZWQoKQogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051
bWJlciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNNb3VzZUV4aXRlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhp
dEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUV4aXRlZAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdz
OjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0
YW1wOjAKQEAgLTI2NDIsMTYgKzI2MjYsMTMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xU
aXBNb3VzZUV4aXRlZCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGE6bV90cmFja2luZ1JlY3RVc2Vy
RGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW21fdHJhY2tpbmdSZWN0
T3duZXIgbW91c2VFeGl0ZWQ6ZmFrZUV2ZW50XTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2Vu
ZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQg
d2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVy
RXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQg
PSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVk
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlv
bjpOU01ha2VQb2ludCgwLCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjY2MCw3ICsyNjQxLDYgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRh
Om1fdHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
ICAgIFttX3RyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwogfQogCkBA
IC0yODE2LDEwICsyNzk2LDcgQEAgc3RhdGljIFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdz
IGFwcGxpY2F0aW9uRmxhZ3NGb3JEcmFnKE5TVmlldyAqdmlldywgaWQgPE4KICAgICAgICAgZmxh
Z3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSGFzQXR0YWNoZWRTaGVldDsKICAgICBpZiAo
ZHJhZ2dpbmdJbmZvLmRyYWdnaW5nU291cmNlID09IHZpZXcpCiAgICAgICAgIGZsYWdzIHw9IFdl
YkNvcmU6OkRyYWdBcHBsaWNhdGlvbklzU291cmNlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbTlNBcHAgY3VycmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYg
TlNBbHRlcm5hdGVLZXlNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChbTlNBcHAgY3VycmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxh
Z09wdGlvbikKICAgICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNDb3B5
S2V5RG93bjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9u
RmxhZ3M+KGZsYWdzKTsKIApAQCAtMzM1OSwxMCArMzMzNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OnNtYXJ0TWFnbmlmeVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkKIAogdm9pZCBXZWJWaWV3SW1w
bDo6c2V0TGFzdE1vdXNlRG93bkV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9
PSBOU0xlZnRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duIHx8IGV2
ZW50LnR5cGUgPT0gTlNPdGhlck1vdXNlRG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTGVmdE1v
dXNlRG93biB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gfHwgZXZl
bnQudHlwZSA9PSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duKTsKIAogICAgIGlmIChldmVudCA9
PSBtX2xhc3RNb3VzZURvd25FdmVudC5nZXQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzM5OSwx
MSArMzM3Myw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigp
CiAKIHZvaWQgV2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQoTlNFdmVudCAqZXZlbnQsIGJv
b2wgZXZlbnRXYXNIYW5kbGVkKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlw
ZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAKICAgICBpZiAodHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4
dElucHV0S2V5RG93bihldmVudCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0NzksMTEgKzM0NTAs
OCBAQCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBXZWJWaWV3SW1wbDo6Y29sbGVj
dEtleWJvYXJkTGF5b3V0Q29tbWFuZHNGb3JFdgogewogICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+IGNvbW1hbmRzOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCisgICAgaWYgKFtldmVudCB0
eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24pCiAgICAgICAgIHJldHVybiBjb21tYW5kczsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIEFTU0VSVCghbV9jb2xsZWN0ZWRLZXlw
cmVzc0NvbW1hbmRzKTsKICAgICBtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMgPSAmY29tbWFu
ZHM7CkBAIC0zODU4LDExICszODI2LDggQEAgYm9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVx
dWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgLy8gV2UgZ2V0IEVzYyBrZXkgaGVyZSBhZnRl
ciBwcm9jZXNzaW5nIGVpdGhlciBFc2Mgb3IgQ21kK3BlcmlvZC4gVGhlIGZvcm1lciBzdGFydHMg
YXMgYSBrZXlEb3duLCBhbmQgdGhlIGxhdHRlciBzdGFydHMgYXMgYSBrZXkgZXF1aXZhbGVudCwK
ICAgICAvLyBidXQgYm90aCBnZXQgdHJhbnNmb3JtZWQgdG8gYSBjYW5jZWxPcGVyYXRpb246IGNv
bW1hbmQsIGV4ZWN1dGluZyB3aGljaCBwYXNzZXMgYW4gRXNjIGtleSBldmVudCB0byAtcGVyZm9y
bUtleUVxdWl2YWxlbnQ6LgogICAgIC8vIERvbid0IGludGVycHJldCB0aGlzIGV2ZW50IGFnYWlu
LCBhdm9pZGluZyByZS1lbnRyYW5jeSBhbmQgaW5maW5pdGUgbG9vcHMuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5n
TW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrKSkKKyAgICBpZiAoW1tl
dmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0g
JiYgIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRGV2aWNlSW5k
ZXBlbmRlbnRGbGFnc01hc2spKQogICAgICAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyUGVy
Zm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
CiAgICAgaWYgKG1fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpIHsKICAgICAgICAgLy8gV2ViQ29y
ZSBoYXMgYWxyZWFkeSBzZWVuIHRoZSBldmVudCwgbm8gbmVlZCBmb3IgY3VzdG9tIHByb2Nlc3Np
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1
Z2luUHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBmMDdkMjc5ZDYzN2QzMGY4ZjUwNTMx
N2Q4ZjA5NjA1NTdhMTFkMmQyLi44ZjM3ZDQyNjE1MmI2MTdkNTVjOTE0ODgxNTExNGY4YzMzOWU3
YzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1
Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBv
cnQgPGNydF9leHRlcm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8c3Bh
d24uaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBAaW50ZXJmYWNlIFdLUGxhY2Vob2xk
ZXJNb2RhbFdpbmRvdyA6IE5TV2luZG93IApAQCAtMjMxLDEwICsyMzIsNyBAQCB2b2lkIFBsdWdp
blByb2Nlc3NQcm94eTo6YmVnaW5Nb2RhbCgpCiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2lu
ZG93KTsKICAgICBBU1NFUlQoIW1fYWN0aXZhdGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRv
cHROUyhbW1dLUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNr
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dL
UGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VS
ZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFj
a2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogICAgIFttX3BsYWNlaG9s
ZGVyV2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpOT107CiAgICAgCiAgICAgbV9hY3RpdmF0
aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9uV2lsbEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiBv
YmplY3Q6TlNBcHAgcXVldWU6bmlsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggYTQ4Mzk2NGQ4ZjFmMjI2ZDRh
ZWNjMjdjY2IwZjA3NjA3MWI3YmJkMS4uYmI1YWQ3YzIxZTgxMGNhMzY1NjVlY2M3NzdkMDZhZjMx
YmIwMjg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250
ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNDgsNiArNDgsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9OU1NoYXJpbmdTZXJ2aWNlU1BJLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29t
cGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApA
QCAtNDYzLDEwICs0NjQsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250
ZXh0TWVudVdpdGhJdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbgogICAgIFtbV0tNZW51
VGFyZ2V0IHNoYXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0aGlzXTsKIAogICAgIE5TUG9p
bnQgbWVudUxvY2F0aW9uID0gW21fd2ViVmlldyBjb252ZXJ0UG9pbnQ6bV9jb250ZXh0Lm1lbnVM
b2NhdGlvbigpIHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmln
aHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAgd2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmls
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2lu
ZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwogICAgIFtOU01lbnUgcG9wVXBDb250ZXh0TWVudTptX21lbnUuZ2V0KCkgd2l0aEV2ZW50
OmV2ZW50IGZvclZpZXc6bV93ZWJWaWV3XTsKIAogICAgIGlmIChtX2NvbnRleHRNZW51TGlzdGVu
ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVj
dG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3Rv
clByb3h5TWFjLm1tCmluZGV4IDBhNzk5MTM0NmQxNWNjZmFjNzc0MzVlZjMwZWY4ZGY4MjJhZmFl
MjMuLmYwNmI1ODQyYWNkNTM0ZGZlMjQxMGZlY2E5YTFhZGZiNmVhOTc3OTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpA
QCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIFNPRlRf
TElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJhbWV3b3Jrcywg
QSkKQEAgLTQ4LDEwICs0OSw3IEBAIFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3Bl
Y3RvclVJLCBQcml2YXRlRnJhbWV3b3JrcywgQSkKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotc3RhdGljIGNvbnN0IE5TVUludGVnZXIgd2luZG93U3R5bGVNYXNrID0gTlNUaXRsZWRX
aW5kb3dNYXNrIHwgTlNDbG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93
TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRv
d01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitzdGF0aWMgY29uc3QgTlNVSW50
ZWdlciB3aW5kb3dTdHlsZU1hc2sgPSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93
U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dpbmRvd1N0eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNX
aW5kb3dTdHlsZU1hc2tSZXNpemFibGUgfCBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVu
dFZpZXc7CiAKIC8vIFRoZSB0aW1lIHdlIGtlZXAgb3VyIFdlYlZpZXcgYWxpdmUgYmVmb3JlIGNs
b3NpbmcgaXQgYW5kIGl0cyBwcm9jZXNzLgogLy8gUmV1c2luZyB0aGUgV2ViVmlldyBpbXByb3Zl
cyBzdGFydCB1cCB0aW1lIGZvciBwZW9wbGUgdGhhdCBqdW1wIGluIGFuZCBvdXQgb2YgdGhlIElu
c3BlY3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9w
dXBNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVw
TWVudVByb3h5TWFjLm1tCmluZGV4IGQyOWQwODkwNTJjODg3YWZiODY0MjM4NDU1YWExODg0YjRk
ZDQ2NWMuLmMyMjlmYmQwYjhiZWJiYWYxMTVjMzUzZTgzYzdlMDg0NjUwNjAzNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5t
bQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0
ICJXZWJQb3B1cEl0ZW0uaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03NCwxOSArNzUsMTMgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eU1hYzo6cG9wdWxhdGUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBO
U0ZvbnQgKmYKICAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4g
cGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdy
YXBoU3R5bGVdIG11dGFibGVDb3B5XSk7CiAgICAgICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24g
d3JpdGluZ0RpcmVjdGlvbiA9IGl0ZW1zW2ldLm1fdGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1dy
aXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0
OwogICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndy
aXRpbmdEaXJlY3Rpb25dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9
PSBMVFIgPyBOU0xlZnRUZXh0QWxpZ25tZW50IDogTlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNl
dEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1RleHRBbGlnbm1lbnRMZWZ0
IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJs
ZURpY3Rpb25hcnk+IGF0dHJpYnV0ZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBh
bGxvY10gaW5pdFdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhT
dHlsZS5nZXQoKSwgTlNQYXJhZ3JhcGhTdHlsZUF0dHJpYnV0ZU5hbWUsCiAgICAgICAgICAgICAg
ICAgZm9udCwgTlNGb250QXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgIG5pbF0pOwogICAgICAg
ICAgICAgaWYgKGl0ZW1zW2ldLm1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICAgICAgUmV0YWluUHRyPE5T
TnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2Nd
IGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNUZXh0V3JpdGluZ0RpcmVjdGlv
bk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAg
ICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtb
TlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0
aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJh
eT4gd3JpdGluZ0RpcmVjdGlvbkFycmF5ID0gYWRvcHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRX
aXRoT2JqZWN0czp3cml0aW5nRGlyZWN0aW9uVmFsdWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAg
ICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJyYXkuZ2V0KCkg
Zm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAgICAgICAgfQpA
QCAtMTU0LDE4ICsxNDksMTUgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVw
TWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKIAogICAgIE5TQ29u
dHJvbFNpemUgY29udHJvbFNpemU7CiAgICAgc3dpdGNoIChkYXRhLm1lbnVTaXplKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1Jl
Z3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplUmVn
dWxhcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6
UG9wdXBNZW51U2l6ZVNtYWxsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TU21hbGxDb250cm9s
U2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVN
aW5pOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TTWluaUNvbnRyb2xTaXplOworICAgICAgICBj
b250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVNaW5pOwogICAgICAgICBicmVhazsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBSZWY8V2ViUG9wdXBNZW51UHJveHlN
YWM+IHByb3RlY3QoKnRoaXMpOwpAQCAtMTgzLDEzICsxNzUsMTEgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0
aW9uIHRleHQKICAgICBpZiAoIW1fY2xpZW50LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25F
dmVudCgpKQogICAgICAgICByZXR1cm47CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgTlNFdmVudCogaW5pdGlhdGluZ05TRXZlbnQgPSBtX2NsaWVudC0+Y3Vy
cmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKS0+bmF0aXZlRXZlbnQoKTsKLSAgICBpZiAo
W2luaXRpYXRpbmdOU0V2ZW50IHR5cGVdICE9IE5TTGVmdE1vdXNlRG93bikKKyAgICBpZiAoW2lu
aXRpYXRpbmdOU0V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ05TRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0
aW5nTlNFdmVudCB0aW1lc3RhbXBdCkBAIC0xOTgsMTMgKzE4OCwxNCBAQCB2b2lkIFdlYlBvcHVw
TWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJl
Y3Rpb24gdGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVu
dE51bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQgZXZlbnROdW1iZXJdCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlja0NvdW50Oltpbml0aWF0aW5nTlNFdmVudCBj
bGlja0NvdW50XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmVzc3VyZTpbaW5pdGlhdGluZ05TRXZlbnQgcHJlc3N1cmVdXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKIAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVT
XTsKKyAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVNb3VzZU1vdmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9u
OltbbV93ZWJWaWV3IHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVk
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3
IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VM
b2NhdGlvbl1dCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nTlNFdmVudCBtb2RpZmllckZs
YWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlh
dGluZ05TRXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvd051bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQgd2luZG93TnVtYmVyXQpAQCAtMjEyLDcgKzIw
Myw2IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50
UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
aWNrQ291bnQ6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTow
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZh
a2VFdmVudCBhdFN0YXJ0OllFU107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2lu
TWFjLm1tCmluZGV4IDFmOTkzMGUyZDg5ZmUwMDEzMzAwYTAxNGE0MmQ2MTM5ODA3OTJhMjYuLmNl
ZDk0Nzg0Mjc3MWNmMTlkYTlkNTIwMDJiYjJmOTNhYTYwMTgxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5N
YWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21h
Yy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCA8V2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDc1LDEzICs0NzYsMTMgQEAgc3RhdGljIHVpbnQzMl90
IG1vZGlmaWVyRmxhZ3MoY29uc3QgV2ViRXZlbnQmIGV2ZW50KQogICAgIHVpbnQzMl90IG1vZGlm
aWVycyA9IDA7CiAKICAgICBpZiAoZXZlbnQuc2hpZnRLZXkoKSkKLSAgICAgICAgbW9kaWZpZXJz
IHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ1NoaWZ0OwogICAgIGlmIChldmVudC5jb250cm9sS2V5KCkpCi0gICAgICAgIG1vZGlmaWVy
cyB8PSBOU0NvbnRyb2xLZXlNYXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2w7CiAgICAgaWYgKGV2ZW50LmFsdEtleSgpKQotICAgICAgICBtb2RpZmll
cnMgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ09wdGlvbjsKICAgICBpZiAoZXZlbnQubWV0YUtleSgpKQotICAgICAgICBtb2Rp
ZmllcnMgfD0gTlNDb21tYW5kS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIAogICAgIHJldHVybiBtb2RpZmllcnM7CiB9CkBAIC03
MDYsMTUgKzcwNywxNSBAQCBzdGF0aWMgdW5zaWduZWQgbW9kaWZpZXJGbGFncyhjb25zdCBXZWJL
ZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQogICAgIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3Mg
PSAwOwogCiAgICAgaWYgKGtleWJvYXJkRXZlbnQuY2Fwc0xvY2tLZXkoKSkKLSAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBOU0FscGhhU2hpZnRLZXlNYXNrOworICAgICAgICBtb2RpZmllckZsYWdz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5z
aGlmdEtleSgpKQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOworICAg
ICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICAgICBpZiAo
a2V5Ym9hcmRFdmVudC5jb250cm9sS2V5KCkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlND
b250cm9sS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29udHJvbDsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5hbHRLZXkoKSkKLSAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBOU0FsdGVybmF0ZUtleU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5tZXRh
S2V5KCkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKKyAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKIAogICAgIHJl
dHVybiBtb2RpZmllckZsYWdzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IDVlZGU1
NmVlZTQwYWNmZGI5OTAxMTlkZTdhY2U5MThlNjc4YmM2NjYuLjEyNTE4ZGYzMzRjZjNmZGQ2NThk
Zjg5MTljMzM2MWIwODQyZTJkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTgwLDYg
KzgwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMjc4LDMzICsxMjc5LDI4IEBAIHZvaWQg
UERGUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QsIGNvbnN0IFdURjo6U3Ry
aW5nJikKICAgICAKIHN0YXRpYyBOU1VJbnRlZ2VyIG1vZGlmaWVyRmxhZ3NGcm9tV2ViRXZlbnQo
Y29uc3QgV2ViRXZlbnQmIGV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TU2hpZnRLZXlNYXNrIDogMCkK
LSAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNDb250cm9sS2V5TWFzayA6IDApCi0g
ICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNBbHRlcm5hdGVLZXlNYXNrIDogMCkKLSAgICAg
ICAgfCAoZXZlbnQubWV0YUtleSgpID8gTlNDb21tYW5kS2V5TWFzayA6IDApOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TRXZl
bnRNb2RpZmllckZsYWdTaGlmdCA6IDApCisgICAgICAgIHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/
IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sIDogMCkKKyAgICAgICAgfCAoZXZlbnQuYWx0S2V5
KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uIDogMCkKKyAgICAgICAgfCAoZXZlbnQubWV0
YUtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQgOiAwKTsKIH0KICAgICAKIHN0YXRp
YyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5T
RXZlbnRUeXBlJiBldmVudFR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsKICAgICBjYXNlIFdlYkV2ZW50OjpLZXlE
b3duOgotICAgICAgICBldmVudFR5cGUgPSBOU0tleURvd247CisgICAgICAgIGV2ZW50VHlwZSA9
IE5TRXZlbnRUeXBlS2V5RG93bjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBXZWJF
dmVudDo6S2V5VXA6Ci0gICAgICAgIGV2ZW50VHlwZSA9IE5TS2V5VXA7CisgICAgICAgIGV2ZW50
VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2Ug
V2ViRXZlbnQ6Ok1vdXNlRG93bjoKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBX
ZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VF
dmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93
bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0
QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlRG93bjsKKyAgICAg
ICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd247CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEzMTIsMTAgKzEzMDgsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdl
YkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBj
YXNlIFdlYkV2ZW50OjpNb3VzZVVwOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0
IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VV
cDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1
dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZVVwOworICAgICAgICAg
ICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTEzMjMsMTMgKzEzMTksMTMgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50
KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBjYXNlIFdl
YkV2ZW50OjpNb3VzZU1vdmU6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2Vi
TW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZl
bnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZURyYWdn
ZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpS
aWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZURyYWdnZWQ7
CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6Tm9C
dXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU01vdXNlTW92ZWQ7CisgICAgICAgICAg
ICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEz
MzcsNyArMTMzMyw2IEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25z
dCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IH0KICAgICAKIE5TRXZlbnQgKlBERlBsdWdpbjo6bnNFdmVudEZvcldlYk1vdXNlRXZlbnQoY29u
c3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGM0ZDI1NmM1NTlmYjc0NmM4OTQ2ZmUx
ODA2ZjdhNDM1ZGIxNWI1NWUuLmNmODk5YzcyYTgxNDkwYWI1MTI2MmM1M2E1MWVmMDAyMzY1MmI1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCkBAIC03OSw2ICs3OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VVSUQuaD4KICNp
bXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1l
Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTk2MywxMCArOTY0LDEwIEBAIHZvaWQg
UERGUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QsIGNvbnN0IFdURjo6U3Ry
aW5nJikKIAogc3RhdGljIE5TVUludGVnZXIgbW9kaWZpZXJGbGFnc0Zyb21XZWJFdmVudChjb25z
dCBXZWJFdmVudCYgZXZlbnQpCiB7Ci0gICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNT
aGlmdEtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0NvbnRy
b2xLZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQuYWx0S2V5KCkgPyBOU0FsdGVybmF0ZUtl
eU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0NvbW1hbmRLZXlNYXNr
IDogMCk7CisgICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxh
Z1NoaWZ0IDogMCkKKyAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2wgOiAwKQorICAgICAgICB8IChldmVudC5hbHRLZXkoKSA/IE5TRXZlbnRN
b2RpZmllckZsYWdPcHRpb24gOiAwKQorICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCA6IDApOwogfQogICAgIAogc3RhdGljIGJvb2wgZ2V0RXZl
bnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2
ZW50VHlwZSkKQEAgLTk3NSwxMCArOTc2LDEwIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZy
b21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAg
ICAgY2FzZSBXZWJFdmVudDo6TW91c2VEb3duOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0
PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBX
ZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0
TW91c2VEb3duOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVu
dDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEb3du
OworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtOTg2LDEwICs5ODcsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBl
RnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkK
ICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZVVwOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0
PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBX
ZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0
TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpS
aWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZVVwOworICAg
ICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTk5NywxMyArOTk4LDEzIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJF
dmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2Fz
ZSBXZWJFdmVudDo6TW91c2VNb3ZlOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0
IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VE
cmFnZ2VkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFn
Z2VkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVu
dDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEcmFn
Z2VkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dl
ZDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6
Ok5vQnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNNb3VzZU1vdmVkOworICAgICAg
ICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVNb3VzZU1vdmVkOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xNzU2LDExICsxNzU3LDExIEBAIGJvb2wgUERGUGx1Z2luOjpIVUQ6Om1vdXNlRXZlbnQoUGFn
ZU92ZXJsYXkmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogCiAgICAgc3dpdGNo
IChldmVudC50eXBlKCkpIHsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ6Ci0g
ICAgICAgIHJldHVybiBbcGRmTGF5ZXJDb250cm9sbGVyIG1vdXNlRHJhZ2dlZDpldmVudFdpdGhU
eXBlKE5TTGVmdE1vdXNlRHJhZ2dlZCkgaW5IVURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXNdOworICAgICAgICByZXR1cm4gW3BkZkxheWVyQ29udHJvbGxlciBtb3VzZURy
YWdnZWQ6ZXZlbnRXaXRoVHlwZShOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQpIGluSFVEV2l0
aEJvdW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlUHJlc3NlZDoKLSAgICAgICAgcmV0dXJuIFtwZGZMYXllckNvbnRyb2xsZXIg
bW91c2VEb3duOmV2ZW50V2l0aFR5cGUoTlNMZWZ0TW91c2VEb3duKSBpbkhVRFdpdGhCb3VuZHM6
SFVEUmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CisgICAgICAgIHJldHVybiBbcGRmTGF5ZXJD
b250cm9sbGVyIG1vdXNlRG93bjpldmVudFdpdGhUeXBlKE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
bikgaW5IVURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIGNh
c2UgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDoKLSAgICAgICAgcmV0dXJuIFtwZGZMYXll
ckNvbnRyb2xsZXIgbW91c2VVcDpldmVudFdpdGhUeXBlKE5TTGVmdE1vdXNlVXApIGluSFVEV2l0
aEJvdW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKKyAgICAgICAgcmV0dXJuIFtw
ZGZMYXllckNvbnRyb2xsZXIgbW91c2VVcDpldmVudFdpdGhUeXBlKE5TRXZlbnRUeXBlTGVmdE1v
dXNlVXApIGluSFVEV2l0aEJvdW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAg
ICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3Rh
dGlvbi5tbQppbmRleCA2YzYwYmRkZTk1ZmRkMzE3ZjZiNzE0ZTFmNDRmNmVlYjJmMzNkMzBiLi42
MDMxYzU5MGRjMjMxZWNjZmVlYTIwYTA0N2Y4NTY5NmNhNWQ4YTNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
VGV4dEFubm90YXRpb24ubW0KQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRN
TFRleHRBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTMs
MjEgKzU0LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBjb25zdCBT
dHJpbmcgY3NzQWxpZ25tZW50VmFsdWVGb3JOU1RleHRBbGlnbm1lbnQoTlNUZXh0QWxpZ25tZW50
IGFsaWdubWVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBz
d2l0Y2ggKGFsaWdubWVudCkgewotICAgIGNhc2UgTlNMZWZ0VGV4dEFsaWdubWVudDoKKyAgICBj
YXNlIE5TVGV4dEFsaWdubWVudExlZnQ6CiAgICAgICAgIHJldHVybiAibGVmdCI7Ci0gICAgY2Fz
ZSBOU1JpZ2h0VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudFJpZ2h0Ogog
ICAgICAgICByZXR1cm4gInJpZ2h0IjsKLSAgICBjYXNlIE5TQ2VudGVyVGV4dEFsaWdubWVudDoK
KyAgICBjYXNlIE5TVGV4dEFsaWdubWVudENlbnRlcjoKICAgICAgICAgcmV0dXJuICJjZW50ZXIi
OwotICAgIGNhc2UgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxp
Z25tZW50SnVzdGlmaWVkOgogICAgICAgICByZXR1cm4gImp1c3RpZnkiOwotICAgIGNhc2UgTlNO
YXR1cmFsVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudE5hdHVyYWw6CiAg
ICAgICAgIHJldHVybiAiLXdlYmtpdC1zdGFydCI7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IGEzNmYzYjMyM2FiOTE2
NTE0NzdiZDNjN2JlMjhjNmEyM2RlOWIxN2QuLjYyNmU0MzZjNmFjNGZlNmI5YTdlYjUzYzJkMzU2
YmY3OTZmZjQ0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNDYsNiAr
NDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdUcnVuY2F0b3IuaD4KICNpbXBvcnQgPFdl
YktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTYzLDEwICs2
NCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9C
aXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEluCiAgICAgUmV0YWluUHRyPE5TR3JhcGhpY3ND
b250ZXh0PiBzYXZlZENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRd
OwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNz
Q29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNzQ29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1h
cC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1pl
cm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MSByZXNwZWN0
RmxpcHBlZDpZRVMgaGludHM6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRo
KCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlv
bjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlw
cGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRD
b250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KaW5kZXggZTFiM2VmYTk2MjExOGY5MTMw
YWU4ODdhMTA5ODRmNjFjM2M5YThlNi4uNjVlMmMxZjViNTZjYjNkZGUzNDU5N2Y1NDExYTUxNDY1
YTcwNzkyMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KQEAgLTQzLDYgKzQzLDcgQEAKIAogI2lmICFQTEFURk9STShJT1MpCiAj
aW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+IC8vIGZvciBHZXRDdXJyZW50RXZlbnRUaW1lKCkKKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zNTUsMzMgKzM1NiwzMyBAQCAtICh2b2lkKWNsZWFy
S2lsbFJpbmcKIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFj
dGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3Rpb24pCiB7CiAgICAgc3dpdGNoIChidXR0
b24pIHsKLSAgICAgICAgY2FzZSBMZWZ0TW91c2VCdXR0b246Ci0gICAgICAgICAgICBzd2l0Y2gg
KGFjdGlvbikgewotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEb3duOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91
c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TTGVmdE1vdXNlVXA7Ci0gICAgICAg
ICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBO
U0xlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGNhc2UgUmlnaHRNb3Vz
ZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAg
Y2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU1JpZ2h0TW91c2VE
b3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIE5TUmlnaHRNb3VzZVVwOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNSaWdodE1vdXNlRHJhZ2dlZDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7
Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBOU090aGVyTW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3RoZXJNb3VzZVVwOwotICAgICAgICAgICAgICAg
IGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNPdGhlck1v
dXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KKyAgICBjYXNlIExlZnRNb3VzZUJ1dHRvbjoKKyAg
ICAgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICAgICAgY2FzZSBNb3VzZURvd246CisgICAgICAg
ICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNl
VXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VVcDsKKyAgICAgICAg
Y2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91
c2VEcmFnZ2VkOworICAgICAgICB9CisgICAgY2FzZSBSaWdodE1vdXNlQnV0dG9uOgorICAgICAg
ICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAg
IHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6
CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CisgICAgICAgIGNh
c2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ7CisgICAgICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBzd2l0Y2ggKGFjdGlv
bikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50
VHlwZU90aGVyTW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICBy
ZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2Vk
OgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ7CisgICAg
ICAgIH0KICAgICB9CiAgICAgYXNzZXJ0KDApOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0V2
ZW50VHlwZT4oMCk7CkBAIC00MzMsMTEgKzQzNCwxMSBAQCAtICh2b2lkKXVwZGF0ZUNsaWNrQ291
bnRGb3JCdXR0b246KGludClidXR0b25OdW1iZXIKIHN0YXRpYyBpbnQgbW9kaWZpZXJGbGFncyhj
b25zdCBOU1N0cmluZyogbW9kaWZpZXJOYW1lKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAg
Y29uc3QgaW50IGNvbnRyb2xLZXlNYXNrID0gTlNDb250cm9sS2V5TWFzazsKLSAgICBjb25zdCBp
bnQgc2hpZnRLZXlNYXNrID0gTlNTaGlmdEtleU1hc2s7Ci0gICAgY29uc3QgaW50IGFsdGVybmF0
ZUtleU1hc2sgPSBOU0FsdGVybmF0ZUtleU1hc2s7Ci0gICAgY29uc3QgaW50IGNvbW1hbmRLZXlN
YXNrID0gTlNDb21tYW5kS2V5TWFzazsKLSAgICBjb25zdCBpbnQgY2Fwc0xvY2tLZXlNYXNrID0g
TlNBbHBoYVNoaWZ0S2V5TWFzazsKKyAgICBjb25zdCBpbnQgY29udHJvbEtleU1hc2sgPSBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKKyAgICBjb25zdCBpbnQgc2hpZnRLZXlNYXNrID0gTlNF
dmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAgIGNvbnN0IGludCBhbHRlcm5hdGVLZXlNYXNrID0g
TlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAgICBjb25zdCBpbnQgY29tbWFuZEtleU1hc2sg
PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKKyAgICBjb25zdCBpbnQgY2Fwc0xvY2tLZXlN
YXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOwogI2Vsc2UKICAgICBjb25zdCBpbnQg
Y29udHJvbEtleU1hc2sgPSBXZWJFdmVudEZsYWdNYXNrQ29udHJvbDsKICAgICBjb25zdCBpbnQg
c2hpZnRLZXlNYXNrID0gV2ViRXZlbnRGbGFnTWFza1NoaWZ0OwpAQCAtNjQzLDcgKzY0NCw3IEBA
IC0gKHZvaWQpbW91c2VNb3ZlVG9YOihpbnQpeCBZOihpbnQpeQogICAgIE5TVmlldyAqdmlldyA9
IFttYWluRnJhbWUgd2ViVmlld107CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBsYXN0TW91c2VQ
b3NpdGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDpOU01ha2VQb2ludCh4LCBbdmlldyBmcmFtZV0u
c2l6ZS5oZWlnaHQgLSB5KSB0b1ZpZXc6bmlsXTsKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0dG9uRG93biA/IE5TTGVmdE1vdXNl
RHJhZ2dlZCA6IE5TTW91c2VNb3ZlZCkKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0dG9uRG93biA/IE5TRXZlbnRUeXBlTGVmdE1v
dXNlRHJhZ2dlZCA6IE5TRXZlbnRUeXBlTW91c2VNb3ZlZCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVudFRp
bWVdCkBAIC03NzcsNyArNzc4LDcgQEAgLSAoTlNBcnJheSAqKWNvbnRleHRDbGljawogICAgIFtb
W21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKICAgICBbc2VsZiB1
cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uOlJpZ2h0TW91c2VCdXR0b25dOwogCi0gICAgTlNFdmVu
dCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93bgor
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVudFRpbWVdCkBAIC0xMDEzLDcgKzEw
MTQsNyBAQCAtICh2b2lkKWtleURvd246KE5TU3RyaW5nICopY2hhcmFjdGVyIHdpdGhNb2RpZmll
cnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVycwogCiAgICAgaWYgKFtjaGFyYWN0ZXIgbGVu
Z3RoXSA9PSAxICYmIFtjaGFyYWN0ZXIgY2hhcmFjdGVyQXRJbmRleDowXSA+PSAnQScgJiYgW2No
YXJhY3RlciBjaGFyYWN0ZXJBdEluZGV4OjBdIDw9ICdaJykgewogI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgIG1vZGlm
aWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogI2Vsc2UKICAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBXZWJFdmVudEZsYWdNYXNrQWxwaGFTaGlmdDsKICNlbmRpZgpAQCAtMTAy
MywxMiArMTAyNCwxMiBAQCAtICh2b2lkKWtleURvd246KE5TU3RyaW5nICopY2hhcmFjdGVyIHdp
dGhNb2RpZmllcnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVycwogICAgIG1vZGlmaWVyRmxh
Z3MgfD0gYnVpbGRNb2RpZmllckZsYWdzKG1vZGlmaWVycyk7CiAKICAgICBpZiAobG9jYXRpb24g
PT0gRE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNO
dW1lcmljUGFkS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnTnVtZXJpY1BhZDsKIAogICAgIFtbW21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50
Vmlld10gbGF5b3V0XTsKIAogI2lmICFQTEFURk9STShJT1MpCi0gICAgTlNFdmVudCAqZXZlbnQg
PSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5RG93bgorICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBtb2RpZmllckZsYWdzOm1vZGlmaWVyRmxhZ3MKICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWVzdGFtcDpbc2VsZiBjdXJyZW50RXZlbnRUaW1lXQpAQCAtMTA2MCw3ICsxMDYx
LDcgQEAgLSAodm9pZClrZXlEb3duOihOU1N0cmluZyAqKWNoYXJhY3RlciB3aXRoTW9kaWZpZXJz
OihXZWJTY3JpcHRPYmplY3QgKiltb2RpZmllcnMKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElP
UykKLSAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAorICAgIGV2
ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAgICAgICAg
ICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KQogICAgICAgICAgICAg
ICAgICAgICAgICAgbW9kaWZpZXJGbGFnczptb2RpZmllckZsYWdzCiAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6W3NlbGYgY3VycmVudEV2ZW50VGltZV0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0gYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tCmluZGV4IDVlYzJhOTk2ZjlhNGMx
MmNjMzg5NzBhYjVkMGIwMTFkMDAwYjdiZWUuLjc0ZjFiMTEzNGRmNmU5Njg5ZDBmY2UyZjRhNTE3
NGIwNTA2NGMyZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5w
dXRDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENv
bnRyb2xsZXIubQpAQCAtNTEsNiArNTEsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYlNjcmlwdE9i
amVjdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlR5cGVzSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdl
YktpdC9XZWJWaWV3Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNs
YXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBUZXh0SW5wdXRDb250cm9sbGVyIChEdW1wUmVuZGVy
VHJlZUlucHV0TWV0aG9kSGFuZGxlcikKIC0gKEJPT0wpaW50ZXJwcmV0S2V5RXZlbnRzOihOU0Fy
cmF5ICopZXZlbnRBcnJheSB3aXRoU2VuZGVyOihXZWJIVE1MVmlldyAqKXNlbmRlcjsKQEAgLTUw
NywyMSArNTA4LDIxIEBAIC0gKEJPT0wpaW50ZXJwcmV0S2V5RXZlbnRzOihOU0FycmF5ICopZXZl
bnRBcnJheSB3aXRoU2VuZGVyOihXZWJIVE1MVmlldyAqKXNlbmRlCiAgICAgTlNFdmVudCAqZXZl
bnQgPSBbZXZlbnRBcnJheSBvYmplY3RBdEluZGV4OjBdOwogICAgIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MgPSBbZXZlbnQgbW9kaWZpZXJGbGFnc107IAogICAgIE5TTXV0YWJsZUFycmF5ICptb2Rp
ZmllcnMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKLSAgICBpZiAobW9kaWZpZXJG
bGFncyAmIE5TQWxwaGFTaGlmdEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAi
TlNBbHBoYVNoaWZ0S2V5TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtl
eU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQp
CiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAiTlNTaGlmdEtleU1hc2siXTsKLSAgICBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TQ29udHJvbEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKICAgICAgICAgW21vZGlmaWVycyBhZGRP
YmplY3Q6QCJOU0NvbnRyb2xLZXlNYXNrIl07Ci0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0Fs
dGVybmF0ZUtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uKQogICAgICAgICBbbW9kaWZpZXJzIGFkZE9iamVjdDpAIk5TQWx0ZXJuYXRlS2V5
TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykKKyAgICBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKQogICAgICAgICBb
bW9kaWZpZXJzIGFkZE9iamVjdDpAIk5TQ29tbWFuZEtleU1hc2siXTsKLSAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TTnVtZXJpY1BhZEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCkKICAgICAgICAgW21vZGlmaWVycyBhZGRPYmpl
Y3Q6QCJOU051bWVyaWNQYWRLZXlNYXNrIl07Ci0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0hl
bHBLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0hl
bHApCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAiTlNIZWxwS2V5TWFzayJdOwotICAg
IGlmIChtb2RpZmllckZsYWdzICYgTlNGdW5jdGlvbktleU1hc2spCisgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb24pCiAgICAgICAgIFttb2RpZmllcnMg
YWRkT2JqZWN0OkAiTlNGdW5jdGlvbktleU1hc2siXTsKICAgICAKICAgICBXZWJTY3JpcHRPYmpl
Y3QqIGV2ZW50UGFyYW0gPSBbaW5wdXRNZXRob2RIYW5kbGVyIGV2YWx1YXRlV2ViU2NyaXB0OkAi
bmV3IE9iamVjdCgpOyJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dz
ZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIubQppbmRleCA2YzRiMTM1YjE4NjUwZDFjMDA0MDczYTdmOWQ4YjYyYWQzNTc0
MjQzLi41NWNlNTYwMWIwOTE0Y2MxYjRjZDA2NjNlNDFlNDQyNzkzOWQ2OGFhIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9U
b29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtMjQsNiAr
MjQsNyBAQAogICovCiAKICNpbXBvcnQgIkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgiCisjaW1w
b3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVy
ZmFjZSBCcm93c2VyV2luZG93Q29udHJvbGxlciAoKSA8TlNTaGFyaW5nU2VydmljZVBpY2tlckRl
bGVnYXRlLCBOU1NoYXJpbmdTZXJ2aWNlRGVsZWdhdGU+CiBAZW5kCkBAIC00MCwxMSArNDEsNyBA
QCAtICh2b2lkKXdpbmRvd0RpZExvYWQKIHsKICAgICBzZWxmLndpbmRvdy5zdHlsZU1hc2sgfD0g
TlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogCi0jaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICBbc2hhcmUgc2VuZEFjdGlvbk9uOk5T
RXZlbnRNYXNrTGVmdE1vdXNlRG93bl07Ci0jZWxzZQotICAgIFtzaGFyZSBzZW5kQWN0aW9uT246
TlNMZWZ0TW91c2VEb3duTWFza107Ci0jZW5kaWYKIAogICAgIFtzdXBlciB3aW5kb3dEaWRMb2Fk
XTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0NvbW1hbmRCYWNrRm9yd2FyZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbQppbmRleCA2Nzg2NzAwZWQyM2Q3YWFhODFjMWUx
NjAxYjY5ZmQzYTIxZDVlYzUyLi5hZDA0YzVlYzg0ZjhiZjRmNTlmYmQzMTYxMGZmYzJlODE4YTY5
YmVmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9D
b21tYW5kQmFja0ZvcndhcmQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0
IDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ZpZXdQcml2YXRlLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBDb21tYW5kQmFja0ZvcndhcmRP
ZmZzY3JlZW5XaW5kb3cgOiBOU1dpbmRvdwogQGVuZApAQCAtNjIsOSArNjMsOSBAQCBzdGF0aWMg
dm9pZCBzaW11bGF0ZUNvbW1hbmRBcnJvdyhOU1ZpZXcgKnZpZXcsIEFycm93RGlyZWN0aW9uIGRp
cmVjdGlvbikKICAgICBOU1N0cmluZyAqZXZlbnRDaGFyYWN0ZXIgPSAoZGlyZWN0aW9uID09IExl
ZnQpID8gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZsZWZ0IGxlbmd0aDoxXSA6IFtO
U1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczomcmlnaHQgbGVuZ3RoOjFdOwogICAgIHVuc2ln
bmVkIHNob3J0IGtleUNvZGUgPSAoZGlyZWN0aW9uID09IExlZnQpID8gMHg3QiA6IDB4N0M7CiAK
LSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlEb3du
CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlS2V5RG93bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlv
bjpOU01ha2VQb2ludCg1LCA1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9k
aWZpZXJGbGFnczpOU0NvbW1hbmRLZXlNYXNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtb2RpZmllckZsYWdzOk5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUo
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbdmlldy53
aW5kb3cgd2luZG93TnVtYmVyXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdCkBAIC03NSw5ICs3
Niw5IEBAIHN0YXRpYyB2b2lkIHNpbXVsYXRlQ29tbWFuZEFycm93KE5TVmlldyAqdmlldywgQXJy
b3dEaXJlY3Rpb24gZGlyZWN0aW9uKQogCiAgICAgW3ZpZXcga2V5RG93bjpldmVudF07CiAKLSAg
ICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAorICAgIGV2ZW50ID0g
W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBtb2RpZmllckZsYWdzOk5TQ29tbWFuZEtleU1hc2sKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOlt2aWV3LndpbmRvdyB3aW5kb3dO
dW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OltOU0dyYXBoaWNz
Q29udGV4dCBjdXJyZW50Q29udGV4dF0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQppbmRleCBlYmU4
OGI2YTQyY2UyYTFmNDE1YzM3MDk1M2U3NGFhMjQwZjliN2ZjLi44NGRjYmUyZjIyNTZjZTllZmRm
MjhlY2FhZjQ4MzE1ZmQ0M2U2NTRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCkBAIC0zMyw2
ICszMyw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8
V2ViS2l0L19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
IHN0YXRpYyBib29sIHJlY2VpdmVkTG9hZGVkTWVzc2FnZTsKIHN0YXRpYyBib29sIHJlY2VpdmVk
V2lsbEVudGVyRnVsbHNjcmVlbk1lc3NhZ2U7CkBAIC04MywxNCArODQsMTQgQEAgVEVTVChGdWxs
c2NyZWVuLCBEZWxlZ2F0ZSkKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9s
bGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJmdWxsc2Ny
ZWVuQ2hhbmdlSGFuZGxlciJdOwogICAgIFt3ZWJWaWV3IF9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6
aGFuZGxlci5nZXQoKV07CiAKLSAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0
TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0g
c3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1
ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9w
dE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVd
IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdT
dG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1
YnZpZXc6d2ViVmlldy5nZXQoKV07CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJGdWxsc2NyZWVuRGVsZWdhdGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpyZXF1ZXN0XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTG9h
ZGVkTWVzc2FnZSk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZp
ZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVt
YmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKKyAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczow
IHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVyIGNvbnRl
eHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBbd2ViVmll
dyBtb3VzZURvd246ZXZlbnRdOwogCiAgICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3IF9pc0luRnVs
bHNjcmVlbl0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLm1tCmluZGV4
IDRkZWEwYmMzZmRlMGExMjA2ZjE3ZjIwZTJhZTlhZmU4YWZmOGQzODUuLmJjMzBiNjhmNWNjMzUz
MGE5ZTFjMDAwZGFhMTNiZjMyNjE1ZGM4OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuTGF5b3V0
Q29uc3RyYWludHMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBzdGF0aWMgYm9vbCByZWNlaXZlZExvYWRl
ZE1lc3NhZ2U7CiBzdGF0aWMgYm9vbCByZWNlaXZlZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlOwpA
QCAtNjAsNyArNjEsNyBAQCBURVNUKEZ1bGxzY3JlZW4sIExheW91dENvbnN0cmFpbnRzKQogICAg
IFJldGFpblB0cjxGdWxsc2NyZWVuU3RhdGVDaGFuZ2VNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9
IGFkb3B0TlMoW1tGdWxsc2NyZWVuU3RhdGVDaGFuZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5p
dF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlw
dE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAImZ1bGxzY3JlZW5TdGF0ZUNoYW5n
ZUhhbmRsZXIiXTsKIAotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhb
W05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHls
ZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6Tk9dKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMo
W1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5
bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICB3ZWJWaWV3LmdldCgpLnRyYW5zbGF0ZXNBdXRvcmVz
aXppbmdNYXNrSW50b0NvbnN0cmFpbnRzID0gTk87CiAgICAgW1t3aW5kb3cgY29udGVudFZpZXdd
IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAgICAgCkBAIC03NCwxNCArNzUsMTQgQEAgVEVT
VChGdWxsc2NyZWVuLCBMYXlvdXRDb25zdHJhaW50cykKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTG9hZGVk
TWVzc2FnZSk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVy
IGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKKyAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxl
ZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVyIGNvbnRleHQ6
MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBbd2ViVmlldyBt
b3VzZURvd246ZXZlbnRdOwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlKTsKICAgICAKICAgICByZWNlaXZlZEZ1bGxzY3JlZW5D
aGFuZ2VNZXNzYWdlID0gZmFsc2U7CiAgICAgCi0gICAgTlNFdmVudCAqZXhpdEZTRXZlbnQgPSBb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFr
ZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6d2lu
ZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjAgcHJlc3N1cmU6MF07CisgICAgTlNFdmVudCAqZXhpdEZTRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBv
aW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6d2luZG93
LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAg
cHJlc3N1cmU6MF07CiAgICAgW3dlYlZpZXcgbW91c2VEb3duOmV4aXRGU0V2ZW50XTsKICAgICAK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1l
c3NhZ2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW0KaW5kZXggYmYxZDBj
YmMyZjQ1ZTRmZmI1NjJkNGU2NzRhZDBlMGY3YTM3NWE2MS4uMDFmNmU4ODkzYzFmMzcyNzNmNzk4
MDIzNzc4Y2RjNTIxZWViZDM4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuVG9wQ29udGVudEluc2V0
Lm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJh
dGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRMb2FkZWRNZXNzYWdlOwog
c3RhdGljIGJvb2wgcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdlTWVzc2FnZTsKQEAgLTYxLDE0ICs2
MiwxNCBAQCBURVNUKEZ1bGxzY3JlZW4sIFRvcENvbnRlbnRJbnNldCkKICAgICBSZXRhaW5QdHI8
RnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW0Z1bGxz
Y3JlZW5DaGFuZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJh
dGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRs
ZXIuZ2V0KCkgbmFtZTpAImZ1bGxzY3JlZW5DaGFuZ2VIYW5kbGVyIl07CiAKLSAgICBSZXRhaW5Q
dHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01h
c2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgUmV0YWlu
UHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0Jv
cmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAg
W1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAKICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJGdWxsc2NyZWVuVG9wQ29udGVudElu
c2V0IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZExvYWRlZE1lc3NhZ2UpOwogCi0gICAgTlNF
dmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3du
IGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3
aW5kb3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1i
ZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07CiAgICAgW3dlYlZpZXcgbW91c2VEb3duOmV2ZW50XTsKIAog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdlTWVz
c2FnZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9TaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3
V2luZG93QWN0aW9ucy5tbQppbmRleCAzYWJhOTcwOGIyM2MxZjQ0MTUwOWIwZTc5NmM5OTczYzMx
YTFmZDgxLi4xYWMzZDkyM2RhMTQ3MTRmN2RhOWY4Mjk1NmNjYmI1ZGM0MDNjNzNjIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TaG91bGRPcGVuRXh0
ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlv
bnMubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25BY3Rp
b25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAKICNpZiBXS19BUElfRU5BQkxFRAogCkBAIC03Myw3ICs3NCw3IEBA
IFRFU1QoV2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luV2luZG93T3BlbikKIHsKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CiAKLSAgICBhdXRvIHdpbmRvdyA9IGFkb3B0
TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0g
c3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1
ZmZlcmVkIGRlZmVyOllFU10pOworICAgIGF1dG8gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNX
aW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpZRVNdKTsKICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3
LmdldCgpXTsKIAogICAgIGF1dG8gY29udHJvbGxlciA9IGFkb3B0TlMoW1tTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zQ29udHJvbGxlciBhbGxvY10gaW5pdF0pOwpAQCAt
ODYsOCArODcsOCBAQCBURVNUKFdlYktpdDIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJbldpbmRv
d09wZW4pCiAKICAgICBOU1BvaW50IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgxMDAsIDEwMCk7
CiAKLSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1v
ZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1i
ZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsK
LSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29u
dGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOworICAgIFtb
d2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9k
aWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJl
cl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwor
ICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBt
b2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVt
YmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07
CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjcmVhdGVkV2ViVmlldyk7CiAgICAgY3Jl
YXRlZFdlYlZpZXcgPSBmYWxzZTsKIApAQCAtMTA4LDggKzEwOSw4IEBAIFRFU1QoV2ViS2l0Miwg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc0luV2luZG93T3BlbikKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0g
ZmFsc2U7CiAKLSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1Bv
aW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5k
b3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJl
OjFdXTsKLSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9k
aWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJl
cl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwor
ICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9p
bnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRv
d051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6
MV1dOworICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQ
b2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2lu
ZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3Vy
ZToxXV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjcmVhdGVkV2ViVmlldyk7CiAg
ICAgY3JlYXRlZFdlYlZpZXcgPSBmYWxzZTsKIApAQCAtMTM0LDcgKzEzNSw3IEBAIFRFU1QoV2Vi
S2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luVGFyZ2V0ZWRMaW5rKQogewogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKIAotICAgIGF1dG8gd2luZG93ID0gYWRvcHROUyhbW05T
V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1h
c2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6WUVTXSk7CisgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0
eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllF
U10pOwogICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCld
OwogCiAgICAgYXV0byBjb250cm9sbGVyID0gYWRvcHROUyhbW1Nob3VsZE9wZW5FeHRlcm5hbFVS
THNJbk5ld1dpbmRvd0FjdGlvbnNDb250cm9sbGVyIGFsbG9jXSBpbml0XSk7CkBAIC0xNDgsOCAr
MTQ5LDggQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5UYXJnZXRlZExp
bmspCiAgICAgTlNQb2ludCBjbGlja1BvaW50ID0gTlNNYWtlUG9pbnQoMTAwLCAxMDApOwogCiAg
ICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9p
bnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3du
IGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051
bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRd
IG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAgbG9jYXRp
b246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3
aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6
MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VE
b3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24g
bG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVt
YmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNr
Q291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0g
bW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VV
cCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dO
dW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xp
Y2tDb3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRl
Y2lkZWRQb2xpY3kpOwogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKIApAQCAtMTc4LDggKzE3
OSw4IEBAIFRFU1QoV2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luVGFyZ2V0ZWRMaW5r
KQogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAgZGVjaWRlZFBvbGljeSA9
IGZhbHNlOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9p
bnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRv
d051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6
MV1dOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVy
XSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07Cisg
ICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93
TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTox
XV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1Bv
aW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5k
b3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJl
OjFdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOwogICAg
IGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKIApAQCAtMjEwLDcgKzIxMSw3IEBAIFRFU1QoV2ViS2l0
MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luVGFyZ2V0ZWRMaW5rKQogVEVTVChXZWJLaXQyLCBS
ZXN0b3JlU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeUFmdGVyQ3Jhc2gpCiB7CiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwotICAgIGF1dG8gd2luZG93ID0gYWRvcHROUyhbW05T
V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1h
c2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6WUVTXSk7CisgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0
eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllF
U10pOwogICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCld
OwogICAgIGF1dG8gY29udHJvbGxlciA9IGFkb3B0TlMoW1tTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
SW5OZXdXaW5kb3dBY3Rpb25zQ29udHJvbGxlciBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3
IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1VzZXJJbml0aWF0ZWRBY3Rpb25J
bk5hdmlnYXRpb25BY3Rpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9Vc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9uLm1tCmluZGV4IDZmZGMw
NzVkNTE1MzY2ODU2ZmQyMzViZGI2OWRkM2IyYzU4MmUzYmQuLmM4NDRiMmUyNWJiY2ZkZmJlZTVi
ODY0ODNmNmNiNDAzMWQwZjI5OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1VzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVXNlckluaXRpYXRl
ZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8
V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tVc2VySW5pdGlh
dGVkQWN0aW9uLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVE
CiAKQEAgLTcyLDcgKzczLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgd2ViVmlldyA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKIAotICAgICAgICB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxl
c3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsK
KyAgICAgICAgd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRl
bnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJs
ZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKICAgICAgICAg
W1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAKICAgICAg
ICAgZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFj
dGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC05OSw4ICsxMDAsOCBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICBOU1BvaW50IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgxMDAsIDEwMCk7
CiAKLSAgICAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93
TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTox
XV07Ci0gICAgICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBt
b2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVt
YmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07
CisgICAgICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNs
aWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93
IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJl
c3N1cmU6MV1dOworICAgICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVw
OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0
aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpb
d2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjEgcHJlc3N1cmU6MV1dOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0FjY2VwdHNGaXJzdE1vdXNlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvQWNjZXB0c0ZpcnN0TW91c2UubW0KaW5kZXggZGVjNzg4ODA0ZjY1YjQxNjYx
ZTllOWQwZjNmZjBkNmFmZWU0N2IyMi4uN2MzNDQ5NDU1MGY3MjQ1YjEwZTA3M2I0ODcxOGQxMTlh
MGRiNGQ0MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWNjZXB0
c0ZpcnN0TW91c2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWNjZXB0
c0ZpcnN0TW91c2UubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJLaXRBZ25vc3Rp
Y1Rlc3QuaCIKIAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBOU0FwcGxp
Y2F0aW9uIChUZXN0V2ViS2l0QVBJTlNBcHBsaWNhdGlvbkRldGFpbHMpCiAtICh2b2lkKV9zZXRD
dXJyZW50RXZlbnQ6KE5TRXZlbnQgKilldmVudDsKQEAgLTQ3LDE3ICs0OCwxNyBAQCBwdWJsaWM6
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmlldz4KIHZvaWQgQWNjZXB0c0ZpcnN0TW91c2U6OnJ1blRl
c3QoVmlldyB2aWV3KQogewotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHRO
UyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnZpZXcuZnJhbWUgc3R5bGVN
YXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVk
IGRlZmVyOllFU10pOworICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhb
W05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnZpZXcuZnJhbWUgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6WUVTXSk7CiAgICAgW1t3aW5kb3cuZ2V0KCkgY29udGVudFZpZXddIGFkZFN1YnZp
ZXc6dmlld107CiAKICAgICBDR0Zsb2F0IHZpZXdIZWlnaHQgPSB2aWV3LmJvdW5kcy5zaXplLmhl
aWdodDsKIAogICAgIE5TUG9pbnQgcG9pbnRJbnNpZGVTZWxlY3Rpb24gPSBOU01ha2VQb2ludCg1
MCwgdmlld0hlaWdodCAtIDUwKTsKLSAgICBOU0V2ZW50ICptb3VzZUV2ZW50SW5zaWRlU2VsZWN0
aW9uID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlv
bjpwb2ludEluc2lkZVNlbGVjdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93
TnVtYmVyOlt3aW5kb3cuZ2V0KCkgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJl
cjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXTsKKyAgICBOU0V2ZW50ICptb3VzZUV2ZW50SW5z
aWRlU2VsZWN0aW9uID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVm
dE1vdXNlRG93biBsb2NhdGlvbjpwb2ludEluc2lkZVNlbGVjdGlvbiBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cuZ2V0KCkgd2luZG93TnVtYmVyXSBjb250
ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXTsKICAgICBFWFBF
Q1RfVFJVRShbW3ZpZXcgaGl0VGVzdDpwb2ludEluc2lkZVNlbGVjdGlvbl0gYWNjZXB0c0ZpcnN0
TW91c2U6bW91c2VFdmVudEluc2lkZVNlbGVjdGlvbl0pOwogCiAgICAgTlNQb2ludCBwb2ludE91
dHNpZGVTZWxlY3Rpb24gPSBOU01ha2VQb2ludCg1MCwgdmlld0hlaWdodCAtIDE1MCk7Ci0gICAg
TlNFdmVudCAqbW91c2VFdmVudE91dHNpZGVTZWxlY3Rpb24gPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50T3V0c2lkZVNlbGVjdGlvbiBt
b2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cuZ2V0KCkgd2lu
ZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3Vy
ZToxXTsKKyAgICBOU0V2ZW50ICptb3VzZUV2ZW50T3V0c2lkZVNlbGVjdGlvbiA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246cG9p
bnRPdXRzaWRlU2VsZWN0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6W3dpbmRvdy5nZXQoKSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAg
Y2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwogICAgIEVYUEVDVF9GQUxTRShbW3ZpZXcgaGl0VGVz
dDpwb2ludEluc2lkZVNlbGVjdGlvbl0gYWNjZXB0c0ZpcnN0TW91c2U6bW91c2VFdmVudE91dHNp
ZGVTZWxlY3Rpb25dKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IDhkYWI2Mzc4MDg5Zjc5OTU1MWUx
OGJmN2I3NTBlZDhmMzI0Y2ZjYWQuLmQ5NTc2Mzk0NGM2ZjkyZWM1NGYzNzIyM2E5ZTU2OTg3YzRj
NjIxZTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRN
ZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250
ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgPFdlYktpdC9E
T00uaD4KICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
CiAKIEBpbnRlcmZhY2UgQ29udGV4dE1lbnVDYW5Db3B5VVJMRGVsZWdhdGUgOiBOU09iamVjdCA8
V2ViRnJhbWVMb2FkRGVsZWdhdGU+IHsKQEAgLTYxLDcgKzYyLDcgQEAgc3RhdGljIHZvaWQgY29u
dGV4dE1lbnVDb3B5TGluayhXZWJWaWV3KiB3ZWJWaWV3LCBpbnQgaXRlbUluZGV4KQogICAgIERP
TUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1lbnQgKilbW2Rv
Y3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yQWxsOkAiYSJdIGl0ZW06aXRlbUluZGV4XTsKIAog
ICAgIE5TV2luZG93ICp3aW5kb3cgPSBbd2ViVmlldyB3aW5kb3ddOwotICAgIE5TRXZlbnQgKmV2
ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24KKyAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJp
Z2h0TW91c2VEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb246TlNNYWtlUG9pbnQoYW5jaG9yLm9mZnNldExlZnQgKyBhbmNob3Iub2Zmc2V0V2lkdGgg
LyAyLCB3aW5kb3cuZnJhbWUuc2l6ZS5oZWlnaHQgLSAoYW5jaG9yLm9mZnNldFRvcCArIGFuY2hv
ci5vZmZzZXRIZWlnaHQgLyAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCkBAIC04OSw3ICs5MCw3IEBAIHN0YXRpYyB2
b2lkIGNvbnRleHRNZW51Q29weUxpbmsoV2ViVmlldyogd2ViVmlldywgaW50IGl0ZW1JbmRleCkK
IFRFU1QoV2ViS2l0MSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogewogICAgIFJldGFpblB0cjxX
ZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLDAsODAwLDYwMCkgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7Ci0g
ICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgxMDAsIDEwMCwgODAwLCA2MDApIHN0eWxl
TWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJl
ZCBkZWZlcjpZRVNdKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMo
W1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAw
LCA4MDAsIDYwMCkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgUmV0YWluUHRyPENvbnRl
eHRNZW51Q2FuQ29weVVSTERlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tDb250ZXh0TWVu
dUNhbkNvcHlVUkxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogCiAgICAgW3dpbmRvdy5nZXQoKS5j
b250ZW50VmlldyBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFncy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51RGVmYXVsdEl0ZW1z
SGF2ZVRhZ3MubW0KaW5kZXggOWUwNDdmNmE4NTJiOGU0YWJmMmFjYWRlZTRjZmI0Yzk4ZmZiNTQ2
OC4uNThmMDIxN2JjOGQ2ZjViZjZhNjgwN2Q1MmQ2Zjk5ODJkZjc3NjUwYSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZl
VGFncy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudURl
ZmF1bHRJdGVtc0hhdmVUYWdzLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJQbGF0Zm9y
bVdlYlZpZXcuaCIKICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiBAaW50ZXJmYWNlIENvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3NEZWxlZ2F0
ZSA6IE5TT2JqZWN0IDxXZWJGcmFtZUxvYWREZWxlZ2F0ZT4KIEBlbmQKQEAgLTQ5LDcgKzUwLDcg
QEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogVEVTVChXZWJLaXQxLCBDb250ZXh0TWVudURl
ZmF1bHRJdGVtc0hhdmVUYWdzKQogewogICAgIFJldGFpblB0cjxXZWJWaWV3PiB3ZWJWaWV3ID0g
YWRvcHROUyhbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCkgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7Ci0gICAgUmV0YWluUHRyPE5T
V2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVu
dFJlY3Q6TlNNYWtlUmVjdCgxMDAsIDEwMCwgODAwLCA2MDApIHN0eWxlTWFzazpOU0JvcmRlcmxl
c3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsK
KyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCA4MDAsIDYwMCkgc3R5
bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgUmV0YWluUHRyPENvbnRleHRNZW51RGVmYXVsdEl0
ZW1zSGF2ZVRhZ3NEZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQ29udGV4dE1lbnVEZWZh
dWx0SXRlbXNIYXZlVGFnc0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAKICAgICBbd2luZG93Lmdl
dCgpLmNvbnRlbnRWaWV3IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CkBAIC01OSw3ICs2MCw3
IEBAIFRFU1QoV2ViS2l0MSwgQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFncykKIAogICAg
IFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBv
aW50KDQwMCwgMzAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVy
dmFsU2luY2VSZWZlcmVuY2VEYXRlXQorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gbG9jYXRpb246TlNNYWtl
UG9pbnQoNDAwLCAzMDApIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50
ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbd2luZG93IHdp
bmRvd051bWJlcl0gY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogICAgIE5TVmlldyAqc3ViVmll
dyA9IFt3ZWJWaWV3IGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXTsKICAgICBOU01l
bnUgKm1lbnUgPSBbc3ViVmlldyBtZW51Rm9yRXZlbnQ6ZXZlbnRdOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFt
ZS5tbQppbmRleCBkMzJhYWNlMDM1OGQ4MTM0ZGJjODZjNjIyNzhhOGU2ZjIzYTBjYjRiLi5mZmMw
YzZlNzUzNTBlNTFkNmM2MjkyZTk5NjNjYzhlMDAyYzkyZjQ5IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFt
ZS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIEBpbnRlcmZhY2UgTlNXaW5kb3dDb250cm9sbGVyIChXZWJLaXRGdWxsU2NyZWVu
QWRkaXRpb25zKQogLSAoTlNSZWN0KWluaXRpYWxGcmFtZTsKQEAgLTE1MCwxMiArMTUxLDEyIEBA
IHZvaWQgRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWU6OnNlbmRNb3VzZURvd25FdmVudChXS1Zp
ZXcgKndrVmlldywgTlNFdmVudCAqZXZlCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmlldz4KIHZvaWQg
RnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWU6OnJ1blRlc3QoVmlldyB2aWV3KQogewotICAgIFJl
dGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0OnZpZXcuZnJhbWUgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01h
c2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgUmV0YWlu
UHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6dmlldy5mcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJs
ZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFt3aW5k
b3cuZ2V0KCkuY29udGVudFZpZXcgYWRkU3Vidmlldzp2aWV3XTsKIAogICAgIHNldFBhZ2VTY2Fs
ZSh2aWV3LCAyKTsKIAotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmll
ckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1i
ZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOworICAg
IE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4
dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogCiAgICAgaXNXYWl0
aW5nRm9yUGFnZVNpZ25hbFRvQ29udGludWUgPSB0cnVlOwogICAgIGRpZEdldFBhZ2VTaWduYWxU
b0NvbnRpbnVlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9NZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL01lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tCmluZGV4IDhlNGI0Zjc5MWE5YWYwYTdm
ZTJiNzZmZWU2ZTkwM2I4MTBjMWYwYjYuLjIzMjA3NDBjNWJhNzRlNzdlMzUwZjc1NmY2ZGZkYTI5
M2M4YzhiYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lbnVU
eXBlc0Zvck1vdXNlRXZlbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L01lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDx3dGYvQXV0b2RyYWlu
ZWRQb29sLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewogCkBAIC02Myw3NyArNjQsNzcgQEAgc3RhdGljIHZvaWQgYnVpbGRBbmRQZXJmb3JtVGVz
dChOU0V2ZW50VHlwZSBidXR0b25FdmVudCwgTlNFdmVudE1vZGlmaWVyRmxhZ3MgbW8KIAogVEVT
VChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yTm9ybWFsTGVmdENsaWNrKQogewotICAgIGJ1aWxk
QW5kUGVyZm9ybVRlc3QoTlNMZWZ0TW91c2VEb3duLCAwLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBO
U01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd24sIDAsIFdlYkNvcmU6OkxlZnRCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKIH0KIAog
VEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yTm9ybWFsUmlnaHRDbGljaykKIHsKLSAgICBi
dWlsZEFuZFBlcmZvcm1UZXN0KE5TUmlnaHRNb3VzZURvd24sIDAsIFdlYkNvcmU6OlJpZ2h0QnV0
dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNF
dmVudFR5cGVSaWdodE1vdXNlRG93biwgMCwgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5
cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvck5vcm1h
bE1pZGRsZUNsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNPdGhlck1vdXNlRG93
biwgMCwgV2ViQ29yZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRB
bmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duLCAwLCBXZWJDb3JlOjpNaWRk
bGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0
dG9uRm9yQ29udHJvbExlZnRDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TTGVm
dE1vdXNlRG93biwgTlNDb250cm9sS2V5TWFzaywgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51
VHlwZUNvbnRleHRNZW51KTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlTGVm
dE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wsIFdlYkNvcmU6OkxlZnRCdXR0
b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1
dHRvbkZvckNvbnRyb2xSaWdodENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNS
aWdodE1vdXNlRG93biwgTlNDb250cm9sS2V5TWFzaywgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5T
TWVudVR5cGVDb250ZXh0TWVudSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCwgV2ViQ29yZTo6Umln
aHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVu
dUFuZEJ1dHRvbkZvckNvbnRyb2xNaWRkbGVDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1U
ZXN0KE5TT3RoZXJNb3VzZURvd24sIE5TQ29udHJvbEtleU1hc2ssIFdlYkNvcmU6Ok1pZGRsZUJ1
dHRvbiwgTlNNZW51VHlwZU5vbmUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5
cGVPdGhlck1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wsIFdlYkNvcmU6Ok1p
ZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogICAgIAogVEVTVChXZWJLaXQxLCBNZW51
QW5kQnV0dG9uRm9yU2hpZnRMZWZ0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChO
U0xlZnRNb3VzZURvd24sIE5TU2hpZnRLZXlNYXNrLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01l
bnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCwgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNN
ZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JTaGlmdFJp
Z2h0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU1JpZ2h0TW91c2VEb3duLCBO
U1NoaWZ0S2V5TWFzaywgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVu
dSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duLCBO
U0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQsIFdlYkNvcmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBl
Q29udGV4dE1lbnUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JTaGlmdE1p
ZGRsZUNsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNPdGhlck1vdXNlRG93biwg
TlNTaGlmdEtleU1hc2ssIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwor
ICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVPdGhlck1vdXNlRG93biwgTlNFdmVu
dE1vZGlmaWVyRmxhZ1NoaWZ0LCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25l
KTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQ29tbWFuZExlZnRDbGljaykK
IHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TTGVmdE1vdXNlRG93biwgTlNDb21tYW5kS2V5
TWFzaywgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOworICAgIGJ1aWxkQW5k
UGVyZm9ybVRlc3QoTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFn
Q29tbWFuZCwgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNU
KFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JDb21tYW5kUmlnaHRDbGljaykKIHsKLSAgICBidWls
ZEFuZFBlcmZvcm1UZXN0KE5TUmlnaHRNb3VzZURvd24sIE5TQ29tbWFuZEtleU1hc2ssIFdlYkNv
cmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOworICAgIGJ1aWxkQW5kUGVy
Zm9ybVRlc3QoTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bW1hbmQsIFdlYkNvcmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOwogfQog
CiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JDb21tYW5kTWlkZGxlQ2xpY2spCiB7Ci0g
ICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU090aGVyTW91c2VEb3duLCBOU0NvbW1hbmRLZXlNYXNr
LCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFuZFBl
cmZvcm1UZXN0KE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdD
b21tYW5kLCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKIH0KIAogVEVT
VChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQWx0TGVmdENsaWNrKQogewotICAgIGJ1aWxkQW5k
UGVyZm9ybVRlc3QoTlNMZWZ0TW91c2VEb3duLCBOU0FsdGVybmF0ZUtleU1hc2ssIFdlYkNvcmU6
OkxlZnRCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5T
RXZlbnRUeXBlTGVmdE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbiwgV2ViQ29y
ZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVB
bmRCdXR0b25Gb3JBbHRSaWdodENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNS
aWdodE1vdXNlRG93biwgTlNBbHRlcm5hdGVLZXlNYXNrLCBXZWJDb3JlOjpSaWdodEJ1dHRvbiwg
TlNNZW51VHlwZUNvbnRleHRNZW51KTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24sIFdlYkNvcmU6OlJp
Z2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOwogfQogCiBURVNUKFdlYktpdDEsIE1l
bnVBbmRCdXR0b25Gb3JBbHRNaWRkbGVDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0
KE5TT3RoZXJNb3VzZURvd24sIE5TQWx0ZXJuYXRlS2V5TWFzaywgV2ViQ29yZTo6TWlkZGxlQnV0
dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlw
ZU90aGVyTW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uLCBXZWJDb3JlOjpNaWRk
bGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVV0aWxpdGllc01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvbWFjL1BsYXRmb3JtVXRpbGl0aWVzTWFjLm1tCmluZGV4IDljNjM4ZmY0NDQyYWI0MDQxNDI4
ZjA1YjM3Njg5NmM4YjFkOWM1MjkuLmEwYzQyZTc4OWI0NDBjZDgxM2I2N2ZkMjM2ZTlhODlhNmVm
MjkzMDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtVXRpbGl0
aWVzTWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtVXRpbGl0aWVz
TWFjLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVzcG9uc2VO
Uy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CisjaW5jbHVkZSA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25z
Lmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIG5hbWVzcGFjZSBVdGlsIHsKQEAgLTYy
LDcgKzYzLDcgQEAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IE1JTUVUeXBlRm9yV0tVUkxSZXNw
b25zZShXS1VSTFJlc3BvbnNlUmVmIHdrUmVzcG9uc2UpCiAKIGJvb2wgaXNLZXlEb3duKFdLTmF0
aXZlRXZlbnRQdHIgZXZlbnQpCiB7Ci0gICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0tleURv
d247CisgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd247CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFV0aWwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3Jt
V2ViVmlld01hYy5tbQppbmRleCBhZDM1ZjU4NmNmNzIzNTlhM2I3ZTkxMzZmOWViZWJhMTYyMmY3
YzdkLi4yZTM5Y2E0YTRjODFhOGFlNjczOGY1MGU3Y2EyMTUzMjM0MDdkNzdmIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tSZXRhaW5Q
dHIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBBY3RpdmVP
ZmZzY3JlZW5XaW5kb3cgOiBOU1dpbmRvdwogQGVuZApAQCAtNTMsNyArNTQsNyBAQCB2b2lkIFBs
YXRmb3JtV2ViVmlldzo6aW5pdGlhbGl6ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3Vy
YXRpb24sIENsYXNzIHdrVgogICAgIFttX3ZpZXcgc2V0V2luZG93T2NjbHVzaW9uRGV0ZWN0aW9u
RW5hYmxlZDpOT107CiAKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IE5TT2Zmc2V0UmVjdChyZWN0
LCAtMTAwMDAsIFsoTlNTY3JlZW4gKilbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6
MF0gZnJhbWVdLnNpemUuaGVpZ2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKLSAgICBt
X3dpbmRvdyA9IFtbQWN0aXZlT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRS
ZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpO
U0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CisgICAgbV93aW5kb3cgPSBbW0FjdGl2
ZU9mZnNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0
eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOllFU107CiAgICAgW21fd2luZG93IHNldENvbG9yU3BhY2U6W1tOU1Nj
cmVlbiBtYWluU2NyZWVuXSBjb2xvclNwYWNlXV07CiAgICAgW1ttX3dpbmRvdyBjb250ZW50Vmll
d10gYWRkU3VidmlldzptX3ZpZXddOwogICAgIFttX3dpbmRvdyBvcmRlckJhY2s6bmlsXTsKQEAg
LTEyMSw3ICsxMjIsNyBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQogCiB2b2lkIFBs
YXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKCkKIHsKLSAgICBOU0V2ZW50
ICpldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlEb3duCisgICAgTlNFdmVu
dCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93bgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2lu
dCg1LCA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczow
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOkdldEN1cnJl
bnRFdmVudFRpbWUoKQpAQCAtMTM0LDcgKzEzNSw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpz
aW11bGF0ZVNwYWNlYmFyS2V5UHJlc3MoKQogCiAgICAgW21fdmlldyBrZXlEb3duOmV2ZW50XTsK
IAotICAgIGV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgZXZl
bnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTE1MCw3ICsxNTEsNyBAQCB2
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKCkKIAogdm9pZCBQ
bGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlUmlnaHRDbGljayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5
KQogewotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
UmlnaHRNb3VzZURvd24KKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoeCwgeSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCkBA
IC0xNjMsNyArMTY0LDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlUmlnaHRDbGlj
ayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQogCiAgICAgW21fdmlldyByaWdodE1vdXNlRG93bjpl
dmVudF07CiAKLSAgICBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0
TW91c2VVcAorICAgIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlUmlnaHRNb3VzZVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246
TlNNYWtlUG9pbnQoeCwgeSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFn
czowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2
ZW50VGltZSgpCkBAIC0xNzksNyArMTgwLDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVs
YXRlUmlnaHRDbGljayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQogICAgIAogdm9pZCBQbGF0Zm9y
bVdlYlZpZXc6OnNpbXVsYXRlTW91c2VNb3ZlKHVuc2lnbmVkIHgsIHVuc2lnbmVkIHkpCiB7ICAg
Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3Vz
ZU1vdmVkCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb246TlNNYWtlUG9pbnQoeCwgeSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZp
ZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3Vy
cmVudEV2ZW50VGltZSgpCkBAIC0xOTcsMzEgKzE5OCwzMSBAQCBzdGF0aWMgTlNFdmVudFR5cGUg
ZXZlbnRUeXBlRm9yQnV0dG9uKFdLRXZlbnRNb3VzZUJ1dHRvbiBidXR0b24pCiB7CiAgICAgc3dp
dGNoIChidXR0b24pIHsKICAgICBjYXNlIGtXS0V2ZW50TW91c2VCdXR0b25MZWZ0QnV0dG9uOgot
ICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOworICAgICAgICByZXR1cm4gTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duOwogICAgIGNhc2Uga1dLRXZlbnRNb3VzZUJ1dHRvblJpZ2h0QnV0dG9u
OgotICAgICAgICByZXR1cm4gTlNSaWdodE1vdXNlRG93bjsKKyAgICAgICAgcmV0dXJuIE5TRXZl
bnRUeXBlUmlnaHRNb3VzZURvd247CiAgICAgY2FzZSBrV0tFdmVudE1vdXNlQnV0dG9uTWlkZGxl
QnV0dG9uOgotICAgICAgICByZXR1cm4gTlNPdGhlck1vdXNlRG93bjsKKyAgICAgICAgcmV0dXJu
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd247CiAgICAgY2FzZSBrV0tFdmVudE1vdXNlQnV0dG9u
Tm9CdXR0b246Ci0gICAgICAgIHJldHVybiBOU0xlZnRNb3VzZURvd247CisgICAgICAgIHJldHVy
biBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAgICAgfQogCi0gICAgcmV0dXJuIE5TTGVmdE1v
dXNlRG93bjsKKyAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwogfQogCiBzdGF0
aWMgTlNFdmVudE1vZGlmaWVyRmxhZ3MgbW9kaWZpZXJGbGFnc0ZvcldLTW9kaWZpZXJzKFdLRXZl
bnRNb2RpZmllcnMgbW9kaWZpZXJzKQogewogICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIHJldHVy
blZhbCA9IDA7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzU2hpZnRLZXkp
Ci0gICAgICAgIHJldHVyblZhbCB8PSBOU1NoaWZ0S2V5TWFzazsKKyAgICAgICAgcmV0dXJuVmFs
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICAgICBpZiAobW9kaWZpZXJzICYga1dLRXZl
bnRNb2RpZmllcnNDb250cm9sS2V5KQotICAgICAgICByZXR1cm5WYWwgfD0gTlNDb250cm9sS2V5
TWFzazsKKyAgICAgICAgcmV0dXJuVmFsIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwog
ICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc0FsdEtleSkKLSAgICAgICAgcmV0
dXJuVmFsIHw9IE5TQWx0ZXJuYXRlS2V5TWFzazsKKyAgICAgICAgcmV0dXJuVmFsIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdPcHRpb247CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZp
ZXJzTWV0YUtleSkKLSAgICAgICAgcmV0dXJuVmFsIHw9IE5TQ29tbWFuZEtleU1hc2s7CisgICAg
ICAgIHJldHVyblZhbCB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKICAgICBpZiAobW9k
aWZpZXJzICYga1dLRXZlbnRNb2RpZmllcnNDYXBzTG9ja0tleSkKLSAgICAgICAgcmV0dXJuVmFs
IHw9IE5TQWxwaGFTaGlmdEtleU1hc2s7CisgICAgICAgIHJldHVyblZhbCB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnQ2Fwc0xvY2s7CiAKICAgICByZXR1cm4gcmV0dXJuVmFsOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0KaW5kZXggMWE2NjY1YmYyYmI4NjBl
MWU4ZDJkYWVkOTZjOTllOWM2OWE2YzYyYi4uODkzYjFiYzJmYjcyYzJiZmIyOWU3OWYyNTA0ODAy
ZjExNjVhYWRmOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2Vi
Vmlld01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFj
Lm1tCkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0UHJpdmF0ZS5oPgog
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1w
b3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGltcGxl
bWVudGF0aW9uIFRlc3RNZXNzYWdlSGFuZGxlciB7CiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeTxO
U1N0cmluZyAqLCBkaXNwYXRjaF9ibG9ja190PiAqX21lc3NhZ2VIYW5kbGVyczsKQEAgLTcwLDIx
ICs3MSwxMyBAQCBzdGF0aWMgaW50IGdFdmVudE51bWJlciA9IDE7CiAjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDMKIE5TRXZlbnRNYXNrIF9fc2ltdWxhdGVkX2Zv
cmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayhpZCBzZWxmLCBTRUwgX2NtZCkKIHsKLSNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIHJldHVybiBOU0V2
ZW50TWFza1ByZXNzdXJlIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEb3duIHwgTlNFdmVudE1hc2tM
ZWZ0TW91c2VVcCB8IE5TRXZlbnRNYXNrTGVmdE1vdXNlRHJhZ2dlZDsKLSNlbHNlCi0gICAgcmV0
dXJuIE5TRXZlbnRNYXNrUHJlc3N1cmUgfCAoMSA8PCBOU0xlZnRNb3VzZURvd24pIHwgKDEgPDwg
TlNMZWZ0TW91c2VVcCkgfCAoMSA8PCBOU0xlZnRNb3VzZURyYWdnZWQpOwotI2VuZGlmCiB9CiAj
ZW5kaWYKIAogLSAodm9pZClfbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0
ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUKIHsKLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIE5TRXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBl
ID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwotI2Vsc2UKLSAgICBOU0V2ZW50VHlwZSBtb3Vz
ZUV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93bjsKLSNlbmRpZgogCiAgICAgTlNFdmVudE1hc2sg
bW9kaWZpZXJGbGFncyA9IDA7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEwMDMKQEAgLTE1Nyw3ICsxNTAsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFt
ZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpbwogCiAt
ICh2b2lkKV9zZXRVcFRlc3RXaW5kb3c6KE5TUmVjdClmcmFtZQogewotICAgIF9ob3N0V2luZG93
ID0gW1tUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpm
cmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0
b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOworICAgIF9ob3N0V2luZG93ID0gW1tUZXN0V0tXZWJWaWV3
SG9zdFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNX
aW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpOT107CiAgICAgW19ob3N0V2luZG93IHNldEZyYW1lT3JpZ2luOk5TTWFrZVBvaW50KDAs
IDApXTsKICAgICBbW19ob3N0V2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OnNlbGZdOwog
ICAgIFtfaG9zdFdpbmRvdyBzZXRJc1Zpc2libGU6WUVTXTsKQEAgLTE5MywxMyArMTg2LDggQEAg
LSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5h
bWUKIAogLSAodm9pZCl0eXBlQ2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlciB7CiAgICAgTlNTdHJp
bmcgKmNoYXJhY3RlckFzU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlYyIg
LCBjaGFyYWN0ZXJdOwotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MjAwCiAgICAgTlNFdmVudFR5cGUga2V5RG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5RG93
bjsKICAgICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7Ci0j
ZWxzZQotICAgIE5TRXZlbnRUeXBlIGtleURvd25FdmVudFR5cGUgPSBOU0tleURvd247Ci0gICAg
TlNFdmVudFR5cGUga2V5VXBFdmVudFR5cGUgPSBOU0tleVVwOwotI2VuZGlmCiAgICAgW3NlbGYg
a2V5RG93bjpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleURvd25FdmVudFR5cGUgbG9jYXRp
b246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRU
aW1lKCkgd2luZG93TnVtYmVyOl9ob3N0V2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBj
aGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpj
aGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKICAgICBb
c2VsZiBrZXlVcDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleVVwRXZlbnRUeXBlIGxvY2F0
aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50
VGltZSgpIHdpbmRvd051bWJlcjpfaG9zdFdpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwg
Y2hhcmFjdGVyczpjaGFyYWN0ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6
Y2hhcmFjdGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVyXV07CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQppbmRleCBj
YWZjM2VkZGE5YmY4NWVlMTA2NWFmZGUwODlmMTY0OTM1NjQxZTZiLi5kNWJjZGQ3OWRiNWNjNTA1
Njg0NzNhZWU5N2RhZTIzMzhkNDQwMzE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
bWFjL0V2ZW50U2VuZGVyUHJveHkubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYktp
dC9XS1BhZ2VQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChEZXRhaWxzKQogLSAo
dm9pZClfc2V0Q3VycmVudEV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CkBAIC0yMDcsMzMgKzIwOCwz
MyBAQCBzdHJ1Y3QgS2V5TWFwcGluZ0VudHJ5IHsKIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5
cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3Rpb24p
CiB7CiAgICAgc3dpdGNoIChidXR0b24pIHsKLSAgICAgICAgY2FzZSBMZWZ0TW91c2VCdXR0b246
Ci0gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgICAgICAgICAgICAgIGNhc2UgTW91
c2VEb3duOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOwotICAg
ICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5T
TGVmdE1vdXNlVXA7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBOU0xlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIGNhc2UgUmlnaHRNb3VzZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9u
KSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBOU1JpZ2h0TW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TUmlnaHRNb3VzZVVwOwotICAgICAgICAgICAg
ICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNSaWdo
dE1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBOU090aGVyTW91c2VEb3duOwotICAgICAgICAgICAg
ICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3RoZXJNb3Vz
ZVVwOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gTlNPdGhlck1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KKyAgICBjYXNl
IExlZnRNb3VzZUJ1dHRvbjoKKyAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICAgICAgY2Fz
ZSBNb3VzZURvd246CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3du
OworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDsKKyAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAgICAgICByZXR1
cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICB9CisgICAgY2FzZSBSaWdo
dE1vdXNlQnV0dG9uOgorICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1v
dXNlRG93bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOwor
ICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdo
dE1vdXNlVXA7CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJu
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KKyAgICBkZWZhdWx0Ogor
ICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAg
ICAgICAgIHJldHVybiBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOworICAgICAgICBjYXNlIE1v
dXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7CisgICAg
ICAgIGNhc2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KICAgICB9CiAgICAgYXNzZXJ0KDApOwogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxOU0V2ZW50VHlwZT4oMCk7CkBAIC0yNDMsMTUgKzI0NCwxNSBAQCBz
dGF0aWMgaW50IGJ1aWxkTW9kaWZpZXJGbGFncyhXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycykK
IHsKICAgICBpbnQgZmxhZ3MgPSAwOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlm
aWVyc0NvbnRyb2xLZXkpCi0gICAgICAgIGZsYWdzIHw9IE5TQ29udHJvbEtleU1hc2s7CisgICAg
ICAgIGZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwogICAgIGlmIChtb2RpZmll
cnMgJiBrV0tFdmVudE1vZGlmaWVyc1NoaWZ0S2V5KQotICAgICAgICBmbGFncyB8PSBOU1NoaWZ0
S2V5TWFzazsKKyAgICAgICAgZmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogICAg
IGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc0FsdEtleSkKLSAgICAgICAgZmxhZ3Mg
fD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICBmbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc01ldGFLZXkp
Ci0gICAgICAgIGZsYWdzIHw9IE5TQ29tbWFuZEtleU1hc2s7CisgICAgICAgIGZsYWdzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1v
ZGlmaWVyc0NhcHNMb2NrS2V5KQotICAgICAgICBmbGFncyB8PSBOU0FscGhhU2hpZnRLZXlNYXNr
OworICAgICAgICBmbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2s7CiAgICAgcmV0
dXJuIGZsYWdzOwogfQogCkBAIC0zNTEsNyArMzUyLDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5
OjpzZW5kTW91c2VEb3duVG9TdGFydFByZXNzdXJlRXZlbnRzKCkKIHsKICAgICB1cGRhdGVDbGlj
a0NvdW50Rm9yQnV0dG9uKDApOwogCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duCiAgICAgICAg
IGxvY2F0aW9uOk5TTWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55KQogICAgICAg
ICBtb2RpZmllckZsYWdzOk5TRXZlbnRNYXNrUHJlc3N1cmUKICAgICAgICAgdGltZXN0YW1wOmFi
c29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC00MTUsNyArNDE2
LDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZUZvcmNlQ2xpY2soKQogICAgIFJldGFp
blB0cjxOU0V2ZW50PiBwcmVGb3JjZUNsaWNrID0gcHJlc3N1cmVDaGFuZ2VFdmVudCgxLCBQcmVz
c3VyZUNoYW5nZURpcmVjdGlvbjo6SW5jcmVhc2luZyk7CiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+
IGZvcmNlQ2xpY2sgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDIsIFByZXNzdXJlQ2hhbmdlRGlyZWN0
aW9uOjpJbmNyZWFzaW5nKTsKICAgICBSZXRhaW5QdHI8TlNFdmVudD4gcmVsZWFzaW5nUHJlc3N1
cmUgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDEsIFByZXNzdXJlQ2hhbmdlRGlyZWN0aW9uOjpEZWNy
ZWFzaW5nKTsKLSAgICBOU0V2ZW50ICptb3VzZVVwID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TTGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICptb3VzZVVwID0gW05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAgICAgbG9jYXRpb246TlNN
YWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpCiAgICAgICAgIG1vZGlmaWVyRmxh
Z3M6MAogICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRF
dmVudFRpbWUoKSkKQEAgLTQ1Miw3ICs0NTMsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN0
YXJ0QW5kQ2FuY2VsTW91c2VGb3JjZUNsaWNrKCkKICAgICBSZXRhaW5QdHI8TlNFdmVudD4gYmVn
aW5QcmVzc3VyZSA9IGJlZ2luUHJlc3N1cmVFdmVudCgxKTsKICAgICBSZXRhaW5QdHI8TlNFdmVu
dD4gaW5jcmVhc2luZ1ByZXNzdXJlID0gcHJlc3N1cmVDaGFuZ2VFdmVudCgxLCBQcmVzc3VyZUNo
YW5nZURpcmVjdGlvbjo6SW5jcmVhc2luZyk7CiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+IHJlbGVh
c2luZ1ByZXNzdXJlID0gcHJlc3N1cmVDaGFuZ2VFdmVudCgxLCBQcmVzc3VyZUNoYW5nZURpcmVj
dGlvbjo6RGVjcmVhc2luZyk7Ci0gICAgTlNFdmVudCAqbW91c2VVcCA9IFtOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgTlNFdmVudCAqbW91c2VVcCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55KQogICAgICAgICBt
b2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0YW1wOmFic29sdXRlVGltZUZvckV2ZW50VGlt
ZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC02MDIsNyArNjAzLDcgQEAgdm9pZCBFdmVudFNlbmRl
clByb3h5Ojptb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkpCiAgICAgTlNQb2ludCBwb3Np
dGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDpOU01ha2VQb2ludCh4LCB5KSB0b1ZpZXc6bmlsXTsK
ICAgICBtX3Bvc2l0aW9uLnggPSBwb3NpdGlvbi54OwogICAgIG1fcG9zaXRpb24ueSA9IHBvc2l0
aW9uLnk7Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
KG1fbGVmdE1vdXNlQnV0dG9uRG93biA/IE5TTGVmdE1vdXNlRHJhZ2dlZCA6IE5TTW91c2VNb3Zl
ZCkKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobV9s
ZWZ0TW91c2VCdXR0b25Eb3duID8gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkIDogTlNFdmVu
dFR5cGVNb3VzZU1vdmVkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxvY2F0aW9uOnBvc2l0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
ZGlmaWVyRmxhZ3M6MCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp
bWVzdGFtcDphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQpAQCAt
Nzk4LDE2ICs3OTksMTYgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5n
UmVmIGtleSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIHVuc2kKICAgICBpbnQgbW9kaWZp
ZXJGbGFncyA9IDA7CiAKICAgICBpZiAoW2NoYXJhY3RlciBsZW5ndGhdID09IDEgJiYgW2NoYXJh
Y3RlciBjaGFyYWN0ZXJBdEluZGV4OjBdID49ICdBJyAmJiBbY2hhcmFjdGVyIGNoYXJhY3RlckF0
SW5kZXg6MF0gPD0gJ1onKSB7Ci0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1h
c2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0Owog
ICAgICAgICBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnMgPSBbY2hhcmFjdGVyIGxvd2VyY2Fz
ZVN0cmluZ107CiAgICAgfQogCiAgICAgbW9kaWZpZXJGbGFncyB8PSBidWlsZE1vZGlmaWVyRmxh
Z3MobW9kaWZpZXJzKTsKIAogICAgIGlmIChrZXlMb2NhdGlvbiA9PSAweDAzIC8qRE9NX0tFWV9M
T0NBVElPTl9OVU1QQUQqLykKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU051bWVyaWNQYWRL
ZXlNYXNrOworICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1l
cmljUGFkOwogCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBl
Ok5TS2V5RG93bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5T
TWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOm1v
ZGlmaWVyRmxhZ3MKICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDphYnNvbHV0ZVRp
bWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQpAQCAtODIyLDcgKzgyMyw3IEBAIHZv
aWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiBrZXksIFdLRXZlbnRNb2Rp
ZmllcnMgbW9kaWZpZXJzLCB1bnNpCiAgICAgW1ttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmll
dygpLT5wbGF0Zm9ybVdpbmRvdygpIGZpcnN0UmVzcG9uZGVyXSBrZXlEb3duOmV2ZW50XTsKICAg
ICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpuaWxdOwogCi0gICAgZXZlbnQgPSBbTlNFdmVudCBr
ZXlFdmVudFdpdGhUeXBlOk5TS2V5VXAKKyAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246
TlNNYWtlUG9pbnQoNSwgNSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6
bW9kaWZpZXJGbGFncwogICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOmFic29sdXRl
VGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC05MTgsNyArOTE5LDcgQEAg
dm9pZCBFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyhpbnQgeCwgaW50IHksIGludAogICAgIFJldGFpblB0cjxFdmVudFNlbmRlclN5bnRoZXRp
Y0V2ZW50PiBldmVudCA9IGFkb3B0TlMoW1tFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IGFsbG9j
XSBpbml0XSk7CiAKICAgICAvLyAibWF5QmVnaW4iIGEgc3dpcGUgaXMgYWN0dWFsbHkgYSBzY3Jv
bGwgd2hlZWwgZXZlbnQuCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl90eXBlID0gKHBoYXNlID09
IDEyOCkgPyBOU1Njcm9sbFdoZWVsIDogTlNFdmVudFR5cGVHZXN0dXJlOworICAgIGV2ZW50LT5f
ZXZlbnRTZW5kZXJfdHlwZSA9IChwaGFzZSA9PSAxMjgpID8gTlNFdmVudFR5cGVTY3JvbGxXaGVl
bCA6IE5TRXZlbnRUeXBlR2VzdHVyZTsKICAgICBldmVudC0+X2V2ZW50U2VuZGVyX3N1YnR5cGUg
PSA2OyAvLyBrSU9ISURFdmVudFR5cGVTY3JvbGwKICAgICBldmVudC0+X2V2ZW50U2VuZGVyX2xv
Y2F0aW9uSW5XaW5kb3cgPSBOU01ha2VQb2ludChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSk7
CiAgICAgZXZlbnQtPl9ldmVudFNlbmRlcl9sb2NhdGlvbiA9IChbbV90ZXN0Q29udHJvbGxlci0+
bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSBjb252ZXJ0UmVjdFRvU2NyZWVuOk5TTWFr
ZVJlY3QobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnksIDEsIDEpXS5vcmlnaW4pOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IGZi
N2NkODVmZjcxN2MzMzNjNzEwYjNhMDU5MDQ1MmY5ZjA0YTJjYmUuLjgzMzg1MDJkNDhiYzgwYTMy
MDc3OGExY2IxMGFkZWJlY2FiZDZmNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgPFdl
YktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3
UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9B
cHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBXS19BUElfRU5BQkxFRAog
QGludGVyZmFjZSBXS1dlYlZpZXcgKERldGFpbHMpCkBAIC0xNDUsNyArMTQ2LDcgQEAgUGxhdGZv
cm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tXZWJWaWV3Q29uZmlndXJhdGlvbiogY29uZmln
dXJhdGlvbiwgY29uc3QgVGUKIAogICAgIE5TU2NyZWVuICpmaXJzdFNjcmVlbiA9IFtbTlNTY3Jl
ZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXTsKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IG1f
b3B0aW9ucy5zaG91bGRTaG93V2ViVmlldyA/IE5TT2Zmc2V0UmVjdChyZWN0LCAxMDAsIDEwMCkg
OiBOU09mZnNldFJlY3QocmVjdCwgLTEwMDAwLCBbZmlyc3RTY3JlZW4gZnJhbWVdLnNpemUuaGVp
Z2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKLSAgICBtX3dpbmRvdyA9IFtbV2ViS2l0
VGVzdFJ1bm5lcldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0
eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6KE5TQmFja2luZ1N0b3JlVHlw
ZSlfTlNCYWNraW5nU3RvcmVVbmJ1ZmZlcmVkIGRlZmVyOllFU107CisgICAgbV93aW5kb3cgPSBb
W1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93
UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6KE5TQmFj
a2luZ1N0b3JlVHlwZSlfTlNCYWNraW5nU3RvcmVVbmJ1ZmZlcmVkIGRlZmVyOllFU107CiAgICAg
bV93aW5kb3cucGxhdGZvcm1XZWJWaWV3ID0gdGhpczsKICAgICBbbV93aW5kb3cgc2V0Q29sb3JT
cGFjZTpbZmlyc3RTY3JlZW4gY29sb3JTcGFjZV1dOwogICAgIFttX3dpbmRvdyBzZXRDb2xsZWN0
aW9uQmVoYXZpb3I6TlNXaW5kb3dDb2xsZWN0aW9uQmVoYXZpb3JTdGF0aW9uYXJ5XTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggY2Y4
N2U2OWVjYTg4NzhmODQ1ZGIwMjBhMjUzOWVjMDhkNThlNTQ4ZS4uNWQxZGQxZTgyNzg3MzQxODRh
MTMyMzJmYmFhM2E4ODJmNDk2ZmE2MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9t
YWMvVGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbXBvcnQgPFdlYktp
dC9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8bWFjaC1v
L2R5bGQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgTlNT
b3VuZCAoKQogKyAodm9pZClfc2V0QWxlcnRUeXBlOihOU1VJbnRlZ2VyKWFsZXJ0VHlwZTsKQEAg
LTEwMyw3ICsxMDQsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVU
b0NvbnNpc3RlbnRWYWx1ZXMoKQogewogICAgIGNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZh
bHVlcygpOwogCi0gICAgd2hpbGUgKFtOU0FwcCBuZXh0RXZlbnRNYXRjaGluZ01hc2s6TlNFdmVu
dE1hc2tHZXN0dXJlIHwgTlNTY3JvbGxXaGVlbE1hc2sgdW50aWxEYXRlOm5pbCBpbk1vZGU6TlNE
ZWZhdWx0UnVuTG9vcE1vZGUgZGVxdWV1ZTpZRVNdKSB7CisgICAgd2hpbGUgKFtOU0FwcCBuZXh0
RXZlbnRNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tHZXN0dXJlIHwgTlNFdmVudFR5cGVTY3JvbGxX
aGVlbCB1bnRpbERhdGU6bmlsIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllF
U10pIHsKICAgICAgICAgLy8gQ2xlYXIgb3V0IChhbmQgaWdub3JlKSBhbnkgcGVuZGluZyBnZXN0
dXJlIGFuZCBzY3JvbGwgd2hlZWwgZXZlbnRzLgogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294133</attachid>
            <date>2016-11-07 21:43:02 -0800</date>
            <delta_ts>2016-11-08 09:21:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161107213854.patch</filename>
            <type>text/plain</type>
            <size>235973</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLmRjZjc0OGFjZDgyN2I2ODI5NmM1NWI3MjljMjI5OTE1YjhiODFm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1
ZXMuCisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aDoKKwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+
CiAKICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmQzMTMxZjMw
NmEwMjc1YmE1MmE1YzAyNjY2YTEzZWMzOTc5MTBmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVz
aW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNv
bXB1dGVkQXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3By
b2Nlc3NFbGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVu
dElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFt
ZUV2ZW50VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9t
Q3Vyc29yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2
ZW50TG9vcE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlw
ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgt
W1dlYkNvcmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6
ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29u
dGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgt
W1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2Fk
XSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAg
ICAgKFdlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQw
Nzc5Y2E1NjAyNzcxNTkwM2Q1OGU3MS4uYjUyNDUxY2E0MjEwZGU0ODJiZGI0MmMzMDAzMmNjNDZk
ZjEzNzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2lu
ZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBL
aXQgZW51bWVyYXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25X
aW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICog
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21t
YW5kTW9kaWZpZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6
OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRl
KToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0
aW9uYXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAg
ICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBX
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hs
aWdodCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURv
d246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAg
IChjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3Zl
ZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9z
ZXRNb3VzZURvd25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNr
TG9va0V2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50
SXNQYXJ0T2ZDbGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3Vz
ZW92ZXJXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IG1vdXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21t
YW5kczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dl
YlBERlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVu
dFdpdGhGdW5jdGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9i
dWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQ
b3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgYXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1p
dCBjb21wb3NpdGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5h
OGNlN2ZlNDExM2VhYTM2MWVhNWY5YzA4MmQ5OTY5Nzk2N2VkZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9u
IHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hp
bGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpjbGlja0NvdW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OnRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojpp
c0tleVVwRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9t
YXRpYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRU
b29sVGlwTW91c2VFbnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFu
ZHNGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1
aXZhbGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1v
ZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVu
dVdpdGhJdGVtcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAg
ICAoV2ViS2l0Ojptb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
Z2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGln
bm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydEltYWdlVG9CaXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90
ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10
by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFp
bHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYu
Ljk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIv
U291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAt
NTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21w
b3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5T
Q29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
IHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxD
b250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5p
ID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlk
ZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBl
IE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0
IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29u
c3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1h
c2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdz
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBj
b25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1No
aWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k
aWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlw
ZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFn
c0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0g
TlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBO
U0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNF
dmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMg
Y29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJl
ZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNN
b3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5
cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBA
IC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxp
Z25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owog
c3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0
VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25t
ZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsK
K3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVk
ZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRl
ZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IDk0ZmM3ZWQ5OTVjYzQwZDg2ZjRjMDI4MjMy
ZjQxMzQyMGJjMDg4ZGUuLjkyOTNhOTc4YzE5YjhjMDMzMmU1NTQ1ZWQ3OTgxZDA4ZmJiMjRmMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAg
LTY2LDYgKzY2LDEwIEBACiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgogI2ltcG9ydCA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTExMywxMCArMTE3
LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJRm91bmRhdGlvbiwgTlNUZXh0VGFiKQogI2RlZmluZSBQ
bGF0Zm9ybUZvbnQgICAgICAgICAgICAgICAgTlNGb250CiAjZGVmaW5lIFBsYXRmb3JtRm9udENs
YXNzICAgICAgICAgICBOU0ZvbnQKIAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRMZWZ0ICAgICAg
ICAgTlNMZWZ0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRSaWdodCAgICAg
ICAgTlNSaWdodFRleHRBbGlnbm1lbnQKLSNkZWZpbmUgTlNUZXh0QWxpZ25tZW50Q2VudGVyICAg
ICAgIE5TQ2VudGVyVGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRKdXN0aWZp
ZWQgICAgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xODQsMTAgKzE4NCwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBOU1dyaXRpbmdEaXJlY3Rpb24pIHsKICAgICBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVm
dCAgID0gIDEgICAgIC8vIFJpZ2h0IHRvIGxlZnQgd3JpdGluZyBkaXJlY3Rpb24KIH0gTlNfRU5V
TV9BVkFJTEFCTEVfSU9TKDZfMCk7CiAKLXR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb24pIHsKLSAgICBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5n
ICAgICA9ICgwIDw8IDEpLAotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZSAgICAg
ID0gKDEgPDwgMSkKLX0gTlNfRU5VTV9BVkFJTEFCTEVfSU9TKDdfMCk7Cit0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlKSB7CisgICAgTlNXcml0
aW5nRGlyZWN0aW9uRW1iZWRkaW5nICAgICA9ICgwIDw8IDEpLAorICAgIE5TV3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQorfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoOV8w
KTsKIAogZW51bSB7CiAgICAgTlNFbnRlckNoYXJhY3RlciAgICAgICAgICAgICAgICA9IDB4MDAw
MywKQEAgLTEyMTAsOCArMTIxMCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29t
cHV0ZWRBdHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBTdHJp
bmcgdGV4dEFsaWduID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoY29yZUJsb2NrRWxl
bWVudCwgQ1NTUHJvcGVydHlUZXh0QWxpZ24pOwogICAgICAgICBpZiAodGV4dEFsaWduLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAvLyBXZWJLaXQgY2FuIHJldHVybiAta2h0bWwtbGVmdCwgLWto
dG1sLXJpZ2h0LCAta2h0bWwtY2VudGVyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgICAgICAgICBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJsZWZ0IikpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICAgICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgicmlnaHQiKSkKQEAg
LTEyMjAsNyArMTIxOCw2IEBAIE5TRGljdGlvbmFyeSAqSFRNTENvbnZlcnRlcjo6Y29tcHV0ZWRB
dHRyaWJ1dGVzRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIFtw
YXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50Q2VudGVyXTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKHRleHRBbGlnbi5lbmRzV2l0aCgianVzdGlmeSIpKQogICAgICAgICAg
ICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50SnVzdGlm
aWVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogCiAgICAgICAg
IFN0cmluZyBkaXJlY3Rpb24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxv
Y2tFbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbik7CkBAIC0xODUxLDE4ICsxODQ4LDEyIEBA
IEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5T
SW50ZWdlciBkZXB0aCkKICAgICBlbHNlIHsKICAgICAgICAgU3RyaW5nIGJpZGkgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKTsK
ICAgICAgICAgaWYgKGJpZGkgPT0gImVtYmVkIikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1RleHRXcml0aW5nRGly
ZWN0aW9uRW1iZWRkaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgTlNVSW50ZWdlciB2YWwgPSBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAgICAgICAg
ICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdE
aXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5
IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKICAg
ICAgICAgfSBlbHNlIGlmIChiaWRpID09ICJiaWRpLW92ZXJyaWRlIikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgTlNVSW50ZWdlciB2YWwgPSBOU1Rl
eHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRl
OwogICAgICAgICAgICAgaWYgKF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQs
IENTU1Byb3BlcnR5RGlyZWN0aW9uKSA9PSAicnRsIikKICAgICAgICAgICAgICAgICB2YWwgfD0g
TlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbX3dyaXRpbmdEaXJl
Y3Rpb25BcnJheSBhZGRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludGVnZXI6
dmFsXV07CkBAIC0yMDYzLDE0ICsyMDU0LDcgQEAgdm9pZCBIVE1MQ29udmVydGVyOjpfYWRkTWFy
a2Vyc1RvTGlzdChOU1RleHRMaXN0ICpsaXN0LCBOU1JhbmdlIHJhbmdlKQogICAgICAgICAgICAg
ICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFR5cGU6TlNM
ZWZ0VGFiU3RvcFR5cGUgbG9jYXRpb246bWFya2VyTG9jYXRpb25dOwogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICAgICAgICAgdGFiID0g
W1tQbGF0Zm9ybU5TVGV4dFRhYiBhbGxvY10gaW5pdFdpdGhUZXh0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudE5hdHVyYWwgbG9jYXRpb246bGlzdExvY2F0aW9uIG9wdGlvbnM6QHsgfV07Ci0jZWxz
ZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgICAgICAg
ICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6
TlNOYXR1cmFsVGV4dEFsaWdubWVudCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgogICAgICAgICAgICAgICAg
ICAgICBbbmV3U3R5bGUgYWRkVGFiU3RvcDp0YWJdOwogICAgICAgICAgICAgICAgICAgICBbdGFi
IHJlbGVhc2VdOwogICAgICAgICAgICAgICAgICAgICBbX2F0dHJTdHIgYWRkQXR0cmlidXRlOk5T
UGFyYWdyYXBoU3R5bGVBdHRyaWJ1dGVOYW1lIHZhbHVlOm5ld1N0eWxlIHJhbmdlOnBhcmFncmFw
aFJhbmdlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCAzMzVlNjI2MTQ4ZTkzMjlmNWRhY2YzMzNjM2MxOGNjNjg2MjQ1NjFkLi5kMWU4OWUyMTZjNDEz
NGQxNDEyNjY2ZWEyMDdlYjQxODIxYTA0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
T2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyTWFjR2VzdHVyZS5jcHA+CkBAIC0xNTAs
MTAgKzE1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQVNTRVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2Nv
cGUoZXZlbnQsIG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKQEAgLTIwNiwxMiArMjA0LDkg
QEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVwKCkKIAogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBOU0V2ZW50ICpjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91
c2VEb3duID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSAhPSBj
dXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCi0gICAgICAgICYmIFtjdXJyZW50RXZl
bnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHR5cGVdID09IE5TTGVmdE1vdXNlVXAKKyAgICAgICAg
JiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNl
RG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50KCkgdGltZXN0
YW1wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzc1LDU4ICszNzAsNTUgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtjdXJy
ZW50TlNFdmVudCgpIHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1v
dXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3Vs
dHMgaW4gPHJkYXI6Ly82ODEzODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBv
ZgotICAgICAgICAgICAgLy8gbGF5b3V0IHRlc3RzLgotICAgICAgICAgICAgaWYgKCFtX21vdXNl
RG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgICAgIC8vIFRoaXMgY2hlY2sgaXMgYm9ndXMgYW5kIHJlc3VsdHMgaW4gPHJkYXI6Ly82ODEz
ODMwPiwgYnV0IHJlbW92aW5nIGl0IGJyZWFrcyBhIG51bWJlciBvZgorICAgICAgICAvLyBsYXlv
dXQgdGVzdHMuCisgICAgICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgICAgICAg
ICBpZiAoc3ViZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kaWRJbml0aWF0ZURyYWco
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzdWJmcmFtZS0+
cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAg
ICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgpIGhlcmUsIHdl
IGNhbiBjYWxsCi0gICAgICAgICAgICAvLyBoYW5kbGVNb3VzZU1vdmVFdmVudCgpIGRpcmVjdGx5
LCBzaW5jZSB0aGUgc2F2ZS9yZXN0b3JlIG9mCi0gICAgICAgICAgICAvLyBjdXJyZW50TlNFdmVu
dCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAg
ICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2Vu
ZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VN
b3ZlZDoKKyAgICAgICAgLy8gU2luY2Ugd2UncmUgcGFzc2luZyBpbiBjdXJyZW50TlNFdmVudCgp
IGhlcmUsIHdlIGNhbiBjYWxsCisgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGly
ZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKKyAgICAgICAgLy8gY3VycmVudE5TRXZl
bnQoKSB0aGF0IG1vdXNlTW92ZWQoKSBkb2VzIHdvdWxkIGhhdmUgbm8gZWZmZWN0LgorICAgICAg
ICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKKyAgICAgICAgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcgPSB0cnVlOworICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246IHsKLSAg
ICAgICAgICAgIE5vZGUqIG5vZGUgPSBldmVudC50YXJnZXROb2RlKCk7Ci0gICAgICAgICAgICBp
ZiAoIW5vZGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0
byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICAgICAgaWYgKCFpczxSZW5k
ZXJXaWRnZXQ+KHJlbmRlcmVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldpZGdldD4oKnJlbmRlcmVy
KS53aWRnZXQoKTsKLSAgICAgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFw
YXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KHJl
bmRlcmVyKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDogewotICAgICAgICAgICAgaWYg
KCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7Ci0gICAgICAg
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgICAgICBzdWJmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY3VycmVudFBsYXRmb3Jt
TW91c2VFdmVudCgpKTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOiB7CisgICAgICAgIE5vZGUqIG5v
ZGUgPSBldmVudC50YXJnZXROb2RlKCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGRvd25jYXN0PFJlbmRlcldp
ZGdldD4oKnJlbmRlcmVyKS53aWRnZXQoKTsKKyAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCFwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChkb3duY2FzdDxSZW5kZXJXaWRnZXQ+
KHJlbmRlcmVyKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fbW91c2VE
b3duV2FzSW5TdWJmcmFtZSA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6IHsKKyAgICAgICAgaWYgKCFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIEFTU0VS
VCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3Vi
dmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOworICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDc5LDExICs0NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkg
dHlwZV0gIT0gTlNTY3JvbGxXaGVlbCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKKyAgICBp
ZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNFdmVudFR5cGVTY3JvbGxXaGVlbCB8fCBt
X3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgQVNTRVJUKG5vZGVWaWV3KTsKICAgICBBU1NFUlQo
W25vZGVWaWV3IHN1cGVydmlld10pOwpAQCAtNTg2LDEyICs1NzUsMTAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0
aW5nRXZlbnQpCiAKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIGlu
dCBldmVudFR5cGUgPSBbaW5pdGlhdGluZ0V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChldmVudFR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0tleURvd24pIHsKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biB8fCBldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAg
ICAgICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IG5pbDsKLSAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBOU0xlZnRNb3VzZURvd24pIHsKLSAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgICAgIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CisgICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCkBAIC02MDIsOCArNTg5LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6W2lu
aXRpYXRpbmdFdmVudCBwcmVzc3VyZV1dOwogICAgICAgICAKICAgICAgICAgICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKLSAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TS2V5RG93bgotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgICAgIH0gZWxzZSB7IC8vIGV2ZW50VHlwZSA9PSBO
U0V2ZW50VHlwZUtleURvd24KKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ0V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0
aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCkBAIC02MTks
OCArNjA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0
VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHJlYWxseSBnZXQgdGhlIGN1cnJlbnQgbW9kaWZpZXJGbGFncyBoZXJlLCBidXQgdGhl
cmUncyBubyB3YXkgdG8gcG9sbAogICAgICAgICAvLyB0aGVtIGluIENvY29hLCBhbmQgYmVjYXVz
ZSB0aGUgZXZlbnQgc3RyZWFtIHdhcyBzdG9sZW4gYnkgdGhlIENhcmJvbiBtZW51IGNvZGUgd2Ug
aGF2ZQogICAgICAgICAvLyBubyB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCi0g
ICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmll
dy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQg
bW91c2VMb2NhdGlvbl1dCisgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5n
RXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC02MjgsNyArNjE5LDYg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVz
c3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW05TQXBwIHBv
c3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGE3NGRhODVhY2Vj
YTNjNjY5OGRkMTU2YWIzMWE2Yzk3MWEzNTRlNmUuLjE0ZmYwZTdjN2Q5ZTY5ZGU0ZmNiYjM0Y2Ix
ZmI1OGU0OGY2NzFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGlj
YXRvcldpbmRvdy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiUXVhcnR6Q29yZVNQSS5o
IgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgogI2ltcG9ydCAiV2ViQWN0aW9uRGlzYWJsaW5n
Q0FMYXllckRlbGVnYXRlLmgiCisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlQW5pbWF0aW9uRHVy
YXRpb24gPSAwLjEyOwogY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgYm91bmNlV2l0aENyb3NzZmFkZUFu
aW1hdGlvbkR1cmF0aW9uID0gMC4zOwpAQCAtNDU3LDEzICs0NTgsMTAgQEAgdm9pZCBUZXh0SW5k
aWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBDR1IKICAgICB2ZXJ0aWNhbE1hcmdpbiA9IENHQ2VpbGluZyh2ZXJ0aWNhbE1hcmdp
bik7CiAKICAgICBDR1JlY3QgY29udGVudFJlY3QgPSBDR1JlY3RJbnNldCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcywgLWhvcml6b250YWxNYXJnaW4sIC12ZXJ0aWNhbE1hcmdp
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSZWN0IHdpbmRv
d0NvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0Ok5TUmVjdEZy
b21DR1JlY3QoY29udGVudFJlY3QpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXTsK
KyAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JG
cmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzc107CiAgICAgTlNSZWN0IGludGVncmFsV2luZG93Q29udGVudFJl
Y3QgPSBOU0ludGVncmFsUmVjdCh3aW5kb3dDb250ZW50UmVjdCk7CiAgICAgTlNQb2ludCBmcmFj
dGlvbmFsVGV4dE9mZnNldCA9IE5TTWFrZVBvaW50KHdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54
IC0gaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueCwgd2luZG93Q29udGVudFJlY3Qu
b3JpZ2luLnkgLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi55KTsKLSAgICBtX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6aW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6aW50ZWdyYWxXaW5k
b3dDb250ZW50UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFttX3RleHRJbmRpY2F0
b3JXaW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3JdXTsKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNWE0OWYzYWIzYmQwZTRiMmEy
MmU0NGZiNWMxMmM2Y2I4N2I0NWNlMy4uMmI0ODVkOWRiNTc3NjlhOTIxODY2YzAwNTM2ZGY2ODE5
NDgxMWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0KQEAgLTI4LDcgKzI4LDggQEAKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OSw3IEBAIHZvaWQg
SWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29u
dGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0lt
YWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ug
c2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3Np
dGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBL
aXRTdHVicy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVi
cy5oCmluZGV4IDExNjYxODkwMjY0YjU3Nzk5OTNiZDM3YWVjMzU0M2JhMTMwZDE0MDQuLjQyOGQ2
OTM4NjVhZDViN2QyM2VjNmI4YTJhNjk2ZDU5ODUxZjE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLQXBwS2l0U3R1YnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS0FwcEtpdFN0dWJzLmgKQEAgLTE1NCwxNSArMTU0LDE1
IEBAIHR5cGVkZWYgTlNVSW50ZWdlciBOU1JlY3RFZGdlOwogCiAvKiBEZXZpY2UtaW5kZXBlbmRl
bnQgYml0cyBmb3VuZCBpbiBldmVudCBtb2RpZmllciBmbGFncyAqLwogZW51bSB7Ci0gICAgTlNB
bHBoYVNoaWZ0S2V5TWFzayA9IDEgPDwgMTYsCi0gICAgTlNTaGlmdEtleU1hc2sgPSAgICAgIDEg
PDwgMTcsCi0gICAgTlNDb250cm9sS2V5TWFzayA9ICAgIDEgPDwgMTgsCi0gICAgTlNBbHRlcm5h
dGVLZXlNYXNrID0gIDEgPDwgMTksCi0gICAgTlNDb21tYW5kS2V5TWFzayA9ICAgIDEgPDwgMjAs
Ci0gICAgTlNOdW1lcmljUGFkS2V5TWFzayA9IDEgPDwgMjEsCi0gICAgTlNIZWxwS2V5TWFzayA9
ICAgICAgIDEgPDwgMjIsCi0gICAgTlNGdW5jdGlvbktleU1hc2sgPSAgIDEgPDwgMjMsCi0gICAg
TlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKKyAgICBO
U0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2sgPSAxIDw8IDE2LAorICAgIE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdCA9IDEgPDwgMTcsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSAx
IDw8IDE4LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gPSAxIDw8IDE5LAorICAgIE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kID0gMSA8PCAyMCwKKyAgICBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZCA9IDEgPDwgMjEsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgPSAx
IDw8IDIyLAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbiA9IDEgPDwgMjMsCisgICAg
TlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrID0gMHhmZmZmMDAw
MFUKIH07CiAKIHR5cGVkZWYgZW51bSBfV0tXcml0aW5nRGlyZWN0aW9uIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5
YzBiZDBmNjY5ZWIyNTRkMGMuLjcyOGQzNDRhOTQ1MDM0YjljN2EyMDg1ZjQ1NjNkYzFiYjY5NjRl
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtMjksNiAr
MjksNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50
ZXJmYWNlIFdlYkNvcmVDdXJzb3JCdW5kbGUgOiBOU09iamVjdCB7IH0KIEBlbmQKQEAgLTY0LDEw
ICs2NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJ
bWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTCiAgICAgICAgIE5TUmVjdCBmcm9tUmVj
dCA9IE5TTWFrZVJlY3QoMCwgMCwgaW1hZ2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSk7CiAK
ICAgICAgICAgW2V4cGFuZGVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVjdDp0b1JlY3QgZnJvbVJl
Y3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW25zSW1hZ2UgZHJhd0luUmVj
dDp0b1JlY3QgZnJvbVJlY3Q6ZnJvbVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRp
b25Tb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwogICAgICAgICBbZXhwYW5kZWRJbWFnZSB1bmxvY2tG
b2N1c107CiAKICAgICAgICAgcmV0dXJuIGFkb3B0TlMoW1tOU0N1cnNvciBhbGxvY10gaW5pdFdp
dGhJbWFnZTpleHBhbmRlZEltYWdlLmdldCgpIGhvdFNwb3Q6aG90U3BvdF0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggNjgyNDZiZWZhNTIzZWRm
ZjNiNjA1YzYwMTE4NzE5ZDQ3Mjk4ZDA5Yi4uMGZmNDIwMjAwY2M4YmQzNDg3ZTQ1NmY3NzkwZWRl
ZTk1ZThmNTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIKICNpbXBv
cnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNzUsMTAgKzc2LDcgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZl
RHJhZ0ltYWdlVG9GcmFjdGlvbihSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGZsb2F0IGQKICAg
ICBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVkSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBh
bGxvY10gaW5pdFdpdGhTaXplOltpbWFnZS5nZXQoKSBzaXplXV0pOwogICAgIAogICAgIFtkaXNz
b2x2ZWRJbWFnZS5nZXQoKSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIFtpbWFnZS5nZXQoKSBkcmF3QXRQb2ludDpOU1plcm9Qb2ludCBmcm9tUmVj
dDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXplXS53aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdo
dCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weSBmcmFjdGlvbjpkZWx0YV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgW2ltYWdlLmdldCgpIGRyYXdBdFBvaW50Ok5TWmVyb1Bv
aW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ug
c2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvbkNvcHkgZnJhY3Rp
b246ZGVsdGFdOwogICAgIFtkaXNzb2x2ZWRJbWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAg
ICByZXR1cm4gZGlzc29sdmVkSW1hZ2U7CkBAIC0xMTksMTAgKzExNyw4IEBAIFJldGFpblB0cjxO
U0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpCiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0uZ2V0KCkgc2V0VHJhbnNm
b3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QqKSZ0cmFuc2Zvcm1dOwogICAgICAg
ICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIGNvbmNhdF07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkg
ZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlv
bjoxLjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW2ltYWdl
LT5zbmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJl
Y3QoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3Np
dGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKKwogICAgICAgICAgICAgW3Jv
dGF0ZWREcmFnSW1hZ2UuZ2V0KCkgdW5sb2NrRm9jdXNdOwogCiAgICAgICAgICAgICByZXR1cm4g
cm90YXRlZERyYWdJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9FdmVudExvb3BNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29w
TWFjLm1tCmluZGV4IGFmMGEzOTkyYjY2ZTlkNmZmYzAxNzcxMjQ4NTc2MjZhMDA1YTVlOTAuLmI5
Y2M1NDVhOTg0OTM0ZDU0NjBkZGJkZjViZDRlYzNlYTcxNTkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQpAQCAtMjUsMTYgKzI1LDE0IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKKyNpbmNsdWRlIDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIEV2ZW50TG9vcDo6Y3ljbGUoKQogewogICAgIFtOU0FwcCBzZXRXaW5kb3dz
TmVlZFVwZGF0ZTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0FueUV2ZW50
TWFzayB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjAuMDVd
IGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU11dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIFtOU0FwcCBzZW5kRXZlbnQ6W05TQXBwIG5leHRFdmVudE1h
dGNoaW5nTWFzazpOU0V2ZW50TWFza0FueSB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJ
bnRlcnZhbFNpbmNlTm93OjAuMDVdIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVl
OllFU11dOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGE1ZGYzNDc0YzMxMWM2YTc1NjFkN2Y0
ZDQ0NTUzMTRhYTA0ZDAwNzAuLjFjNGUzYzE5ODAzMWNmZmE2ZmE5YjY2NTI3MWFiZmE0NzMyZDc2
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBA
IC01NSw2ICs1NSw3IEBACiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBw
S2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2ltcG9ydCA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIApAQCAt
NjUzLDExICs2NTQsOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OnNldERyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBsb2NhdGlvbikKICAgICAvLyBIYWNrOiBXZSBtdXN0
IHBvc3QgYW4gZXZlbnQgdG8gd2FrZSB1cCB0aGUgTlNEcmFnTWFuYWdlciwgd2hpY2ggaXMgc2l0
dGluZyBpbiBhIG5leHRFdmVudCBjYWxsCiAgICAgLy8gdXAgdGhlIHN0YWNrIGZyb20gdXMgYmVj
YXVzZSB0aGUgQ29yZUZvdW5kYXRpb24gZHJhZyBtYW5hZ2VyIGRvZXMgbm90IHVzZSB0aGUgcnVu
IGxvb3AgYnkgaXRzZWxmLgogICAgIC8vIFRoaXMgaXMgdGhlIG1vc3QgaW5ub2N1b3VzIGV2ZW50
IHRvIHVzZSwgcGVyIEtyaXN0ZW4gRm9yc3Rlci4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU01vdXNlTW92ZWQgbG9jYXRpb246TlNaZXJvUG9pbnQKKyAgICBOU0V2ZW50KiBldmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRp
b246TlNaZXJvUG9pbnQKICAgICAgICAgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRv
d051bWJlcjowIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6
ZXZlbnQgYXRTdGFydDpZRVNdOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggZDM0ZDZlYWU5
NDhmN2FmY2JhYjMzMDMxNGZkY2JhNzhlOWU0MDBiOC4uMGQyZTMxOGVjZGZiMTMwNDIzODc3YTcz
MmQ4MmY4NjkxOTc2OTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNTIsMjcgKzUyLDI0IEBAIHN0YXRp
YyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQ
cmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3Vz
ZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2lu
ZG93XSwgW2V2ZW50IHdpbmRvd10pOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIHsgMCwgMCB9OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKKyAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtl
dmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiB7IDAsIDAgfTsKICAgICB9CiB9CiAKQEAgLTgwLDMzICs3NywzMCBAQCBz
dGF0aWMgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5k
b3dWaWV3KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQ
NjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJl
OgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNh
c2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgot
ICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Jp
Z2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNTY3JvbGxXaGVlbDogewotICAg
ICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9t
IGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgotICAgICAg
ICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5
IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93LgotICAgICAgICAgICAgTlNQb2lu
dCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKLSAgICAgICAgICAgIGlmICh3
aW5kb3dWaWV3KQotICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW3dpbmRvd1ZpZXcgY29udmVy
dFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9p
bnQobG9jYXRpb24pOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQoKTsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hl
ZWw6IHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUg
Ym90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgor
ICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQg
YnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCisgICAgICAgIE5TUG9pbnQg
bG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIGlmICh3aW5kb3dW
aWV3KQorICAgICAgICAgICAgbG9jYXRpb24gPSBbd2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9j
YXRpb24gZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgcmV0dXJuIEludFBvaW50KGxvY2F0aW9uKTsK
KyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CiAgICAgfQog
fQogCkBAIC0xMTQsNzIgKzEwOCw2MyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91c2VCdXR0b25G
b3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewog
I2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNF
dmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJl
dHVybiBMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIE5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIExlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gUmlnaHRC
dXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBOb0J1dHRvbjsKICAgICB9CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBl
IG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6
Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6
Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0
TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92
ZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJl
dHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2Vk
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3Nl
ZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKIHN0YXRp
YyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAo
W2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNs
aWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVy
biBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogfQogCkBAIC00OTcsMjggKzQ4MiwyOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktl
eUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVGbGFnc0NoYW5nZWQpIHsKICAgICAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsK
LSAgICAgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgICAgIGNhc2Ug
NTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2siKTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgICAgIGNhc2Ug
NjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0g
ICAgICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgICAgICByZXR1cm4g
U3RyaW5nKCJBbHQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTk6IC8v
IExlZnQgQ3RybAotICAgICAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgNTQ6IC8v
IFJpZ2h0IENvbW1hbmQKKyAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
ICAgICByZXR1cm4gU3RyaW5nKCJNZXRhIik7CisKKyAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xv
Y2sKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7CisKKyAgICAgICAgY2Fz
ZSA1NjogLy8gTGVmdCBTaGlmdAorICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKworICAgICAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAorICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoIkFsdCIpOworCisgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgICAg
ICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDb250
cm9sIik7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIH0KICAgICB9
CiAgICAgCkBAIC01MzQsNDQgKzUxOSwzOCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5T
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBl
dmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246
Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAg
ICAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
RmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TTnVtZXJpY1BhZEtleU1hc2spCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFy
Ci0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBj
YXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8g
KwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAg
ICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0
OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAg
ICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4
OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAg
ICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAg
ICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVy
CisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAx
CisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0
CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3
CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNTg1LDEwICs1NjQs
NyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAv
LyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29k
ZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlz
LiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVu
dCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NL
ZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlE
b3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9
PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXAp
KSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdF
UlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5T
U3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3Ro
XSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0p
IDogMDsKQEAgLTY0NiwzNSArNjIyLDMyIEBAIGRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3
MChOU0V2ZW50KiBldmVudCkKIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2ZW50
IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZs
YWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtl
eVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNzZXMg
Ym90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0IHJl
bGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNv
ZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2FzZSA1
NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2Fz
ZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0g
ICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNr
KSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAg
ICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0
cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9u
S2V5TWFzaykgPT0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIDU0
OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21t
YW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBj
YXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAg
ICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1No
aWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQg
QWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2
MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlv
bgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAg
Kzc5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9rZXkgPSBrZXlGb3JLZXlFdmVudChldmVudCk7
CiAgICAgICAgIG1fY29kZSA9IGNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIG1fYXV0b1JlcGVhdCA9
IFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50
IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwog
ICAgICAgICBtX2lzS2V5cGFkID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgICAgIG1faXNT
eXN0ZW1LZXkgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFj
LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
bW0KaW5kZXggOTFjYmVkZDBjZGEwNzA2NWIzYmYzZjE3MDE1OGYxZDYyNzczMTgzZi4uNjRkODU0
YThlODRjODYyYTkwYWJkNDU3NWNlNjNlYmVlNGQyZWUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtNDIsNiArNDIsNyBAQAog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisjaW5jbHVkZSA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIC8vIEZJWE1FOiBUaGVyZSBh
cmUgcmVwYWludGluZyBwcm9ibGVtcyBkdWUgdG8gQXF1YSBzY3JvbGwgYmFyIGJ1dHRvbnMnIHZp
c3VhbCBvdmVyZmxvdy4KIApAQCAtMTM5LDE4ICsxNDAsMTUgQEAgc3RhdGljIFNjcm9sbGJhckJ1
dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVF
bmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoY29udHJvbFNpemUpIHsKICAgICBj
YXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6
ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGNhc2UgU21hbGxT
Y3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIH0KIAogdm9pZCBT
Y3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggMDI0NzJjOWE2
OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4uYjEwMDQxYjVlYjE3MmY0MzcyYzQwMDU1
YjE2OTk3YzEzOTRjMjNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHN0YXRpYyBOU1JlY3QgZm9jdXNSaW5nQ2xpcFJlY3Q7CiBzdGF0aWMgQk9PTCB0aGVtZVdp
bmRvd0hhc0tleUFwcGVhcmFuY2U7CkBAIC02NywxMSArNjgsOCBAQCAtIChOU1dpbmRvdyAqKXdp
bmRvdwogewogICAgIC8vIFVzaW5nIGRlZmVyOllFUyBwcmV2ZW50cyB1cyBmcm9tIHdhc3Rpbmcg
YW55IHdpbmRvdyBzZXJ2ZXIgcmVzb3VyY2VzIGZvciB0aGlzIHdpbmRvdywgc2luY2Ugd2UncmUg
bm90IGFjdHVhbGx5CiAgICAgLy8gZ29pbmcgdG8gZHJhdyBpbnRvIGl0LiBUaGUgb3RoZXIgYXJn
dW1lbnRzIG1hdGNoIHdoYXQgeW91IGdldCB3aGVuIGNhbGxpbmcgLVtOU1dpbmRvdyBpbml0XS4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzdGF0aWMgV2ViQ29yZVRo
ZW1lV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVUaGVtZVdpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCkKLSAgICAgICAgc3R5bGVN
YXNrOk5TVGl0bGVkV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrVGl0bGVkIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpZRVNdOwogICAgIHJldHVybiB3aW5kb3c7CiB9CiAKQEAgLTE0NCwxNSArMTQyLDEyIEBA
IFRoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKIAogc3RhdGljIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQucGl4ZWxTaXplKCk7CiAg
ICAgaWYgKGZvbnRTaXplID49IDE2KQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNp
emU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICBpZiAoZm9udFNp
emUgPj0gMTEpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWlu
aTsKIH0KIAogc3RhdGljIExlbmd0aFNpemUgc2l6ZUZyb21OU0NvbnRyb2xTaXplKE5TQ29udHJv
bFNpemUgbnNDb250cm9sU2l6ZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvciwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMpCkBAIC0xNzUs
MTYgKzE3MCwxMyBAQCBzdGF0aWMgTGVuZ3RoU2l6ZSBzaXplRnJvbUZvbnQoY29uc3QgRm9udENh
c2NhZGUmIGZvbnQsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZAogCiBzdGF0aWMgQ29udHJvbFNp
emUgY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4m
IHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChtaW5ab29tZWRT
aXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6
ZV0ud2lkdGgoKSAqIHpvb21GYWN0b3IpICYmCi0gICAgICAgIG1pblpvb21lZFNpemUuaGVpZ2h0
KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0
KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwot
ICAgIGlmIChtaW5ab29tZWRTaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tO
U1NtYWxsQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5a
b29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQotICAgICAgICByZXR1cm4gTlNTbWFsbENv
bnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19j
YXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tRmFjdG9y
KQorICAgICAgICAmJiBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisgICAg
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKKyAgICBpZiAobWluWm9vbWVkU2l6ZS53
aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVNtYWxsXS53aWR0
aCgpICogem9vbUZhY3RvcikKKyAgICAgICAgJiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4g
TlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldENvbnRyb2xTaXplKE5TQ2Vs
bCogY2VsbCwgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMsIGNvbnN0IEludFNp
emUmIG1pblpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpCkBAIC00ODAsMTAgKzQ3Miw3IEBA
IHN0YXRpYyB2b2lkIHNldFVwQnV0dG9uQ2VsbChOU0J1dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTCiB7CiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUg
YmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFpbnRpbmcgaW50by4KICAgICBjb25zdCBz
dGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcyA9IGJ1dHRvblNpemVzKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFy
dCB8fCB6b29tZWRTaXplLmhlaWdodCgpID4gYnV0dG9uU2l6ZXMoKVtOU1JlZ3VsYXJDb250cm9s
U2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKHBhcnQgPT0gU3F1YXJlQnV0dG9uUGFydCB8fCB6b29tZWRTaXplLmhlaWdo
dCgpID4gYnV0dG9uU2l6ZXMoKVtOU0NvbnRyb2xTaXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29t
RmFjdG9yKSB7CiAgICAgICAgIC8vIFVzZSB0aGUgc3F1YXJlIGJ1dHRvbgogICAgICAgICBpZiAo
W2NlbGwgYmV6ZWxTdHlsZV0gIT0gTlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZSkKICAgICAg
ICAgICAgIFtjZWxsIHNldEJlemVsU3R5bGU6TlNTaGFkb3dsZXNzU3F1YXJlQmV6ZWxTdHlsZV07
CkBAIC01NzksMTUgKzU2OCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAz
PiYgc3RlcHBlclNpemVzKCkKIC8vIHNob3VsZCBiZSBlcXVhbCB0byBvciBsZXNzIHRoYW4gdGhl
IGNvcnJlc3BvbmRpbmcgdGV4dCBmaWVsZCBoZWlnaHQsCiBzdGF0aWMgTlNDb250cm9sU2l6ZSBz
dGVwcGVyQ29udHJvbFNpemVGb3JGb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGludCBmb250U2l6ZSA9IGZvbnQu
cGl4ZWxTaXplKCk7CiAgICAgaWYgKGZvbnRTaXplID49IDE4KQotICAgICAgICByZXR1cm4gTlNS
ZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsK
ICAgICBpZiAoZm9udFNpemUgPj0gMTMpCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNp
emU7Ci0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOworICAgIHJldHVybiBO
U0NvbnRyb2xTaXplTWluaTsKIH0KIAogc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xT
dGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqKQpAQCAtNjAwLDE1ICs1
ODYsMTIgQEAgc3RhdGljIHZvaWQgcGFpbnRTdGVwcGVyKENvbnRyb2xTdGF0ZXMmIHN0YXRlcywg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGRyYXdJbmZvLnN0YXRlID0gY29u
dmVydENvbnRyb2xTdGF0ZXNUb1RoZW1lRHJhd1N0YXRlKGtUaGVtZUluY0RlY0J1dHRvbiwgc3Rh
dGVzKTsKICAgICBkcmF3SW5mby5hZG9ybm1lbnQgPSBrVGhlbWVBZG9ybm1lbnREZWZhdWx0Owog
ICAgIENvbnRyb2xTaXplIGNvbnRyb2xTaXplID0gY29udHJvbFNpemVGcm9tUGl4ZWxTaXplKHN0
ZXBwZXJTaXplcygpLCBJbnRTaXplKHpvb21lZFJlY3Quc2l6ZSgpKSwgem9vbUZhY3Rvcik7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGNvbnRyb2xTaXplID09
IE5TU21hbGxDb250cm9sU2l6ZSkKKyAgICBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6
ZVNtYWxsKQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uU21hbGw7
Ci0gICAgZWxzZSBpZiAoY29udHJvbFNpemUgPT0gTlNNaW5pQ29udHJvbFNpemUpCisgICAgZWxz
ZSBpZiAoY29udHJvbFNpemUgPT0gTlNDb250cm9sU2l6ZU1pbmkpCiAgICAgICAgIGRyYXdJbmZv
LmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b25NaW5pOwogICAgIGVsc2UKICAgICAgICAgZHJhd0lu
Zm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKIAogICAgIEludFJlY3QgcmVjdCh6b29tZWRSZWN0KTsKICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CkBAIC03NDksMTIgKzczMiw5IEBAIExlbmd0
aFNpemUgVGhlbWVNYWM6Om1pbmltdW1Db250cm9sU2l6ZShDb250cm9sUGFydCBwYXJ0LCBjb25z
dCBGb250Q2FzY2FkZSYgZm9uCiAgICAgICAgIGNhc2UgQnV0dG9uUGFydDoKICAgICAgICAgICAg
IHJldHVybiBMZW5ndGhTaXplKExlbmd0aCgwLCBGaXhlZCksIExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KDE1ICogem9vbUZhY3RvciksIEZpeGVkKSk7CiAgICAgICAgIGNhc2UgSW5uZXJTcGluQnV0
dG9uUGFydDp7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAg
ICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU01pbmlDb250cm9sU2l6ZV07CisgICAg
ICAgICAgICBJbnRTaXplIGJhc2UgPSBzdGVwcGVyU2l6ZXMoKVtOU0NvbnRyb2xTaXplTWluaV07
CiAgICAgICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZShMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pihi
YXNlLndpZHRoKCkgKiB6b29tRmFjdG9yKSwgRml4ZWQpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oYmFzZS5oZWlnaHQoKSAqIHpvb21GYWN0
b3IpLCBGaXhlZCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gVGhlbWU6Om1pbmltdW1Db250cm9s
U2l6ZShwYXJ0LCBmb250LCB6b29tRmFjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KaW5kZXggZDNiOWVlOThkZjk0MjBjY2Q3MTE2YjA0MDM1NjM4M2NmYzc0NmY5
MC4uYjQ4NjA2Y2I1YTc0NGQ4NzBiODYxOTM0MzY2Mjg5OGJhOWZmNGVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxWaWRlb0Vs
ZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0
Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtNzMsMTAgKzc0LDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvdwogLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0KWNv
bnRlbnRSZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilhU3R5bGUgYmFja2luZzooTlNCYWNraW5n
U3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZmxhZwogewogICAgIFVOVVNFRF9Q
QVJBTShhU3R5bGUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6TlNC
b3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENv
bnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3MgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmZsYWddOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKIApAQCAtMTIyLDE1ICsxMjAsMTIgQEAgLSAoQk9PTClyZXNpZ25G
aXJzdFJlc3BvbmRlcgogCiAtIChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICop
ZXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBCbG9j
ayBhbGwgY29tbWFuZCBrZXkgZXZlbnRzIHdoaWxlIHRoZSBmdWxsc2NyZWVuIHdpbmRvdyBpcyB1
cC4KLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5
cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotICAg
IGlmICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spKQorICAgIGlm
ICghKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSkK
ICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIHJl
dHVybiBZRVM7CiB9CiAKQEAgLTE0NSwxMSArMTQwLDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIKIAogLSAoaWQpaW5pdAogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dl
YlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01h
a2VSZWN0KDAsIDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCB3aW5kb3dXaWR0aCwg
d2luZG93SGVpZ2h0KSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBp
bml0V2l0aFdpbmRvdzp3aW5kb3ddOwogICAgIFt3aW5kb3cgc2V0RGVsZWdhdGU6c2VsZl07CiAg
ICAgW3dpbmRvdyByZWxlYXNlXTsKQEAgLTE4OCwyMCArMTc5LDE3IEBAIC0gKHZvaWQpa2V5RG93
bjooTlNFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICBjYXNlICcgJzoKICAgICAgICAgICAgICAg
ICBbc2VsZiB0b2dnbGVQbGF5aW5nOm5pbF07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICAgICAgY2FzZSBOU1VwQXJy
b3dGdW5jdGlvbktleToKLSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNBbHRlcm5hdGVLZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAg
ICBbc2VsZiBzZXRWb2x1bWU6W3NlbGYgbWF4Vm9sdW1lXV07CiAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBpbmNyZW1lbnRWb2x1bWVdOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToK
LSAgICAgICAgICAgICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQorICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzZXRWb2x1
bWU6MF07CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBbc2VsZiBk
ZWNyZW1lbnRWb2x1bWVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC0zNzgsMTcgKzM2NiwxMSBAQCAtICh2b2lkKXdpbmRvd0RpZExvYWQKICAgICBbY29u
dGVudFZpZXcgYWRkU3VidmlldzpfdGltZWxpbmVdOwogCiAgICAgX2VsYXBzZWRUaW1lVGV4dCA9
IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZVRleHRG
aWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtf
ZWxhcHNlZFRpbWVUZXh0IHNldEFsaWdubWVudDpOU0xlZnRUZXh0QWxpZ25tZW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX2VsYXBzZWRUaW1lVGV4dCBzZXRBbGlnbm1l
bnQ6TlNUZXh0QWxpZ25tZW50TGVmdF07CiAgICAgW2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X2Vs
YXBzZWRUaW1lVGV4dF07CiAKICAgICBfcmVtYWluaW5nVGltZVRleHQgPSBjcmVhdGVUaW1lVGV4
dEZpZWxkKE5TTWFrZVJlY3Qod2luZG93V2lkdGggLSB0aW1lVGV4dEZpZWxkSG9yaXpvbnRhbE1h
cmdpbiAtIHRpbWVUZXh0RmllbGRXaWR0aCwgdGltZWxpbmVCb3R0b21NYXJnaW4sIHRpbWVUZXh0
RmllbGRXaWR0aCwgdGltZVRleHRGaWVsZEhlaWdodCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TUmln
aHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBbX3Jl
bWFpbmluZ1RpbWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAg
W2NvbnRlbnRWaWV3IGFkZFN1YnZpZXc6X3JlbWFpbmluZ1RpbWVUZXh0XTsKIAogICAgIFt3aW5k
b3cgcmVjYWxjdWxhdGVLZXlWaWV3TG9vcF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQppbmRleCA0NTk4YTAzZWQyZmEzMjE1MGU2NGFm
OWNiYjY0NTk5NDY5ZmRkZjc3Li43ZGU1ZWI1MzdjN2ZhMDIzNTIyYmNlZjY4MzMyM2IyNTg0ZWNj
NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5p
bWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmlt
YXRpb24ubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJh
cy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zOCwxMCArMzksNyBAQCBzdGF0aWMg
Y29uc3QgQ0dGbG9hdCBzbG93TW90aW9uRmFjdG9yID0gMTA7CiAKIHN0YXRpYyBOU1RpbWVJbnRl
cnZhbCBXZWJXaW5kb3dBbmltYXRpb25EdXJhdGlvbkZyb21EdXJhdGlvbihOU1RpbWVJbnRlcnZh
bCBkdXJhdGlvbikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBy
ZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlN
YXNrKSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1v
ZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSA/IGR1cmF0aW9uICogc2xv
d01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOwogfQogCiBzdGF0aWMgTlNSZWN0IHNjYWxlZFJlY3Qo
TlNSZWN0IF9pbml0aWFsRnJhbWUsIE5TUmVjdCBfZmluYWxGcmFtZSwgQ0dGbG9hdCBmYWN0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggM2VkZGMw
M2U0ZDhlOWY2MzUxN2M1MjcxZjIwMWI1Njc4MjJiOTAyOC4uODU3NjQyMzUyM2E5MGM4YTUyNTE4
MDU0YWQ5MmI1MTQ0ZjQxOTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtODEsNiArODEsNyBAQAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgog
I2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNpbXBvcnQgPG1hdGguaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgRU5BQkxFKE1FVEVS
X0VMRU1FTlQpCiAjaW1wb3J0ICJSZW5kZXJNZXRlci5oIgpAQCAtMzc5LDIyICszODAsMTMgQEAg
dm9pZCBSZW5kZXJUaGVtZU1hYzo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENT
U1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm8KICAgICAgICAgICAgIGZvbnROYW1lID0gQXRvbWljU3Ry
aW5nKCItYXBwbGUtc3RhdHVzLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRNaW5p
Q29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAg
IGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZv
ckNvbnRyb2xTaXplOk5TTWluaUNvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0Zv
bnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplTWluaV1dOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRTbWFsbENvbnRyb2w6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0
ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF1dOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDb250cm9sOgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lz
dGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNSZWd1
bGFyQ29udHJvbFNpemVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6
ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1bGFyXV07CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZv
bnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZV1dOwpAQCAtNzc3LDMwICs3NjksMjQgQEAg
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvKSBjb25zdAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVG
b3JGb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpbnQgZm9udFNp
emUgPSBzdHlsZS5mb250U2l6ZSgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGlmIChmb250U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRy
b2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZv
bnRTaXplID49IDExKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJl
dHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6
ZU1pbmk7CiB9CiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9y
Q2VsbChOU0NlbGwqLCBjb25zdCBJbnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6
ZSwgZmxvYXQgem9vbUxldmVsKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXpl
c1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21MZXZlbCkKLSAgICAgICAgJiYg
bWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TUmVndWxhckNvbnRy
b2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKKyAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLndpZHRoKCkgKiB6b29tTGV2ZWwpCisgICAgICAg
ICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xT
aXplUmVndWxhcl0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVJlZ3VsYXI7CiAKLSAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0
PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUxldmVsKQotICAg
ICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFs
bENvbnRyb2xTaXplXS5oZWlnaHQoKSAqIHpvb21MZXZlbCkpCi0gICAgICAgIHJldHVybiBOU1Nt
YWxsQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lkdGgoKSAqIHpvb21MZXZlbCkKKyAgICAg
ICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJv
bFNpemVTbWFsbF0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQorICAgICAgICByZXR1cm4gTlNDb250
cm9sU2l6ZVNtYWxsOwogCi0gICAgcmV0dXJuIE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAog
dm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Q29udHJvbFNpemUoTlNDZWxsKiBjZWxsLCBjb25zdCBJ
bnRTaXplKiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSwgZmxvYXQgem9vbUxldmVsKQpA
QCAtODU3LDE1ICs4NDMsMTIgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250
cm9sU2l6ZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmIHN0eWxlLAogCiBOU0NvbnRyb2xT
aXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIGludCBmb250U2l6ZSA9IHN0eWxlLmZvbnRTaXplKCk7Ci0gICAgaWYgKGZvbnRTaXpl
ID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU1JlZ3VsYXJDb250cm9s
U2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAoZm9u
dFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TU21hbGxDb250
cm9sU2l6ZV0pCi0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Ci0gICAgcmV0dXJu
IE5TTWluaUNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250
cm9sU2l6ZVJlZ3VsYXJdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7Cisg
ICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpO
U0NvbnRyb2xTaXplU21hbGxdKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVNtYWxsOwor
ICAgIHJldHVybiBOU0NvbnRyb2xTaXplTWluaTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZU1hYzo6
cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgRmxvYXRSZWN0JiByKQpAQCAtMTE0NywxMCArMTEzMCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50UHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJPYmplY3QsIGNvbnN0IFBhCiAgICAgY29uc3QgYXV0byYgcmVuZGVyUHJvZ3Jlc3MgPSBkb3du
Y2FzdDxSZW5kZXJQcm9ncmVzcz4ocmVuZGVyT2JqZWN0KTsKICAgICBISVRoZW1lVHJhY2tEcmF3
SW5mbyB0cmFja0luZm87CiAgICAgdHJhY2tJbmZvLnZlcnNpb24gPSAwOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU1JlZ3VsYXJD
b250cm9sU2l6ZSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoY29udHJv
bFNpemUgPT0gTlNDb250cm9sU2l6ZVJlZ3VsYXIpCiAgICAgICAgIHRyYWNrSW5mby5raW5kID0g
cmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBrVGhlbWVMYXJnZUluZGV0ZXJtaW5hdGVC
YXIgOiBrVGhlbWVMYXJnZVByb2dyZXNzQmFyOwogICAgIGVsc2UKICAgICAgICAgdHJhY2tJbmZv
LmtpbmQgPSByZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZU1lZGl1bUluZGV0
ZXJtaW5hdGVCYXIgOiBrVGhlbWVNZWRpdW1Qcm9ncmVzc0JhcjsKQEAgLTE0MzgsMTUgKzE0MTgs
MTIgQEAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgUmVuZGVyVGhlbWVNYWM6OnBvcHVw
TWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmIHMKICAgICBOU1BvcFVwQnV0dG9uQ2VsbCogcG9w
dXBCdXR0b24gPSB0aGlzLT5wb3B1cEJ1dHRvbigpOwogICAgIE5TQ29udHJvbFNpemUgc2l6ZSA9
IGNvbnRyb2xTaXplRm9yQ2VsbChwb3B1cEJ1dHRvbiwgcG9wdXBCdXR0b25TaXplcygpLCByZWN0
LnNpemUoKSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICBzd2l0Y2ggKHNpemUpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TUmVndWxhckNvbnRy
b2xTaXplOgorICAgIGNhc2UgTlNDb250cm9sU2l6ZVJlZ3VsYXI6CiAgICAgICAgIHJldHVybiBQ
b3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsKLSAgICBjYXNlIE5TU21hbGxDb250
cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVTbWFsbDoKICAgICAgICAgcmV0dXJuIFBv
cHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw7Ci0gICAgY2FzZSBOU01pbmlDb250cm9s
U2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVNaW5pOgogICAgICAgICByZXR1cm4gUG9wdXBN
ZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU5vcm1hbDsKICAgICB9CkBAIC0yMDU1LDEyICsyMDMyLDkgQEAgTlNTbGlkZXJDZWxsKiBS
ZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJIb3Jpem9udGFsKCkgY29uc3QKIHsKICAgICBpZiAo
IW1fc2xpZGVyVGh1bWJIb3Jpem9udGFsKSB7CiAgICAgICAgIG1fc2xpZGVyVGh1bWJIb3Jpem9u
dGFsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxvY10gaW5pdF0pOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwu
Z2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRlclRo
dW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdOwor
ICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1Ns
aWRlclR5cGVMaW5lYXJdOworICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkg
c2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1
bWJIb3Jpem9udGFsLmdldCgpIHNldEZvY3VzUmluZ1R5cGU6TlNGb2N1c1JpbmdUeXBlRXh0ZXJp
b3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIHJldHVybiBt
X3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKTsKQEAgLTIwNzAsMTEgKzIwNDQsOCBAQCBOU1Ns
aWRlckNlbGwqIFJlbmRlclRoZW1lTWFjOjpzbGlkZXJUaHVtYlZlcnRpY2FsKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fc2xpZGVyVGh1bWJWZXJ0aWNhbCkgewogICAgICAgICBtX3NsaWRlclRodW1i
VmVydGljYWwgPSBhZG9wdE5TKFtbTlNTbGlkZXJDZWxsIGFsbG9jXSBpbml0XSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFttX3NsaWRlclRodW1iVmVydGlj
YWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU0xpbmVhclNsaWRlcl07Ci0gICAgICAgIFttX3NsaWRl
clRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0
aWNhbC5nZXQoKSBzZXRTbGlkZXJUeXBlOk5TU2xpZGVyVHlwZUxpbmVhcl07CisgICAgICAgIFtt
X3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNt
YWxsXTsKICAgICAgICAgW21fc2xpZGVyVGh1bWJWZXJ0aWNhbC5nZXQoKSBzZXRGb2N1c1JpbmdU
eXBlOk5TRm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXggZjJhMzU5NzNhNzFlMDY4
MjYwYTkxYzk2N2QyOTA1MGQyZWRlNzYwZC4uYTY5ZjZmMWZhNTBhOWE0YWRkODYzZjQ3OTViYzFk
NzEyZjBiYTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW0KQEAgLTc2LDYgKzc2LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlv
bnMuaD4KIAogI2ltcG9ydCAiV2ViS2l0TG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViTlNPYmplY3RF
eHRyYXMuaCIKQEAgLTE3MywxMyArMTc0LDE0IEBAIC0gKGlkKWluaXRXaXRoQ2FyYm9uV2luZG93
UmVmOihXaW5kb3dSZWYpaW5XaW5kb3dSZWYgdGFraW5nT3duZXJzaGlwOihCT09MKWluV2luCiAK
ICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBzdHlsZSBtYXNrLgogICAgIHN0eWxlTWFz
ayA9IFdLQ2FyYm9uV2luZG93TWFzaygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd0Nsb3NlQm94QXR0cmlidXRl
KSBzdHlsZU1hc2sgfD0gTlNDbG9zYWJsZVdpbmRvd01hc2s7Ci0gICAgaWYgKHdpbmRvd0F0dHJp
YnV0ZXMgJiBrV2luZG93UmVzaXphYmxlQXR0cmlidXRlKSBzdHlsZU1hc2sgfD0gTlNSZXNpemFi
bGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBz
ZSkgc3R5bGVNYXNrIHw9IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5k
b3dGZWF0dXJlcyAmIGtXaW5kb3dIYXNUaXRsZUJhcikgc3R5bGVNYXNrIHw9IE5TVGl0bGVkV2lu
ZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAod2luZG93QXR0
cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0dHJpYnV0ZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9
IE5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGU7CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBr
V2luZG93UmVzaXphYmxlQXR0cmlidXRlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dT
dHlsZU1hc2tSZXNpemFibGU7CisgICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0NhbkNv
bGxhcHNlKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6
YWJsZTsKKyAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpCisgICAg
ICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZDsKIAogICAgIG9zU3RhdHVz
ID0gR2V0V2luZG93TW9kYWxpdHkoX3dpbmRvd1JlZiwgJndpbmRvd01vZGFsaXR5LCBOVUxMKTsK
ICAgICBpZiAob3NTdGF0dXMgIT0gbm9FcnIpIHsKQEAgLTM5MywxOCArMzk1LDEyIEBAIC0gKHZv
aWQpc2VuZFN1cGVyRXZlbnQ6KE5TRXZlbnQgKilpbkV2ZW50IHsKICAgICAvLyBJZ25vcmUgc29t
ZSB1bmtub3duIGV2ZW50IHRoYXQgZ2V0cyBzZW50IHdoZW4gTlNUZXh0Vmlld3MgaW4gcHJpbnRp
bmcgYWNjZXNzb3J5IHZpZXdzIGFyZSBmb2N1c2VkLiAgTS5QLiBOb3RpY2UgLSAxMi83LzAwCiAg
ICAgQk9PTCBpZ25vcmVFdmVudCA9IE5POwogICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IFtp
bkV2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
IChldmVudFR5cGU9PU5TU3lzdGVtRGVmaW5lZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZpbmVkKSB7CiAg
ICAgICAgIHNob3J0IGV2ZW50U3VidHlwZSA9IFtpbkV2ZW50IHN1YnR5cGVdOwotICAgICAgICBp
ZiAoZXZlbnRTdWJ0eXBlPT03KSB7CisgICAgICAgIGlmIChldmVudFN1YnR5cGUgPT0gNykgewog
ICAgICAgICAgICAgaWdub3JlRXZlbnQgPSBZRVM7CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBOU0tleURv
d24pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICB9IGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAgICAgICAgLy8gSGFuZGxlIGNvbW1hbmQt
c3BhY2UgYXMgW05TQXBwIHNlbmRFdmVudDpdIGRvZXMuCiAgICAgICAgIGlmIChbTlNJbnB1dENv
bnRleHQgcHJvY2Vzc0lucHV0S2V5QmluZGluZ3M6aW5FdmVudF0pIHsKICAgICAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCmluZGV4IGQxYzU1MGYxZmNl
NzRkZGVlMTI3MTRlYmEzM2Q4NzNkMGZjNjMyOTIuLjZmNTM1ZDQwMzkxY2E3ZDA1NDU5YmRiZjE2
MzRjMzY0OGM1ZjI3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9ISVdl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQpAQCAt
MzcsNiArMzcsNyBAQAogI2ltcG9ydCAiV2ViS2l0LmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2Ug
TlNXaW5kb3cgKEFwcEtpdFNlY3JldHNISVdlYlZpZXdLbm93cykKIC0gKHZvaWQpX3JlbW92ZVdp
bmRvd1JlZjsKQEAgLTUzOSw3ICs1NDAsNyBAQCBDb250ZXh0TWVudUNsaWNrKCBISVdlYlZpZXcq
IGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiAgICAgTlNQb2ludCBsb2NhdGlvbiA9IE5TTWFr
ZVBvaW50KHBvaW50LngsIFt3aW5kb3cgZnJhbWVdLnNpemUuaGVpZ2h0IC0gcG9pbnQueSk7CiAg
ICAgCiAgICAgLy8gTWFrZSB1cCBhbiBldmVudCB3aXRoIHRoZSBwb2ludCBhbmQgc2VuZCBpdCB0
byB0aGUgd2luZG93LgotICAgIE5TRXZlbnQgKmtpdEV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24KKyAgICBOU0V2ZW50ICpraXRFdmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246bG9jYXRpb24KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0RXZlbnRU
aW1lKGluRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TRXZl
bnRFeHRyYXMubSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCmlu
ZGV4IGVlYjhjOTIxZDk0YjU4YmU0YmZjZmJmMTM1NGM4YWMwNWU1NGZjMGYuLmQ4ZmIyYTFmNjE5
YTkzNDVjOGQ2MzA3YzUzMzBlODVlYjBmMDY5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2Mv
V2ViTlNFdmVudEV4dHJhcy5tCkBAIC0yOSwxNiArMjksMTQgQEAKICNpZiAhUExBVEZPUk0oSU9T
KQogCiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViTlNFdmVudEV4dHJhcy5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbXBsZW1lbnRh
dGlvbiBOU0V2ZW50IChXZWJFeHRyYXMpCiAKIC0oQk9PTClfd2ViX2lzS2V5RXZlbnQ6KHVuaWNo
YXIpa2V5CiB7CiAgICAgaW50IHR5cGUgPSBbc2VsZiB0eXBlXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAodHlwZSAhPSBOU0tleURvd24gJiYgdHlwZSAhPSBO
U0tleVVwKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICh0eXBlICE9IE5T
RXZlbnRUeXBlS2V5RG93biAmJiB0eXBlICE9IE5TRXZlbnRUeXBlS2V5VXApCiAgICAgICAgIHJl
dHVybiBOTzsKICAgICAKICAgICBOU1N0cmluZyAqY2hhcnMgPSBbc2VsZiBjaGFyYWN0ZXJzSWdu
b3JpbmdNb2RpZmllcnNdOwpAQCAtNjcsMTAgKzY1LDcgQEAgLSAoQk9PTClfd2ViX2lzRXNjYXBl
S2V5RXZlbnQKIAogLSAoQk9PTClfd2ViX2lzT3B0aW9uVGFiS2V5RXZlbnQKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gKFtzZWxmIG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSAmJiBbc2VsZiBfd2ViX2lzVGFiS2V5RXZlbnRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW3NlbGYgbW9kaWZpZXJG
bGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSAmJiBbc2VsZiBfd2ViX2lzVGFiS2V5
RXZlbnRdOwogfQogCiAtIChCT09MKV93ZWJfaXNSZXR1cm5PckVudGVyS2V5RXZlbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYk5TVmlld0V4dHJhcy5tCmluZGV4IDNkYzhmN2Y3YzFmYTQ2NmUx
YzdiYjY2MzUwNzEyMDJiMGJmODAyZTcuLjc0ODkwZDVlMjdkZTY5NmExNGI5NjgxZmQ5ZGIyNmZm
YThmYmViNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0
cmFzLm0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1ZpZXdFeHRyYXMubQpAQCAt
MzgsNiArMzgsNyBAQAogCiAjaWYgIVBMQVRGT1JNKElPUykKICNpbXBvcnQgPFdlYktpdExlZ2Fj
eS9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04
MiwxMiArODMsOSBAQCAtIChCT09MKV93ZWJfZHJhZ1Nob3VsZEJlZ2luRnJvbU1vdXNlRG93bjoo
TlNFdmVudCAqKW1vdXNlRG93bkV2ZW50CiAgICAgTlNFdmVudCAqbmV4dEV2ZW50LCAqZmlyc3RF
dmVudCwgKmRyYWdFdmVudCwgKm1vdXNlVXA7CiAgICAgQk9PTCBkcmFnSXQ7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW21vdXNlRG93bkV2ZW50IHR5cGVd
ICE9IE5TTGVmdE1vdXNlRG93bikgeworICAgIGlmIChbbW91c2VEb3duRXZlbnQgdHlwZV0gIT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CiAgICAgICAgIHJldHVybiBOTzsKICAgICB9Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBuZXh0RXZlbnQgPSBuaWw7CiAgICAg
Zmlyc3RFdmVudCA9IG5pbDsKQEAgLTk1LDkgKzkzLDcgQEAgLSAoQk9PTClfd2ViX2RyYWdTaG91
bGRCZWdpbkZyb21Nb3VzZURvd246KE5TRXZlbnQgKiltb3VzZURvd25FdmVudAogICAgIG1vdXNl
VXAgPSBuaWw7CiAgICAgZHJhZ0l0ID0gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICB3aGlsZSAoKG5leHRFdmVudCA9IFtbc2VsZiB3aW5kb3ddIG5leHRFdmVu
dE1hdGNoaW5nTWFzazooTlNMZWZ0TW91c2VVcE1hc2sgfCBOU0xlZnRNb3VzZURyYWdnZWRNYXNr
KQorICAgIHdoaWxlICgobmV4dEV2ZW50ID0gW1tzZWxmIHdpbmRvd10gbmV4dEV2ZW50TWF0Y2hp
bmdNYXNrOihOU0V2ZW50TWFza0xlZnRNb3VzZVVwIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEcmFn
Z2VkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW50aWxEYXRlOmV4cGlyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluTW9kZTpOU0V2ZW50VHJhY2tpbmdSdW5Mb29wTW9kZQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXF1ZXVl
OllFU10pICE9IG5pbCkgewpAQCAtMTA1LDcgKzEwMSw3IEBAIC0gKEJPT0wpX3dlYl9kcmFnU2hv
dWxkQmVnaW5Gcm9tTW91c2VEb3duOihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAgICAgICAg
ICAgIGZpcnN0RXZlbnQgPSBuZXh0RXZlbnQ7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoW25l
eHRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURyYWdnZWQpIHsKKyAgICAgICAgaWYgKFtuZXh0
RXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkKSB7CiAgICAgICAgICAg
ICBmbG9hdCBkZWx0YXggPSBBQlMoW25leHRFdmVudCBsb2NhdGlvbkluV2luZG93XS54IC0gW21v
dXNlRG93bkV2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLngpOwogICAgICAgICAgICAgZmxvYXQgZGVs
dGF5ID0gQUJTKFtuZXh0RXZlbnQgbG9jYXRpb25JbldpbmRvd10ueSAtIFttb3VzZURvd25FdmVu
dCBsb2NhdGlvbkluV2luZG93XS55KTsKICAgICAgICAgICAgIGRyYWdFdmVudCA9IG5leHRFdmVu
dDsKQEAgLTExOSwxMiArMTE1LDExIEBAIC0gKEJPT0wpX3dlYl9kcmFnU2hvdWxkQmVnaW5Gcm9t
TW91c2VEb3duOihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAgICAgICAgICAgICAgICBkcmFn
SXQgPSBZRVM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZSBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZVVwKSB7CisgICAgICAg
IH0gZWxzZSBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwKSB7
CiAgICAgICAgICAgICBtb3VzZVVwID0gbmV4dEV2ZW50OwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICAvLyBT
aW5jZSB3ZSd2ZSBiZWVuIGRlcXVldWluZyB0aGUgZXZlbnRzIChJZiB3ZSBkb24ndCwgd2UnbGwg
bmV2ZXIgc2VlIHRoZSBtb3VzZSB1cC4uLiksCiAgICAgLy8gd2UgbmVlZCB0byBwdXNoIHNvbWUg
b2YgdGhlIGV2ZW50cyBiYWNrIG9uLiAgSXQgbWFrZXMgc2Vuc2UgdG8gcHV0IHRoZSBmaXJzdCBh
bmQgbGFzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYWQ1OTM2OTZkNGI5YTk3NjZhM2Ni
Y2UwM2VhZDZlYWZkMDc5NTc5Li42ZDA2YzcwMTBjNTJiODFkNTMxNTFlMTg1MmQ0MTQ0MWI5MTI5
ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9JZGVudGlmaWVyUmVwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xs
ZXIuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9B
cHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIGV4dGVybiAiQyIgewogI2ltcG9y
dCAiV2ViS2l0UGx1Z2luSG9zdC5oIgpAQCAtMjMwLDEwICsyMzEsNyBAQCB2b2lkIE5ldHNjYXBl
UGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1fcGxhY2Vob2xkZXJX
aW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwogICAgIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBh
ZG9wdE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dN
YXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhb
W1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNN
YWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNz
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKIAogICAgIG1fYWN0
aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVBY3RpdmVOb3RpZmljYXRp
b24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nQmxvY2s6XihO
U05vdGlmaWNhdGlvbiAqKXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKTsgfV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlhZTdhMTc3ZTQ1MTJmNDU2
NDFkYWEyNDM3ZDRjOS4uYWEwZGY1NDI0YTQyNmZkM2FkNzgzNDM0NmNkN2IyYWQ0YzI5NTUzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtNjYsNiArNjYsNyBAQAogI2ltcG9y
dCA8dXRpbGl0eT4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3Rm
L1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRp
YmlsaXR5RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIGV4
dGVybiAiQyIgewpAQCAtNDY1LDE1ICs0NjYsMTIgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHk6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludCBrZXlDb2QK
IHsKICAgICBOU0RhdGEgKmNoYXJhY3RlcnNEYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiZj
aGFyYWN0ZXIgbGVuZ3RoOjFdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CiAgICAgX1dLUEhQbHVnaW5JbnN0YW5jZUtleWJvYXJkRXZlbnQobV9wbHVnaW5Ib3N0UHJveHkt
PnBvcnQoKSwgbV9wbHVnaW5JRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0sIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtleURvd24sIE5TQ29tbWFuZEtl
eU1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBDb2NvYUV2ZW50
S2V5RG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3Ro
XSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFy
Kj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkp
LCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmFsc2UsIGtleUNvZGUsIGNoYXJhY3Rlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpmbGFnc0No
YW5nZWQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXgg
Mzc2NjcyYjY4NjczN2M3NzNlZGM2ZGY2ODRiMjg3OTgyOTY0ZjU0MS4uZGZjOGNjYTcyODI0OGE4
OTZhODEzZTZmNzkyNDJjMDk0MmIyNWM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5t
bQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQg
PHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC00NDMsMTAgKzQ0
NCw3IEBAIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0CiB7CiAgICAgaWYgKF9jYWNoZWRT
bmFwc2hvdCkgewogICAgICAgICBOU1JlY3Qgc291cmNlUmVjdCA9IHsgTlNaZXJvUG9pbnQsIFtf
Y2FjaGVkU25hcHNob3QuZ2V0KCkgc2l6ZV0gfTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0OltzZWxm
IGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VP
dmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBb
X2NhY2hlZFNuYXBzaG90LmdldCgpIGRyYXdJblJlY3Q6W3NlbGYgYm91bmRzXSBmcm9tUmVjdDpz
b3VyY2VSZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFj
dGlvbjoxXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJD
YXJib24ubW0KaW5kZXggZjJkN2U5ZjQxZjZlYmQ1YjljYjgzNWVkNjJkYzEzYTFmYWEyZDg3YS4u
ZjUwOWJkMDFmNWMzZjQwNDc3MmE0NDc5ZmE0MTJiNWEyNWRjNDAzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZl
bnRIYW5kbGVyQ2FyYm9uLm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJOZXRzY2Fw
ZVBsdWdpblZpZXcuaCIKICNpbXBvcnQgIldlYktpdExvZ2dpbmcuaCIKICNpbXBvcnQgIldlYktp
dFN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAKIC8vIFNlbmQgbnVsbCBldmVudHMgNTAgdGltZXMgYSBzZWNvbmQg
d2hlbiBhY3RpdmUsIHNvIHBsdWctaW5zIGxpa2UgRmxhc2ggZ2V0IGhpZ2ggZnJhbWUgcmF0ZXMu
CiAjZGVmaW5lIE51bGxFdmVudEludGVydmFsQWN0aXZlICAgICAgICAgMC4wMgpAQCAtNjIsMjIg
KzYzLDIyIEBAIHN0YXRpYyBFdmVudE1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChOU0V2ZW50
ICpldmVudCkKICAgICAKICAgICBtb2RpZmllcnMgPSAwOwogICAgIAotICAgIGlmIChldmVudFR5
cGUgIT0gTlNMZWZ0TW91c2VEb3duICYmIGV2ZW50VHlwZSAhPSBOU1JpZ2h0TW91c2VEb3duKQor
ICAgIGlmIChldmVudFR5cGUgIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duICYmIGV2ZW50VHlw
ZSAhPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duKQogICAgICAgICBtb2RpZmllcnMgfD0gYnRu
U3RhdGU7CiAgICAgCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKQor
ICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpCiAgICAg
ICAgIG1vZGlmaWVycyB8PSBjbWRLZXk7CiAgICAgCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U1NoaWZ0S2V5TWFzaykKKyAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZs
YWdTaGlmdCkKICAgICAgICAgbW9kaWZpZXJzIHw9IHNoaWZ0S2V5OwogCi0gICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0FscGhhU2hpZnRLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYg
TlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrKQogICAgICAgICBtb2RpZmllcnMgfD0gYWxwaGFM
b2NrOwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAg
aWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBt
b2RpZmllcnMgfD0gb3B0aW9uS2V5OwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbnRy
b2xLZXlNYXNrIHx8IGV2ZW50VHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duKQorICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgfHwgZXZlbnRUeXBlID09IE5T
RXZlbnRUeXBlUmlnaHRNb3VzZURvd24pCiAgICAgICAgIG1vZGlmaWVycyB8PSBjb250cm9sS2V5
OwogICAgIAogICAgIHJldHVybiBtb2RpZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2Eu
bW0KaW5kZXggYTFkMTU5YWY5NGUxNDg5YTQ4YjA5OTIxMDhkMDNmMzk4MDVmMjk5Ni4uOWM1MjAx
ZmU2MmQyNjNiZDM1ZWI1ZTcxZDRhMzcwMWFhYTkxN2U3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRs
ZXJDb2NvYS5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJm
YWNlLmgiCiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblZpZXcuaCIKICNpbXBvcnQgPHd0Zi9W
ZWN0b3IuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hOjpXZWJOZXRzY2FwZVBs
dWdpbkV2ZW50SGFuZGxlckNvY29hKFdlYk5ldHNjYXBlUGx1Z2luVmlldyogcGx1Z2luVmlldykK
ICAgICA6IFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyKHBsdWdpblZpZXcpCkBAIC0xNjEs
MTAgKzE2Miw3IEBAIHZvaWQgV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYTo6c3lu
dGhldGljS2V5RG93bldpdGhDb21tYW5kTW9kaWZpZXIoaW50CiAgICAgCiAgICAgTlBDb2NvYUV2
ZW50IGV2ZW50OwogICAgIGluaXRpYWxpemVFdmVudCgmZXZlbnQsIE5QQ29jb2FFdmVudEtleURv
d24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGV2ZW50LmRhdGEu
a2V5Lm1vZGlmaWVyRmxhZ3MgPSBOU0NvbW1hbmRLZXlNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIGV2ZW50LmRhdGEua2V5Lm1vZGlmaWVyRmxhZ3MgPSBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29tbWFuZDsKICAgICBldmVudC5kYXRhLmtleS5rZXlDb2RlID0ga2V5Q29kZTsK
ICAgICBldmVudC5kYXRhLmtleS5pc0FSZXBlYXQgPSBmYWxzZTsKICAgICBldmVudC5kYXRhLmtl
eS5jaGFyYWN0ZXJzID0gKE5QTlNTdHJpbmcgKiljaGFyYWN0ZXJzLmdldCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCmluZGV4IGM0NjY3
MGI0ZDc5ZDhjZTg0ZmJkNDExNThmYjczMDgwYWU4MDQ3OWIuLjc5ZjI4ZmI4MmNiN2ZkOTM5Y2Qz
MzIzNGVjNDdlYzAzOTY2ZWU1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvUG9wdXBNZW51Q2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTkwLDE3ICs5MSwxMSBAQCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQog
ICAgICAgICB9CiAKICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0eWxlPiBw
YXJhZ3JhcGhTdHlsZSA9IGFkb3B0TlMoW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3Jh
cGhTdHlsZV0gbXV0YWJsZUNvcHldKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlv
biA9PSBMVFIgPyBOU0xlZnRUZXh0QWxpZ25tZW50IDogTlNSaWdodFRleHRBbGlnbm1lbnRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0
QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVGV4dEFsaWdubWVudExlZnQg
OiBOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0
aW5nRGlyZWN0aW9uID0gc3R5bGUudGV4dERpcmVjdGlvbigpID09IExUUiA/IE5TV3JpdGluZ0Rp
cmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAg
ICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbjp3cml0aW5nRGlyZWN0
aW9uXTsKICAgICAgICAgaWYgKHN0eWxlLmhhc1RleHREaXJlY3Rpb25PdmVycmlkZSgpKSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBSZXRhaW5QdHI8
TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxv
Y10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1RleHRXcml0aW5nRGlyZWN0
aW9uT3ZlcnJpZGVdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAg
IFJldGFpblB0cjxOU051bWJlcj4gd3JpdGluZ0RpcmVjdGlvblZhbHVlID0gYWRvcHROUyhbW05T
TnVtYmVyIGFsbG9jXSBpbml0V2l0aEludGVnZXI6d3JpdGluZ0RpcmVjdGlvbiArIE5TV3JpdGlu
Z0RpcmVjdGlvbk92ZXJyaWRlXSk7CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJheT4gd3Jp
dGluZ0RpcmVjdGlvbkFycmF5ID0gYWRvcHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2Jq
ZWN0czp3cml0aW5nRGlyZWN0aW9uVmFsdWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAgICAgW2F0
dHJpYnV0ZXMgc2V0T2JqZWN0OndyaXRpbmdEaXJlY3Rpb25BcnJheS5nZXQoKSBmb3JLZXk6TlNX
cml0aW5nRGlyZWN0aW9uQXR0cmlidXRlTmFtZV07CiAgICAgICAgIH0KQEAgLTIwNiwxOCArMjAx
LDE1IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmll
dyogdiwgaW50IGluZGV4KQogCiAgICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZTsKICAgICBz
d2l0Y2ggKG1fY2xpZW50LT5tZW51U3R5bGUoKS5tZW51U2l6ZSgpKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgY2FzZSBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZU5vcm1hbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsK
KyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZVNtYWxsOgotICAgICAg
ICBjb250cm9sU2l6ZSA9IE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUg
PSBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9wdXBNZW51
U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TTWluaUNv
bnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVNaW5pOwogICAg
ICAgICBicmVhazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBX
S1BvcHVwTWVudShtZW51LCBsb2NhdGlvbiwgcm91bmRmKE5TV2lkdGgocikpLCBkdW1teVZpZXcu
Z2V0KCksIGluZGV4LCB0b05TRm9udChmb250KSwgY29udHJvbFNpemUsICFtX2NsaWVudC0+bWVu
dVN0eWxlKCkuaGFzRGVmYXVsdEFwcGVhcmFuY2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCmluZGV4IDkx
NGQ4ZTA2M2U4ZWIwZmNhOWVhZTlkN2JiYmM4MWY2MWI3Yjg4ZDYuLmEzOWI5M2U3N2UyNmE2NDMz
YjkyODg4ZjE5MzNhMDk5NTUxNWM2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCkBAIC02MCw2ICs2MCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9VUkwuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01Qcml2YXRlLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTI2OSwxMCArMjcwLDcgQEAgdm9pZCBXZWJDb250
ZXh0TWVudUNsaWVudDo6c2hvd0NvbnRleHRNZW51KCkKIAogICAgIE5TVmlldyogdmlldyA9IGZy
YW1lVmlldy0+ZG9jdW1lbnRWaWV3KCk7CiAgICAgSW50UG9pbnQgcG9pbnQgPSBmcmFtZVZpZXct
PmNvbnRlbnRzVG9XaW5kb3cocGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGl0VGVzdFJl
c3VsdCgpLnJvdW5kZWRQb2ludEluSW5uZXJOb2RlRnJhbWUoKSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2
ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93biBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdz
OjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0g
Y29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gbG9jYXRpb246cG9pbnQg
bW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbW3ZpZXcgd2luZG93XSB3
aW5kb3dOdW1iZXJdIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3Vy
ZToxXTsKIAogICAgIC8vIFNob3cgdGhlIGNvbnRleHR1YWwgbWVudSBmb3IgdGhpcyBldmVudC4K
ICAgICBib29sIGlzU2VydmljZXNNZW51OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAxMTQ3NmEwMzI3
NmVkZDk0ZTc1NTUxMzkzMGFiNDYxOWJjZWRmOTUzLi4wMjdlNTRiNzM3ZWFlYjA3OGExNmYwZWZk
NmVlOGRiZWM4M2YzNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTQ2LDYgKzE0Niw4IEBACiAj
aW1wb3J0ICJXZWJLaXRWZXJzaW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJXZWJNYWlsRGVsZWdhdGUu
aCIKICNpbXBvcnQgIldlYlVJS2l0RGVsZWdhdGUuaCIKKyNlbHNlCisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbmRpZgogCiAjaWYgVVNFKFFV
SUNLX0xPT0spCkBAIC0xNTYxLDE3ICsxNTYzLDE0IEBAIE5TRGljdGlvbmFyeSAqV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmFjdGlvbkRpY3Rpb25hcnkoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0
CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBjb25zdCBVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlT
dGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0X2Nhc3Q8RXZlbnQqPihldmVu
dCkpOwogICAgIGlmIChrZXlTdGF0ZUV2ZW50ICYmIGtleVN0YXRlRXZlbnQtPmlzVHJ1c3RlZCgp
KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgIGlmIChrZXlT
dGF0ZUV2ZW50LT5jdHJsS2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29u
dHJvbEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdDb250cm9sOwogICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+YWx0S2V5KCkpCi0gICAg
ICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQWx0ZXJuYXRlS2V5TWFzazsKKyAgICAgICAgICAg
IG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICAgICAgaWYg
KGtleVN0YXRlRXZlbnQtPnNoaWZ0S2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9
IE5TU2hpZnRLZXlNYXNrOworICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnU2hpZnQ7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5tZXRhS2V5KCkpCi0g
ICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIH0KICNlbHNlCiAgICAgLy8gTm8gbW9kaWZpZXIgZmxh
Z3Mgb24gaU9TIHJpZ2h0IG5vdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDkwNzg3ZDYyMGIzODFlNTM4Yzdi
MWFkZGM3NmYyZDI5YzU5MzIyMDkuLjc2YjJjZDJjYmYxMGIyMGEzOTkzYzJmM2Y3YjcxOWNiZTdh
NTgxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTUzLDYgKzUzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
U29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01FeHRlbnNpb25zLmg+CiAj
aW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+
CiAKIFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJh
bWV3b3JrcywgQSkKQEAgLTE5MSwxMCArMTkyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudDo6YXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2YWlsYWJsZSkKIAogYm9v
bCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKCkKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1ttX2Zyb250ZW5kV2luZG93Q29udHJv
bGxlciB3aW5kb3ddIHN0eWxlTWFza10gJiBOU0Z1bGxTY3JlZW5XaW5kb3dNYXNrKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250cm9s
bGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TV2luZG93U3R5bGVNYXNrRnVsbFNjcmVlbikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIGNhbkF0dGFjaFdpbmRvdygpOwpAQCAt
NDY1LDEwICs0NjMsNyBAQCAtIChOU1dpbmRvdyAqKXdpbmRvdwogICAgIGlmICh3aW5kb3cpCiAg
ICAgICAgIHJldHVybiB3aW5kb3c7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBOU1VJbnRlZ2VyIHN0eWxlTWFzayA9IE5TVGl0bGVkV2luZG93TWFzayB8IE5TQ2xv
c2FibGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJs
ZVdpbmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNXaW5kb3dT
dHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHls
ZU1hc2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5k
b3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogICAgIHdpbmRvdyA9IFtbTlNXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBpbml0aWFsV2luZG93
V2lkdGgsIGluaXRpYWxXaW5kb3dIZWlnaHQpIHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpO
U0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbd2luZG93IHNldERlbGVnYXRl
OnNlbGZdOwogICAgIFt3aW5kb3cgc2V0TWluU2l6ZTpOU01ha2VTaXplKG1pbmltdW1XaW5kb3dX
aWR0aCwgbWluaW11bVdpbmRvd0hlaWdodCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQppbmRleCAwMmE3NTZmNzY3NzMxNWM2MjJk
ZDgxZDk5YTI5ZmFjM2ZiNWJmOWUyLi42NjdiMmM1YTU0NDdhYWU0NmE1ZTYwN2M1NzQxNDQwMjcy
YjQ2MjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9k
ZUhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9k
ZUhpZ2hsaWdodC5tbQpAQCAtMzksNiArMzksOCBAQAogI2ltcG9ydCAiV2ViVmlldy5oIgogI2lt
cG9ydCA8V2ViQ29yZS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dBS1dpbmRv
dy5oPgorI2Vsc2UKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtOTEsMTAgKzkz
LDcgQEAgLSAoaWQpaW5pdFdpdGhUYXJnZXRWaWV3OihOU1ZpZXcgKil0YXJnZXRWaWV3IGluc3Bl
Y3RvckNvbnRyb2xsZXI6KEluc3BlY3RvckNvbnQKICAgICBfaW5zcGVjdG9yQ29udHJvbGxlciA9
IGluc3BlY3RvckNvbnRyb2xsZXI7CiAKICNpZiAhUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGludCBzdHlsZU1hc2sgPSBOU0JvcmRlcmxlc3NX
aW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGludCBzdHlsZU1h
c2sgPSBOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3M7CiAgICAgTlNSZWN0IGNvbnRlbnRSZWN0
ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0OltzZWxmIF9jb21wdXRlSGlnaGxp
Z2h0V2luZG93RnJhbWVdIHN0eWxlTWFzazpzdHlsZU1hc2tdOwogICAgIF9oaWdobGlnaHRXaW5k
b3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0
eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5P
XTsKICAgICBbX2hpZ2hsaWdodFdpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgY2xl
YXJDb2xvcl1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZVZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRl
eCA1ZWMxOTc4NWRhNzI5N2IxYTI0NGM1NzYzMjA3MGM0YmRlOTQ2YjA1Li41Yjg2NzE1NDBlNmY4
YTEyMzFlY2UxZjU0OTQ0YjE1ODg5Mzc0YjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lVmlldy5tbQpAQCAtODMsNiArODMsNyBAQAogI2Vsc2UKICNpbXBvcnQgIldlYk5T
UGFzdGVib2FyZEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNXaW5kb3dFeHRyYXMuaCIKKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtOTE1LDkgKzkxNiw3IEBAIC0gKHZvaWQpa2V5
RG93bjooV2ViRXZlbnQgKilldmVudAogICAgIEJPT0wgY2FsbFN1cGVyID0gWUVTOwogICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKICAgICBCT09MIG1haW50YWluc0Jh
Y2tGb3J3YXJkTGlzdCA9IGNvcmVGcmFtZSAmJiBzdGF0aWNfY2FzdDxCYWNrRm9yd2FyZExpc3Qq
Pihjb3JlRnJhbWUtPnBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPmVuYWJsZWQoKSA/
IFlFUyA6IE5POwotICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCiAg
ICAgY291bnQgPSBbY2hhcmFjdGVycyBsZW5ndGhdOwogICAgIGZvciAoaW5kZXggPSAwOyBpbmRl
eCA8IGNvdW50OyArK2luZGV4KSB7CiAgICAgICAgIHN3aXRjaCAoW2NoYXJhY3RlcnMgY2hhcmFj
dGVyQXRJbmRleDppbmRleF0pIHsKQEAgLTkyOCw3ICs5MjcsNyBAQCAtICh2b2lkKWtleURvd246
KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8g
VGhpcyBvZGQgYmVoYXZpb3IgbWF0Y2hlcyBzb21lIGV4aXN0aW5nIGJyb3dzZXJzLAogICAgICAg
ICAgICAgICAgIC8vIGluY2x1ZGluZyBXaW5kb3dzIElFCi0gICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU1NoaWZ0S2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSB7CiAgICAgICAgICAgICAgICAg
ICAgIFtzZWxmIF9nb0ZvcndhcmRdOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgIFtzZWxmIF9nb0JhY2tdOwpAQCAtOTQzLDcgKzk0Miw3IEBAIC0gKHZvaWQp
a2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIg
PSBZRVM7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQp
IHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZVVwOm5pbF07CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZURv
d246bmlsXTsKQEAgLTk4NCw3ICs5ODMsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICop
ZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNVcEFycm93
RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQg
b3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgot
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlND
b250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChO
U0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC05OTgsOSArOTk3LDkgQEAgLSAodm9pZClr
ZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgW3Nl
bGYgc2Nyb2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
bikgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxMaW5l
VXA6bmlsXTsKQEAgLTEwMDksNyArMTAwOCw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25B
cnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlm
dGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5j
ZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8
IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTAyMyw5ICsxMDIyLDkgQEAgLSAo
dm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmll
ckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmll
ckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAg
ICAgW3NlbGYgc2Nyb2xsVG9FbmRPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
bikgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlRG93bjpuaWxdOwogICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbExp
bmVEb3duOm5pbF07CkBAIC0xMDM0LDEyICsxMDMzLDEyIEBAIC0gKHZvaWQpa2V5RG93bjooV2Vi
RXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBO
U0xlZnRBcnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRs
ZSBzaGlmdGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBh
IGNoYW5jZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5
TWFzayB8IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bnRyb2wpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8v
IENoZWNrIGJhY2svZm9yd2FyZCByZWxhdGVkIGtleXMuCi0gICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAg
ICAgICAgICBpZiAoIW1haW50YWluc0JhY2tGb3J3YXJkTGlzdCkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC0xMDUyLDcgKzEwNTEsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQK
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1h
c2spIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9k
aWZpZXJGbGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfcGFnZUhv
cml6b250YWxseTpZRVNdOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgX3Njcm9sbExpbmVIb3Jpem9udGFsbHk6WUVTXTsKQEAgLTEw
NjIsMTIgKzEwNjEsMTIgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1bmN0aW9u
S2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRy
b2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAg
ICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtl
eU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1v
ZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIENoZWNrIGJhY2svZm9yd2Fy
ZCByZWxhdGVkIGtleXMuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0Nv
bW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1haW50
YWluc0JhY2tGb3J3YXJkTGlzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVy
ID0gWUVTOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDgwLDcgKzEwNzks
NyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfcGFnZUhvcml6b250YWxseTpOT107CiAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2Vs
ZiBfc2Nyb2xsTGluZUhvcml6b250YWxseTpOT107CkBAIC0xMDkwLDcgKzEwODksNiBAQCAtICh2
b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBpZiAoY2Fs
bFN1cGVyKSB7CiAgICAgICAgIFtzdXBlciBrZXlEb3duOmV2ZW50XTsKICAgICB9IGVsc2Ugewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJv
bGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xs
ZXIubW0KaW5kZXggOWZkOTU2NjE3ZjA3YzZjZjZmNDg1N2NjOWUyMjE0MGIyMTg4YjJlNC4uZjU0
MzQxZmRiYjRlNGQzY2VkOWRlZDE2M2YxODQzMmIwNDZkOWIwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCkBAIC00Nyw2
ICs0Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYldpbmRvd0FuaW1hdGlvbi5oPgogI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTg2LDExICs4Nyw4IEBAIEBpbXBsZW1lbnRhdGlv
biBXZWJGdWxsU2NyZWVuQ29udHJvbGxlcgogI3ByYWdtYSBtYXJrIEluaXRpYWxpemF0aW9uCiAt
IChpZClpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgLy8g
RG8gbm90IGRlZmVyIHdpbmRvdyBjcmVhdGlvbiwgdG8gbWFrZSBzdXJlIC13aW5kb3dOdW1iZXIg
aXMgY3JlYXRlZCAobmVlZGVkIGJ5IFdlYldpbmRvd1NjYWxlQW5pbWF0aW9uKS4KLSAgICBOU1dp
bmRvdyAqd2luZG93ID0gW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDpOU1plcm9SZWN0IHN0eWxlTWFzazpOU0Nsb3NhYmxlV2luZG93TWFzayBiYWNr
aW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2lu
ZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TV2lu
ZG93U3R5bGVNYXNrQ2xvc2FibGUgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVy
Ok5PXTsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dp
bmRvdyByZWxlYXNlXTsKICAgICBpZiAoIXNlbGYpCkBAIC00NjIsMTAgKzQ2MCw3IEBAIC0gKHZv
aWQpX3N3YXBWaWV3OihOU1ZpZXcqKXZpZXcgd2l0aDooTlNWaWV3KilvdGhlclZpZXcKIAogc3Rh
dGljIFJldGFpblB0cjxOU1dpbmRvdz4gY3JlYXRlQmFja2dyb3VuZEZ1bGxzY3JlZW5XaW5kb3co
TlNSZWN0IGZyYW1lKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IE5TV2luZG93ICp3aW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
OmZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6ZnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0T3BhcXVlOllF
U107CiAgICAgW3dpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgYmxhY2tDb2xvcl1d
OwogICAgIFt3aW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDU1ZjFhZTJkNDU4ZjU2MTM5NWZjMzI2YWFj
YmM2MGY0ZGIzMjEzYzQuLmEyMTU1ODQ1NDI2N2JkODgzZWQ5ODA1NTljMzU1N2JhNDM4Y2MwMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTQwLDEyICsx
NDAsMTMgQEAKICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiAhUExBVEZPUk0oSU9TKQor
I2ltcG9ydCAiV2ViTlNFdmVudEV4dHJhcy5oIgorI2ltcG9ydCAiV2ViTlNQYXN0ZWJvYXJkRXh0
cmFzLmgiCiAjaW1wb3J0IDxBcHBLaXQvTlNBY2Nlc3NpYmlsaXR5Lmg+CiAjaW1wb3J0IDxBcHBs
aWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
TlNNZW51U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+
Ci0jaW1wb3J0ICJXZWJOU0V2ZW50RXh0cmFzLmgiCi0jaW1wb3J0ICJXZWJOU1Bhc3RlYm9hcmRF
eHRyYXMuaCIKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogI2VuZGlmCiAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgpAQCAtMTM1
MSwxMiArMTM1Miw5IEBAIC0gKHZvaWQpX3Bhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZDoo
TlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZAogCiAtICh2b2lkKV9wb3N0RmFrZU1vdXNlTW92ZWRF
dmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50OihOU0V2ZW50ICopZmxhZ3NDaGFuZ2VkRXZlbnQKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9uOmZs
YWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0K
KyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3Vz
ZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KICAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFn
c0NoYW5nZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50
aW1lc3RhbXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgogICAg
ICAgICBjb250ZXh0Om51bGxwdHIgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6
MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW3NlbGYgbW91c2VNb3ZlZDpm
YWtlRXZlbnRdOwogfQogCkBAIC0xNTA2LDEwICsxNTA0LDcgQEAgLSAodm9pZClfc2V0TW91c2VE
b3duRXZlbnQ6KFdlYkV2ZW50ICopZXZlbnQKICNlbmRpZgogewogI2lmICFQTEFURk9STShJT1Mp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJUKCFldmVudCB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU1Jp
Z2h0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU090aGVyTW91c2VEb3duKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBU1NFUlQoIWV2ZW50IHx8IFtldmVudCB0eXBl
XSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURvd24pOwogI2Vsc2UKICAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gV2ViRXZl
bnRNb3VzZURvd24pOwogI2VuZGlmCkBAIC0xNjYxLDE2ICsxNjU2LDE3IEBAIC0gKGlkKV9icmlk
Z2UKIAogLSAodm9pZClfdXBkYXRlTW91c2VvdmVyV2l0aEZha2VFdmVudAogeworICAgIE5TRXZl
bnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1v
dXNlTW92ZWQKKyAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkCi0gICAgICAgIGxvY2F0aW9uOltbc2VsZiB3
aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisgICAg
ICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJy
ZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJ
bnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3
aW5kb3ddIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpudWxscHRyCiAgICAgICAgIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogCiAgICAgW3NlbGYgX3VwZGF0ZU1vdXNlb3ZlcldpdGhFdmVudDpmYWtlRXZl
bnRdOwogfQpAQCAtMTg2OCwxMSArMTg2NCw4IEBAIC0gKEJPT0wpX2luc2lkZUFub3RoZXJIVE1M
VmlldwogI2lmICFQTEFURk9STShJT1MpCiBzdGF0aWMgQk9PTCBpc1F1aWNrTG9va0V2ZW50KE5T
RXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IGNvbnN0IGludCBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxlYXNl
ZCA9IDk7Ci0gICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU1N5c3RlbURlZmluZWQgJiYgW2V2
ZW50IHN1YnR5cGVdID09IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJl
bGVhc2VkICYmIFtldmVudCBkYXRhMV0gPT0gJ2xrdXAnOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVTeXN0ZW1EZWZp
bmVkICYmIFtldmVudCBzdWJ0eXBlXSA9PSBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29t
YmluYXRpb25SZWxlYXNlZCAmJiBbZXZlbnQgZGF0YTFdID09ICdsa3VwJzsKIH0KICNlbmRpZgog
CkBAIC0xOTI4LDE0ICsxOTIxLDExIEBAIC0gKE5TVmlldyAqKWhpdFRlc3Q6KE5TUG9pbnQpcG9p
bnQKICAgICBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6IFdoeSBkb2Vzbid0IHRoaXMgaW5jbHVk
ZSBtb3VzZSBlbnRlcmVkL2V4aXRlZCBldmVudHMsIG9yIG90aGVyIG1vdXNlIGJ1dHRvbiBldmVu
dHM/CiAgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW1tzZWxmIHdpbmRvd10gY3VycmVudEV2ZW50
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FwdHVyZUhp
dHNPblN1YnZpZXdzID0gIShbZXZlbnQgdHlwZV0gPT0gTlNNb3VzZU1vdmVkCi0gICAgICAgICAg
ICB8fCBbZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1vdXNlRG93bgotICAgICAgICAgICAgfHwgKFtl
dmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TQ29udHJvbEtleU1hc2spICE9IDApCi0gICAgICAgICAgICB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNGbGFnc0NoYW5nZWQKKyAgICAgICAgY2FwdHVyZUhpdHNPblN1YnZpZXdzID0gIShbZXZlbnQg
dHlwZV0gPT0gTlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAgICAgICB8fCBbZXZlbnQgdHlw
ZV0gPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bgorICAgICAgICAgICAgfHwgKFtldmVudCB0
eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gJiYgW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpCisgICAgICAgICAgICB8fCBbZXZlbnQgdHlw
ZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQKICAgICAgICAgICAgIHx8IGlzUXVpY2tMb29r
RXZlbnQoZXZlbnQpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAg
ICBpZiAoIWNhcHR1cmVIaXRzT25TdWJ2aWV3cykgewpAQCAtMjAyMyw5ICsyMDEzLDcgQEAgLSAo
dm9pZClfcmVtb3ZlVHJhY2tpbmdSZWN0czooTlNUcmFja2luZ1JlY3RUYWcgKil0YWdzIGNvdW50
OihpbnQpY291bnQKIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFeGl0ZWQKIHsKICAgICAvLyBO
b3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0
YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtl
RXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFeGl0ZWQKKyAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlTW91c2VFeGl0ZWQKICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
ICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yMDM0LDE2
ICsyMDIyLDEzIEBAIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFeGl0ZWQKICAgICAgICAgZXZl
bnROdW1iZXI6MAogICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAg
ICAgICB1c2VyRGF0YTpfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0T3duZXIgbW91
c2VFeGl0ZWQ6ZmFrZUV2ZW50XTsKIH0KIAogLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUVudGVy
ZWQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAvLyBOb3RoaW5n
IG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5T
TW91c2VFbnRlcmVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZAogICAgICAgICBsb2NhdGlvbjpO
U01ha2VQb2ludCgwLCAwKQogICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0
YW1wOjAKQEAgLTIwNTMsNyArMjAzOCw2IEBAIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFbnRl
cmVkCiAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgIHVz
ZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1JlY3RVc2VyRGF0YV07CiAgICAgW19wcml2YXRlLT50
cmFja2luZ1JlY3RPd25lciBtb3VzZUVudGVyZWQ6ZmFrZUV2ZW50XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKIH0KICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCkBAIC0yMDg5LDIx
ICsyMDczLDE4IEBAIC0gKE5TU3RyaW5nICopdmlldzooTlNWaWV3ICopdmlldyBzdHJpbmdGb3JU
b29sVGlwOihOU1Rvb2xUaXBUYWcpdGFnIHBvaW50OihOU1BvCiBzdGF0aWMgYm9vbCBtb3VzZUV2
ZW50SXNQYXJ0T2ZDbGlja09yRHJhZyhOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtl
dmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VE
b3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2Fz
ZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9CiAKQEAgLTIxMzQsMTYg
KzIxMTUsMTQgQEAgLSAodm9pZClfdXBkYXRlTW91c2VvdmVyV2l0aEV2ZW50OihOU0V2ZW50ICop
ZXZlbnQKICAgICAgICAgZmxvYXQgeVNjcm9sbCA9IHZpc2libGVSZWN0Lm9yaWdpbi55OwogICAg
ICAgICBmbG9hdCB4U2Nyb2xsID0gdmlzaWJsZVJlY3Qub3JpZ2luLng7CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkCisgICAgICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAg
ICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoLTEgLSB4U2Nyb2xsLCAtMSAtIHlTY3JvbGwp
CiAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmll
ckZsYWdzXQogICAgICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VS
ZWZlcmVuY2VEYXRlXQogICAgICAgICAgICAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdp
bmRvd051bWJlcl0KICAgICAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICAgICAgZXZl
bnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisKICAgICAgICAgaWYgKEZyYW1lKiBsYXN0SGl0Q29yZUZyYW1lID0gY29yZShb
bGFzdEhpdFZpZXcgX2ZyYW1lXSkpCiAgICAgICAgICAgICBsYXN0SGl0Q29yZUZyYW1lLT5ldmVu
dEhhbmRsZXIoKS5tb3VzZU1vdmVkKGV2ZW50LCBbW3NlbGYgX3dlYlZpZXddIF9wcmVzc3VyZUV2
ZW50XSk7CiAgICAgfQpAQCAtMjMzMCwxNiArMjMwOSwxOCBAQCAtICh2b2lkKV9hdXRvc2Nyb2xs
CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkCisg
ICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TTGVmdE1vdXNlRHJhZ2dlZAotICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93
XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICBj
b252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2
ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2
YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93
XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICBldmVudE51
bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKwogICAgIFtzZWxmIG1vdXNlRHJhZ2dlZDpmYWtlRXZlbnRdOwogI2VuZGlmCiB9CkBA
IC0zMzU0LDEyICszMzM1LDkgQEAgLSAoQk9PTClhY2NlcHRzRmlyc3RSZXNwb25kZXIKICAgICAv
LyBvciBmcm9tIGNhbGxzIGJhY2sgZnJvbSBXZWJDb3JlIG9uY2Ugd2UgYmVnaW4gbW91c2UtZG93
biBldmVudCBoYW5kbGluZy4KICNpZiAhUExBVEZPUk0oSU9TKSAgICAgICAgICAgIAogICAgIE5T
RXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24K
KyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bgogICAgICAg
ICAgICAgJiYgIV9wcml2YXRlLT5oYW5kbGluZ01vdXNlRG93bkV2ZW50CiAgICAgICAgICAgICAm
JiBOU1BvaW50SW5SZWN0KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW3NlbGYgY29udmVydFJl
Y3Q6W3NlbGYgdmlzaWJsZVJlY3RdIHRvVmlldzpuaWxdKSkgewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgICAgICByZXR1cm4gTk87CiAgICAgfQogI2Vsc2UKQEAgLTM1MjgsMTMg
KzM1MDYsMTAgQEAgLSAodm9pZCl2aWV3RGlkTW92ZVRvV2luZG93CiAKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgICAgICBpZiAoIV9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIF9wcml2YXRl
LT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JF
dmVudHNNYXRjaGluZ01hc2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6XihOU0V2ZW50ICpm
bGFnc0NoYW5nZWRFdmVudCkgeworICAgICAgICAgICAgX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2
ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFz
azpOU0V2ZW50TWFza0ZsYWdzQ2hhbmdlZCBoYW5kbGVyOl4oTlNFdmVudCAqZmxhZ3NDaGFuZ2Vk
RXZlbnQpIHsKICAgICAgICAgICAgICAgICBbc2VsZiBfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRG
b3JGbGFnc0NoYW5nZWRFdmVudDpmbGFnc0NoYW5nZWRFdmVudF07CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZsYWdzQ2hhbmdlZEV2ZW50OwogICAgICAgICAgICAgfV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBbTlNFdmVu
dCByZW1vdmVNb25pdG9yOl9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3JdOwpAQCAt
NDU0MCwxMSArNDUxNSwxMiBAQCAtICh2b2lkKW1vdXNlRG93bjooV2ViRXZlbnQgKilldmVudAog
ICAgIE5TSW5wdXRNYW5hZ2VyICpjdXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5hZ2Vy
IGN1cnJlbnRJbnB1dE1hbmFnZXJdOwogCiAgICAgaWYgKCFbY3VycmVudElucHV0TWFuYWdlciB3
YW50c1RvSGFuZGxlTW91c2VFdmVudHNdIHx8ICFbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVN
b3VzZUV2ZW50OmV2ZW50XSkgeworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAg
ICBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVyIGVuZFJldmVydGluZ0NoYW5nZTpOTyBt
b3ZlTGVmdDpOT107CiAKICAgICAgICAgLy8gSWYgdGhlIHdlYiBwYWdlIGhhbmRsZXMgdGhlIGNv
bnRleHQgbWVudSBldmVudCBhbmQgbWVudUZvckV2ZW50OiByZXR1cm5zIG5pbCwgd2UnbGwgZ2V0
IGNvbnRyb2wgY2xpY2sgZXZlbnRzIGhlcmUuCiAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8g
cGFzcyB0aGVtIGFsb25nIHRvIEtIVE1MIGEgc2Vjb25kIHRpbWUuCi0gICAgICAgIGlmICghKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgIGlmICgh
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewog
ICAgICAgICAgICAgX3ByaXZhdGUtPmlnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzID0gTk87CiAK
ICAgICAgICAgICAgIC8vIExldCBXZWJDb3JlIGdldCBhIGNoYW5jZSB0byBkZWFsIHdpdGggdGhl
IGV2ZW50LiBUaGlzIHdpbGwgY2FsbCBiYWNrIHRvIHVzCkBAIC00NTUzLDcgKzQ1MjksNiBAQCAt
ICh2b2lkKW1vdXNlRG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGNvcmVm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkubW91c2VEb3duKGV2ZW50LCBbW3NlbGYgX3dlYlZpZXddIF9w
cmVzc3VyZUV2ZW50XSk7CiAgICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAjZW5kaWYKIAogICAgIF9wcml2YXRlLT5oYW5kbGluZ01vdXNlRG93bkV2ZW50ID0g
Tk87CkBAIC00NjQyLDcgKzQ2MTcsNyBAQCAtICh2b2lkKWRyYWdnZWRJbWFnZTooTlNJbWFnZSAq
KWFuSW1hZ2UgZW5kZWRBdDooTlNQb2ludClhUG9pbnQgb3BlcmF0aW9uOihOU0RyYQogICAgIAog
ICAgIC8vIE9uY2UgdGhlIGRyYWdnaW5nIG1hY2hpbmVyeSBraWNrcyBpbiwgd2Ugbm8gbG9uZ2Vy
IGdldCBtb3VzZSBkcmFncyBvciB0aGUgdXAgZXZlbnQuCiAgICAgLy8gV2ViQ29yZSBleHBlY3Rz
IHRvIGdldCBiYWxhbmNlZCBkb3duL3VwJ3MsIHNvIHdlIG11c3QgZmFrZSB1cCBhIG1vdXNldXAu
Ci0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
TGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjp3aW5kb3dNb3VzZUxvYwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRF
dmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVd
CkBAIC00ODE4LDE5ICs0NzkzLDEyIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+
IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5RG93bjogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZv
cm1LZXlib2FyZEV2ZW50IHBsYXRmb3JtRXZlbnQgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3Jl
YXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KGV2ZW50KTsKICAgICAgICAgcGxhdGZvcm1FdmVudC5k
aXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bik7CiAgICAg
ICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGxhdGZvcm1FdmVudCwgY29yZUZyYW1l
LT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0tleVVwOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKICAgICAgICAgcmV0dXJuIEtleWJv
YXJkRXZlbnQ6OmNyZWF0ZShQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXli
b2FyZEV2ZW50KGV2ZW50KSwgY29yZUZyYW1lLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTU1MjQsMTEgKzU0OTIsOCBAQCAt
IChCT09MKV9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogICAgIGlm
ICghW3NlbGYgX2NhbkVkaXRdKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2spICE9IE5TQ29tbWFuZEtleU1h
c2spCisgICAgaWYgKChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFn
RGV2aWNlSW5kZXBlbmRlbnRGbGFnc01hc2spICE9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5k
KQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAg
ICBOU1N0cmluZyAqc3RyaW5nID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgIGlmIChbc3RyaW5n
IGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJiIl0gPT0gTlNPcmRlcmVkU2FtZSkgewpAQCAtNjQ0
OCwxNCArNjQxMywxMSBAQCAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooS2V5Ym9hcmRFdmVu
dCopZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbQogICAgICAgICByZXR1cm4g
Tk87CiAKICAgICBOU0V2ZW50ICptYWNFdmVudCA9IHBsYXRmb3JtRXZlbnQtPm1hY0V2ZW50KCk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFttYWNFdmVudCB0
eXBlXSA9PSBOU0tleURvd24gJiYgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBmaWx0
ZXJLZXlEb3duOm1hY0V2ZW50XSkKKyAgICBpZiAoW21hY0V2ZW50IHR5cGVdID09IE5TRXZlbnRU
eXBlS2V5RG93biAmJiBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVyIGZpbHRlcktleURv
d246bWFjRXZlbnRdKQogICAgICAgICByZXR1cm4gWUVTOwogICAgIAotICAgIGlmIChbbWFjRXZl
bnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCisgICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBO
U0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIAogICAgIHBhcmFtZXRlcnMuZXZlbnQgPSBldmVudDsKICAg
ICBfcHJpdmF0ZS0+aW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyA9ICZwYXJhbWV0ZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDc4ZjU2ZTQ5MWUwODZh
YWU5ODNiMzgwNjk5YTU1MTU3Y2Q5OGZkYmEuLjk2MGM2Mzc5ZDFhY2U2MDA3YmUxMjA1MmFlMjg0
NzQ3MzU0N2Q4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERG
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAg
LTY1LDYgKzY1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0
cmFzLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRU
aW1lLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxBcHBsaWNhdGlvblNl
cnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXNQcml2Lmg+CkBAIC0zMjEsMTAgKzMyMiw3IEBAIC0g
KE5TVmlldyAqKWhpdFRlc3Q6KE5TUG9pbnQpcG9pbnQKICAgICAvLyBPdmVycmlkZSBoaXRUZXN0
IHNvIHdlIGNhbiBvdmVycmlkZSBtZW51Rm9yRXZlbnQuCiAgICAgTlNFdmVudCAqZXZlbnQgPSBb
TlNBcHAgY3VycmVudEV2ZW50XTsKICAgICBOU0V2ZW50VHlwZSB0eXBlID0gW2V2ZW50IHR5cGVd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICh0eXBlID09IE5T
UmlnaHRNb3VzZURvd24gfHwgKHR5cGUgPT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgaWYgKHR5cGUgPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8fCAodHlw
ZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkpCiAgICAgICAgIHJldHVybiBzZWxmOwogCiAg
ICAgcmV0dXJuIFtzdXBlciBoaXRUZXN0OnBvaW50XTsKQEAgLTEwMDksMzkgKzEwMDcsMzMgQEAg
LSAodm9pZClQREZWaWV3V2lsbENsaWNrT25MaW5rOihQREZWaWV3ICopc2VuZGVyIHdpdGhVUkw6
KE5TVVJMICopVVJMCiAgICAgaW50IGJ1dHRvbiA9IG5vQnV0dG9uOwogICAgIFJlZlB0cjxFdmVu
dD4gZXZlbnQ7CiAgICAgc3dpdGNoIChbbnNFdmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAg
ICAgICBidXR0b24gPSAwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSAxOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSBbbnNFdmVu
dCBidXR0b25OdW1iZXJdOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNLZXlE
b3duOiB7Ci0gICAgICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGUgPSBQbGF0Zm9ybUV2
ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KG5zRXZlbnQpOwotICAgICAg
ICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURv
d24pOwotICAgICAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVu
dFR5cGVMZWZ0TW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICAgICAg
YnV0dG9uID0gW25zRXZlbnQgYnV0dG9uTnVtYmVyXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUtleURvd246IHsKKyAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBl
ID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2
ZW50KTsKKyAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6
OlJhd0tleURvd24pOworICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwg
MCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgaWYgKGJ1dHRvbiAhPSBub0J1dHRvbikgewogICAgICAgICBldmVudCA9IE1v
dXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3Vy
cmVudFRpbWUoKSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCiAjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNDb250cm9sS2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU1NoaWZ0S2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNDb21tYW5kS2V5TWFzaywKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bnRyb2wsCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24sCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICBidXR0b24sIDAs
IFdlYkNvcmU6OkZvcmNlQXRDbGljaywgMCwgMCwgdHJ1ZSk7CiAgICAgfQogCkBAIC0xMTQ5LDkg
KzExNDEsNyBAQCAtIChOU0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhGdW5jdGlvbktleToodW5p
Y2hhcilmdW5jdGlvbktleQogICAgIC8vIEZJWE1FIDQ0MDA0ODA6IHdoZW4gUERGVmlldyBpbXBs
ZW1lbnRzIHRoZSBzdGFuZGFyZCBzY3JvbGxpbmcgc2VsZWN0b3JzIHRoYXQgdGhpcwogICAgIC8v
IG1ldGhvZCBpcyB1c2VkIHRvIG1pbWljLCB3ZSBjYW4gZWxpbWluYXRlIHRoaXMgbWV0aG9kIGFu
ZCBjYWxsIHRoZW0gZGlyZWN0bHkuCiAgICAgTlNTdHJpbmcgKmtleUFzU3RyaW5nID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZmdW5jdGlvbktleSBsZW5ndGg6MV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIFtOU0V2ZW50IGtleUV2ZW50
V2l0aFR5cGU6TlNLZXlEb3duCisgICAgcmV0dXJuIFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246
TlNaZXJvUG9pbnQKICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMTE2MSw3ICsxMTUxLDYgQEAg
LSAoTlNFdmVudCAqKV9mYWtlS2V5RXZlbnRXaXRoRnVuY3Rpb25LZXk6KHVuaWNoYXIpZnVuY3Rp
b25LZXkKICAgICAgICAgIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczprZXlBc1N0cmluZwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBUmVwZWF0Ok5PCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGtleUNvZGU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9
CiAKIC0gKHZvaWQpX2xvb2tVcEluRGljdGlvbmFyeUZyb21NZW51OihpZClzZW5kZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9s
bGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRy
b2xsZXIubW0KaW5kZXggNDM4MmIwNDQ3NGU2MGM4YzIzNzMzMDQ3YjgxMzk2NGE0Zjc4NDI2My4u
N2I5ZTVkYmNmNDhjMjE2YjZjNTY2MzEwYzE3NGU0MzEyYzU2MjhlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIu
bW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBv
cnQgIldlYlZpZXcuaCIKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIE5TV2lu
ZG93IChXZWJOU1dpbmRvd0RldGFpbHMpCiAtICh2b2lkKV9zZXRGb3JjZUFjdGl2ZUNvbnRyb2xz
OihCT09MKWZsYWc7CkBAIC0xMTIsMTAgKzExMyw3IEBAIC0gKHZvaWQpX2J1aWxkVUkKICAgICBb
c2Nyb2xsVmlldyBzZXREb2N1bWVudFZpZXc6X3RhYmxlVmlld107CiAgICAgW190YWJsZVZpZXcg
cmVsZWFzZV07CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
X3BvcHVwV2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpzY3Jv
bGxGcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIF9wb3B1cFdpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
c2Nyb2xsRnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFtfcG9wdXBXaW5kb3cgc2V0
QWxwaGFWYWx1ZTowLjg4Zl07CiAgICAgW19wb3B1cFdpbmRvdyBzZXRDb250ZW50VmlldzpzY3Jv
bGxWaWV3XTsKICAgICBbc2Nyb2xsVmlldyByZWxlYXNlXTsKQEAgLTE1NSw4ICsxNTMsOCBAQCAt
ICh2b2lkKV9wbGFjZVBvcHVwV2luZG93OihOU1BvaW50KXRvcExlZnQKICNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNTY3JvbGxW
aWV3IGZyYW1lU2l6ZUZvckNvbnRlbnRTaXplOk5TTWFrZVNpemUobWF4V2lkdGgsIDEwMC4wZikg
aGFzSG9yaXpvbnRhbFNjcm9sbGVyOk5PIGhhc1ZlcnRpY2FsU2Nyb2xsZXI6WUVTIGJvcmRlclR5
cGU6TlNOb0JvcmRlcl0ud2lkdGgpOwotICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1dpbmRv
dyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAuMGYsIG1heFdpZHRo
LCAxMDAuMGYpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrXS5zaXplLndpZHRoKTsK
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbWF4V2lkdGggPSBjZWlsZihb
TlNXaW5kb3cgZnJhbWVSZWN0Rm9yQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLjBmLCAwLjBmLCBt
YXhXaWR0aCwgMTAwLjBmKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzXS5z
aXplLndpZHRoKTsKICAgICAgICAgbWF4V2lkdGggKz0gNS4wZjsKICAgICAgICAgd2luZG93RnJh
bWUuc2l6ZS53aWR0aCA9IHN0ZDo6bWF4KG1heFdpZHRoLCB3aW5kb3dGcmFtZS5zaXplLndpZHRo
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggN2NmYWE4N2I1
NTZlYjQ3NmJmM2M1ZmVkNWUwM2U2OGZiYTJkZTRiZi4uNzg3ZTcxNmE2YjRiY2EzNGQ3NDdlMDI1
MmQ2MzI2MGU1NjkxNzljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAt
MjMwLDYgKzIzMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbHNlCiAjaW1wb3J0ICJNZW1vcnlNZWFzdXJlLmgi
CiAjaW1wb3J0ICJXZWJDYXJldENoYW5nZUxpc3RlbmVyLmgiCkBAIC02MDk1LDEwICs2MDk2LDcg
QEAgLSAoRHJhZ0FwcGxpY2F0aW9uRmxhZ3MpYXBwbGljYXRpb25GbGFnczooaWQgPE5TRHJhZ2dp
bmdJbmZvPilkcmFnZ2luZ0luZm8KICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSGFz
QXR0YWNoZWRTaGVldDsKICAgICBpZiAoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZV0gPT0g
c2VsZikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbTlNBcHAgY3VycmVudEV2ZW50
XSBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBpZiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxp
Y2F0aW9uSXNDb3B5S2V5RG93bjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RHJhZ0FwcGxpY2F0
aW9uRmxhZ3M+KGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQ2hpbGRQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFBy
b2Nlc3NNYWMubW0KaW5kZXggMmU2NTgwNmRiNWQ2OGYwYTRhMjgyZDM4M2I5NmU3YjQ1MTZiOTA0
MC4uYjBjNTU0ZDRkYTYyM2Q5OWIwMTQzNTg2N2IyMDc3MjViODY3NDUzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbXBvcnQgPHB3ZC5oPgogI2ltcG9ydCA8c3RkbGliLmg+CiAjaW1wb3J0IDxzeXNleGl0cy5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAj
aW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQpAQCAtMTk3LDEwICsxOTgsNyBAQCB2b2lkIENoaWxkUHJvY2Vzczo6c3RvcE5T
QXBwUnVuTG9vcCgpCiAgICAgQVNTRVJUKFtOU0FwcCBpc1J1bm5pbmddKTsKICAgICBbTlNBcHAg
c3RvcDpuaWxdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNF
dmVudCAqZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBsaWNhdGlvbkRl
ZmluZWQgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFt
cDowLjAgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTowIGRhdGExOjAgZGF0YTI6
MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAqZXZlbnQgPSBb
TlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVBcHBsaWNhdGlvbkRlZmluZWQg
bG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowLjAg
d2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgc3VidHlwZTowIGRhdGExOjAgZGF0YTI6MF07CiAg
ICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRydWVdOwogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IGE4NWVmY2Fl
ZTlhNTJkOGMwNDU2NjZkOTRjNDkxODcwY2E2OGE3ZDMuLjlmNTNmNjhjZDMxODIzYmQxNDRmMzE0
ZWE2MDhhODU3YTg1ZWU4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGJh
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oPgogI2ltcG9ydCA8
d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURl
Y2xhcmF0aW9ucy5oPgogCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjMsNzggKzY0
LDY5IEBAIHN0YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0b24gY3VycmVudE1vdXNlQnV0dG9uKCkK
IAogc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5TRXZl
bnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3
aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247Ci0gICAgICAg
IGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1v
dXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOwotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJh
Z2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVCdXR0b247Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
UmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3Vz
ZUV2ZW50OjpSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246
CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
T3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVC
dXR0b247CiAjaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVBy
ZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotICAgICAgICBj
YXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAg
ICAgICByZXR1cm4gY3VycmVudE1vdXNlQnV0dG9uKCk7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgY2FzZSBOU0V2ZW50
VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAg
ICAgIHJldHVybiBjdXJyZW50TW91c2VCdXR0b24oKTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogfQogCiBzdGF0aWMgV2ViRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVGb3JF
dmVudChOU0V2ZW50KiBldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01v
dXNlRXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090
aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKLSAgICAgICAgY2FzZSBOU0xlZnRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBO
U090aGVyTW91c2VEb3duOgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247
Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBXZWJF
dmVudDo6TW91c2VVcDsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBXZWJF
dmVudDo6TW91c2VNb3ZlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNF
dmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOworICAgIGNhc2Ug
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgICAgIHJldHVy
biBXZWJFdmVudDo6TW91c2VEb3duOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlVXA6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VVcDsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKICAgICB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tDb3VudEZvckV2ZW50
KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3du
OgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VE
cmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNS
aWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAg
Y2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gW2V2ZW50
IGNsaWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJl
dHVybiBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgTlNQb2lu
dCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQpAQCAtMTQzLDIyICsxMzUsMTkg
QEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKICNp
ZiBkZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRp
ZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNMZWZ0TW91
c2VEb3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNMZWZ0TW91
c2VVcDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoK
LSAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAg
Y2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAg
Y2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAg
ICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2UgTlNTY3JvbGxXaGVlbDoKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2Vk
OgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6CiAgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpnbG9iYWxQb2ludChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10sIFtldmVudCB3aW5kb3ddKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gTlNaZXJvUG9pbnQ7CkBAIC0xNzEsMjIgKzE2
MCwxOSBAQCBzdGF0aWMgTlNQb2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1Zp
ZXcgKndpbmRvd1ZpZXcpCiAjaWYgZGVmaW5lZChfX0xQNjRfXykKICAgICBjYXNlIE5TRXZlbnRU
eXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoK
LSAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICBj
YXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU090
aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5T
T3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICBjYXNlIE5TUmln
aHRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICBjYXNlIE5TU2Ny
b2xsV2hlZWw6IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93
bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6IHsK
ICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9t
IGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgogICAgICAg
ICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lk
Z2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCiAgICAgICAgIE5TUG9pbnQgbG9jYXRp
b24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CkBAIC0yNDAsMTAgKzIyNiw3IEBAIHN0YXRp
YyBpbmxpbmUgU3RyaW5nIHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFj
ZXNTb2Z0U3BhY2UpCiB7CiAgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQogICAgICAgICByZXR1
cm4gZW1wdHlTdHJpbmcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5n
ZWQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmcoW2V2
ZW50IGNoYXJhY3RlcnNdKTsKIH0KQEAgLTI1MiwxMCArMjM1LDcgQEAgc3RhdGljIGlubGluZSBT
dHJpbmcgdW5tb2RpZmllZFRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFj
ZXNTb2Z0U3AKIHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAgIHJldHVybiBl
bXB0eVN0cmluZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
IChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkK
ICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmluZyhbZXZlbnQg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSk7CiB9CkBAIC0yNjQsNzQgKzI0NCw2OCBAQCBz
dGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNr
IHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAg
c3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAg
ICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgc3dpdGNo
IChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA3MTogLy8gQ2xlYXIKLSAgICAgICAg
Y2FzZSA4MTogLy8gPQotICAgICAgICBjYXNlIDc1OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6IC8v
ICoKLSAgICAgICAgY2FzZSA3ODogLy8gLQotICAgICAgICBjYXNlIDY5OiAvLyArCi0gICAgICAg
IGNhc2UgNzY6IC8vIEVudGVyCi0gICAgICAgIGNhc2UgNjU6IC8vIC4KLSAgICAgICAgY2FzZSA4
MjogLy8gMAotICAgICAgICBjYXNlIDgzOiAvLyAxCi0gICAgICAgIGNhc2UgODQ6IC8vIDIKLSAg
ICAgICAgY2FzZSA4NTogLy8gMwotICAgICAgICBjYXNlIDg2OiAvLyA0Ci0gICAgICAgIGNhc2Ug
ODc6IC8vIDUKLSAgICAgICAgY2FzZSA4ODogLy8gNgotICAgICAgICBjYXNlIDg5OiAvLyA3Ci0g
ICAgICAgIGNhc2UgOTE6IC8vIDgKLSAgICAgICAgY2FzZSA5MjogLy8gOQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgIH0KKyAgICBjYXNlIDcxOiAvLyBDbGVhcgorICAgIGNhc2UgODE6
IC8vID0KKyAgICBjYXNlIDc1OiAvLyAvCisgICAgY2FzZSA2NzogLy8gKgorICAgIGNhc2UgNzg6
IC8vIC0KKyAgICBjYXNlIDY5OiAvLyArCisgICAgY2FzZSA3NjogLy8gRW50ZXIKKyAgICBjYXNl
IDY1OiAvLyAuCisgICAgY2FzZSA4MjogLy8gMAorICAgIGNhc2UgODM6IC8vIDEKKyAgICBjYXNl
IDg0OiAvLyAyCisgICAgY2FzZSA4NTogLy8gMworICAgIGNhc2UgODY6IC8vIDQKKyAgICBjYXNl
IDg3OiAvLyA1CisgICAgY2FzZSA4ODogLy8gNgorICAgIGNhc2UgODk6IC8vIDcKKyAgICBjYXNl
IDkxOiAvLyA4CisgICAgY2FzZSA5MjogLy8gOQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tl
eVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkKLSAgICAgICAg
cmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0tleVVwOworICAgIGlmIChbZXZlbnQgdHlwZV0gIT0g
TlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCisgICAgICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0g
TlNFdmVudFR5cGVLZXlVcDsKICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBmYWlscyBpZiB0aGUg
dXNlciBwcmVzc2VzIGJvdGggU2hpZnQga2V5cyBhdCBvbmNlLCBmb3IgZXhhbXBsZToKICAgICAv
LyB3ZSB0cmVhdCByZWxlYXNpbmcgb25lIG9mIHRoZW0gYXMga2V5RG93bi4KICAgICBzd2l0Y2gg
KFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCi0g
ICAgICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgcmV0dXJuIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAg
Ci0gICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICByZXR1cm4gKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAotICAgICAgICBjYXNlIDYwOiAvLyBS
aWdodCBTaGlmdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBO
U1NoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAotICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgIHJldHVy
biAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSA9PSAwOwotICAg
ICAgICAgICAgCi0gICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAgICBjYXNlIDYy
OiAvLyBSaWdodCBDdHJsCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TQ29udHJvbEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA2
MzogLy8gRnVuY3Rpb24KLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNGdW5jdGlvbktleU1hc2spID09IDA7CisgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFu
ZAorICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAorICAgICAgICByZXR1cm4gIShbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCk7CisKKyAgICBjYXNl
IDU3OiAvLyBDYXBzbG9jaworICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spOworCisgICAgY2FzZSA1NjogLy8gTGVmdCBT
aGlmdAorICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0CisgICAgICAgIHJldHVybiAhKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCk7CisKKyAgICBjYXNl
IDU4OiAvLyBMZWZ0IEFsdAorICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAorICAgICAgICByZXR1
cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKTsK
KworICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwK
KyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbnRyb2wpOworCisgICAgY2FzZSA2MzogLy8gRnVuY3Rpb24KKyAgICAgICAgcmV0dXJu
ICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uKTsK
ICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCkBAIC0zMzksNyArMzEzLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZpZXJz
IG1vZGlmaWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHVuc2lnbmVkIG1vZGlm
aWVycyA9IDA7CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIw
MAogICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fw
c0xvY2spCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fwc0xvY2tLZXk7CiAgICAg
aWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkKQEAg
LTM1MCwxOCArMzIzLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlm
aWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZl
bnQ6OkFsdEtleTsKICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtleTsK
LSNlbHNlCi0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1h
c2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fwc0xvY2tLZXk7Ci0gICAgaWYg
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKQotICAgICAgICBtb2RpZmll
cnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OwotICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0NvbnRyb2xLZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRy
b2xLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFz
aykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpBbHRLZXk7Ci0gICAgaWYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8
PSBXZWJFdmVudDo6TWV0YUtleTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIChXZWJFdmVudDo6TW9k
aWZpZXJzKW1vZGlmaWVyczsKIH0KQEAgLTQ4NCwxMCArNDQ1LDcgQEAgV2ViS2V5Ym9hcmRFdmVu
dCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQs
IGJvb2wgaGEKICAgICBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlICAgICAgID0gd2luZG93c0tl
eUNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlICAg
ICAgICA9IFtldmVudCBrZXlDb2RlXTsKICAgICBpbnQgbWFjQ2hhckNvZGUgICAgICAgICAgICAg
ICAgID0gV0tHZXROU0V2ZW50S2V5Q2hhcihldmVudCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgYm9vbCBhdXRvUmVwZWF0ICAgICAgICAgICAgICAgICA9IChbZXZl
bnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpICYmIFtldmVudCBpc0FSZXBlYXRdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGJvb2wgYXV0b1JlcGVhdCAgICAgICAgICAgICAg
ICAgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgJiYgW2V2ZW50IGlz
QVJlcGVhdF07CiAgICAgYm9vbCBpc0tleXBhZCAgICAgICAgICAgICAgICAgICA9IGlzS2V5cGFk
RXZlbnQoZXZlbnQpOwogICAgIGJvb2wgaXNTeXN0ZW1LZXkgICAgICAgICAgICAgICAgPSBmYWxz
ZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogICAgIFdlYkV2ZW50
OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uLm1tCmluZGV4IGJhMTk5NmIyMTc0ZTIzZTQ3Nzg0NjM3ZWQ3MjEwN2M3NTFiMGMzY2Uu
LmU1YTU4MWU3ODUzZDE1ZjFiMWQ2YjExOWYzNTY5ODVhYzEyOWEzMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9u
Lm1tCkBAIC0zMyw2ICszMywxMCBAQAogI2ltcG9ydCAiX1dLVXNlckluaXRpYXRlZEFjdGlvbklu
dGVybmFsLmgiCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKKyNpZiBQTEFURk9STShNQUMp
CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNl
bmRpZgorCiBAaW1wbGVtZW50YXRpb24gV0tOYXZpZ2F0aW9uQWN0aW9uCiAKIHN0YXRpYyBXS05h
dmlnYXRpb25UeXBlIHRvV0tOYXZpZ2F0aW9uVHlwZShXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSBu
YXZpZ2F0aW9uVHlwZSkKQEAgLTc5LDcgKzgzLDYgQEAgc3RhdGljIE5TRXZlbnRNb2RpZmllckZs
YWdzIHRvTlNFdmVudE1vZGlmaWVyRmxhZ3MoV2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXJzIG0K
IHsKICAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBtb2RpZmllckZsYWdzID0gMDsKIAotI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCiAgICAgaWYgKG1vZGlmaWVy
cyAmIFdlYktpdDo6V2ViRXZlbnQ6OkNhcHNMb2NrS2V5KQogICAgICAgICBtb2RpZmllckZsYWdz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKICAgICBpZiAobW9kaWZpZXJzICYgV2Vi
S2l0OjpXZWJFdmVudDo6U2hpZnRLZXkpCkBAIC05MCwxOCArOTMsNiBAQCBzdGF0aWMgTlNFdmVu
dE1vZGlmaWVyRmxhZ3MgdG9OU0V2ZW50TW9kaWZpZXJGbGFncyhXZWJLaXQ6OldlYkV2ZW50OjpN
b2RpZmllcnMgbQogICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdP
cHRpb247CiAgICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6Ok1ldGFLZXkpCiAg
ICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7Ci0jZWxz
ZQotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpDYXBzTG9ja0tleSkKLSAg
ICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0FscGhhU2hpZnRLZXlNYXNrOwotICAgIGlmIChtb2Rp
ZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpTaGlmdEtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFn
cyB8PSBOU1NoaWZ0S2V5TWFzazsKLSAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVu
dDo6Q29udHJvbEtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0NvbnRyb2xLZXlNYXNr
OwotICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpBbHRLZXkpCi0gICAgICAg
IG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOwotICAgIGlmIChtb2RpZmllcnMg
JiBXZWJLaXQ6OldlYkV2ZW50OjpNZXRhS2V5KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
Q29tbWFuZEtleU1hc2s7Ci0jZW5kaWYKIAogICAgIHJldHVybiBtb2RpZmllckZsYWdzOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDMy
ZTYzOWM0ZDkxOWFkMTZlOWE5NDgyYjkzNWNlZjA0NjM3NzFmYmEuLjc2M2Q5MDYwNTc1OTkzZDhj
YjA3M2M2YWE0ZTA5NWMwZGJiNGE4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTkzLDYgKzkzLDcgQEAKICNpbXBvcnQgPFdlYktpdFN5
c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8c3lzL3N0YXQuaD4KICNpbXBvcnQgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0
QWRkaXRpb25zL1dlYlZpZXdJbXBsSW5jbHVkZXMuaD4KQEAgLTYyMCwxMSArNjIxLDggQEAgYm9v
bCBXZWJWaWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIoKQogICAgIGlmIChkaXJlY3Rpb24g
IT0gTlNEaXJlY3RTZWxlY3Rpb24pIHsKICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAg
Y3VycmVudEV2ZW50XTsKICAgICAgICAgTlNFdmVudCAqa2V5Ym9hcmRFdmVudCA9IG5pbDsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgaWYgKFtldmVudCB0eXBl
XSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApCisgICAgICAgIGlmIChb
ZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2
ZW50VHlwZUtleVVwKQogICAgICAgICAgICAga2V5Ym9hcmRFdmVudCA9IGV2ZW50OwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtX3BhZ2UtPnNldEluaXRpYWxGb2N1cyhk
aXJlY3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2ZW50ICE9IG5pbCwgTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwgZmFsc2UsIHsgfSksIFtdKFdl
YktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7
CkBAIC04NDgsMTAgKzg0Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNl
dHNJZkF1dG9tYXRpYygpCiAgICAgICAgIHJldHVybjsKIAogICAgIE5TV2luZG93ICp3aW5kb3cg
PSBtX3ZpZXcud2luZG93OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IGlmICgod2luZG93LnN0eWxlTWFzayAmIE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2sp
ICYmICF3aW5kb3cudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9z
aW5nU2Nyb2xsVmlld10pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAo
KHdpbmRvdy5zdHlsZU1hc2sgJiBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVudFZpZXcp
ICYmICF3aW5kb3cudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9z
aW5nU2Nyb2xsVmlld10pIHsKICAgICAgICAgTlNSZWN0IGNvbnRlbnRMYXlvdXRSZWN0ID0gW21f
dmlldyBjb252ZXJ0UmVjdDp3aW5kb3cuY29udGVudExheW91dFJlY3QgZnJvbVZpZXc6bmlsXTsK
ICAgICAgICAgQ0dGbG9hdCBuZXdUb3BDb250ZW50SW5zZXQgPSBOU01heFkoY29udGVudExheW91
dFJlY3QpIC0gTlNIZWlnaHQoY29udGVudExheW91dFJlY3QpOwogICAgICAgICBpZiAobV90b3BD
b250ZW50SW5zZXQgIT0gbmV3VG9wQ29udGVudEluc2V0KQpAQCAtMTIyOCwxMCArMTIyMyw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3coKQogCiAgICAgICAgIGlmICgh
bV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMg
PSBjcmVhdGVXZWFrUHRyKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2Fs
TW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1hc2sgaGFuZGxlcjpb
d2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBb
TlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tG
bGFnc0NoYW5nZWQgaGFuZGxlcjpbd2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVu
dCkgewogICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAg
d2Vha1RoaXMtPnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoZmxh
Z3NDaGFuZ2VkRXZlbnQpOwogICAgICAgICAgICAgICAgIHJldHVybiBmbGFnc0NoYW5nZWRFdmVu
dDsKQEAgLTEzMDIsMTIgKzEyOTQsOSBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjpoaXRUZXN0KENH
UG9pbnQgcG9pbnQpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0No
YW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCisgICAg
TlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2Nh
dGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFu
Z2VkRXZlbnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0
YW1wIHdpbmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKICAgICAgICAg
Y29udGV4dDpudWxscHRyIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2Vi
RXZlbnQoZmFrZUV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOwogICAg
IG1fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7CiB9CkBAIC0xNjU2LDEwICsxNjQ1
LDcgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldygpCiBO
U1dpbmRvdyAqV2ViVmlld0ltcGw6OmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKQogewogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0gc3R5bGVNYXNrOihOU0JvcmRl
cmxlc3NXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrKSBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dIGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0gc3R5bGVN
YXNrOihOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgfCBOU1dpbmRvd1N0eWxlTWFza1Jlc2l6
YWJsZSkgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSBhdXRvcmVsZWFz
ZV07CiAjZWxzZQogICAgIHJldHVybiBuaWw7CiAjZW5kaWYKQEAgLTI2MzEsOSArMjYxNyw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnJlbW92ZVRyYWNraW5nUmVjdHMoTlNUcmFja2luZ1JlY3RUYWcg
KnRhZ3MsIGludCBjb3VudCkKIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFeGl0
ZWQoKQogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051
bWJlciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNNb3VzZUV4aXRlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhp
dEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUV4aXRlZAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdz
OjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0
YW1wOjAKQEAgLTI2NDIsMTYgKzI2MjYsMTMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xU
aXBNb3VzZUV4aXRlZCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudE51bWJlcjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhdGE6bV90cmFja2luZ1JlY3RVc2Vy
RGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW21fdHJhY2tpbmdSZWN0
T3duZXIgbW91c2VFeGl0ZWQ6ZmFrZUV2ZW50XTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2Vu
ZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQg
d2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVy
RXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQg
PSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRlcmVk
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlv
bjpOU01ha2VQb2ludCgwLCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjY2MCw3ICsyNjQxLDYgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRh
Om1fdHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
ICAgIFttX3RyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOwogfQogCkBA
IC0yODE2LDEwICsyNzk2LDcgQEAgc3RhdGljIFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdz
IGFwcGxpY2F0aW9uRmxhZ3NGb3JEcmFnKE5TVmlldyAqdmlldywgaWQgPE4KICAgICAgICAgZmxh
Z3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSGFzQXR0YWNoZWRTaGVldDsKICAgICBpZiAo
ZHJhZ2dpbmdJbmZvLmRyYWdnaW5nU291cmNlID09IHZpZXcpCiAgICAgICAgIGZsYWdzIHw9IFdl
YkNvcmU6OkRyYWdBcHBsaWNhdGlvbklzU291cmNlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbTlNBcHAgY3VycmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYg
TlNBbHRlcm5hdGVLZXlNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChbTlNBcHAgY3VycmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxh
Z09wdGlvbikKICAgICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNDb3B5
S2V5RG93bjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9u
RmxhZ3M+KGZsYWdzKTsKIApAQCAtMzM1OSwxMCArMzMzNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OnNtYXJ0TWFnbmlmeVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkKIAogdm9pZCBXZWJWaWV3SW1w
bDo6c2V0TGFzdE1vdXNlRG93bkV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9
PSBOU0xlZnRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duIHx8IGV2
ZW50LnR5cGUgPT0gTlNPdGhlck1vdXNlRG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTGVmdE1v
dXNlRG93biB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gfHwgZXZl
bnQudHlwZSA9PSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duKTsKIAogICAgIGlmIChldmVudCA9
PSBtX2xhc3RNb3VzZURvd25FdmVudC5nZXQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzM5OSwx
MSArMzM3Myw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigp
CiAKIHZvaWQgV2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQoTlNFdmVudCAqZXZlbnQsIGJv
b2wgZXZlbnRXYXNIYW5kbGVkKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlw
ZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAKICAgICBpZiAodHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4
dElucHV0S2V5RG93bihldmVudCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0NzksMTEgKzM0NTAs
OCBAQCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBXZWJWaWV3SW1wbDo6Y29sbGVj
dEtleWJvYXJkTGF5b3V0Q29tbWFuZHNGb3JFdgogewogICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+IGNvbW1hbmRzOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCisgICAgaWYgKFtldmVudCB0
eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24pCiAgICAgICAgIHJldHVybiBjb21tYW5kczsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIEFTU0VSVCghbV9jb2xsZWN0ZWRLZXlw
cmVzc0NvbW1hbmRzKTsKICAgICBtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMgPSAmY29tbWFu
ZHM7CkBAIC0zODU4LDExICszODI2LDggQEAgYm9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVx
dWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgLy8gV2UgZ2V0IEVzYyBrZXkgaGVyZSBhZnRl
ciBwcm9jZXNzaW5nIGVpdGhlciBFc2Mgb3IgQ21kK3BlcmlvZC4gVGhlIGZvcm1lciBzdGFydHMg
YXMgYSBrZXlEb3duLCBhbmQgdGhlIGxhdHRlciBzdGFydHMgYXMgYSBrZXkgZXF1aXZhbGVudCwK
ICAgICAvLyBidXQgYm90aCBnZXQgdHJhbnNmb3JtZWQgdG8gYSBjYW5jZWxPcGVyYXRpb246IGNv
bW1hbmQsIGV4ZWN1dGluZyB3aGljaCBwYXNzZXMgYW4gRXNjIGtleSBldmVudCB0byAtcGVyZm9y
bUtleUVxdWl2YWxlbnQ6LgogICAgIC8vIERvbid0IGludGVycHJldCB0aGlzIGV2ZW50IGFnYWlu
LCBhdm9pZGluZyByZS1lbnRyYW5jeSBhbmQgaW5maW5pdGUgbG9vcHMuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5n
TW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrKSkKKyAgICBpZiAoW1tl
dmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0g
JiYgIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRGV2aWNlSW5k
ZXBlbmRlbnRGbGFnc01hc2spKQogICAgICAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyUGVy
Zm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
CiAgICAgaWYgKG1fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpIHsKICAgICAgICAgLy8gV2ViQ29y
ZSBoYXMgYWxyZWFkeSBzZWVuIHRoZSBldmVudCwgbm8gbmVlZCBmb3IgY3VzdG9tIHByb2Nlc3Np
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1
Z2luUHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBmMDdkMjc5ZDYzN2QzMGY4ZjUwNTMx
N2Q4ZjA5NjA1NTdhMTFkMmQyLi44ZjM3ZDQyNjE1MmI2MTdkNTVjOTE0ODgxNTExNGY4YzMzOWU3
YzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1
Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBv
cnQgPGNydF9leHRlcm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8c3Bh
d24uaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBAaW50ZXJmYWNlIFdLUGxhY2Vob2xk
ZXJNb2RhbFdpbmRvdyA6IE5TV2luZG93IApAQCAtMjMxLDEwICsyMzIsNyBAQCB2b2lkIFBsdWdp
blByb2Nlc3NQcm94eTo6YmVnaW5Nb2RhbCgpCiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2lu
ZG93KTsKICAgICBBU1NFUlQoIW1fYWN0aXZhdGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRv
cHROUyhbW1dLUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNr
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dL
UGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VS
ZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFj
a2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogICAgIFttX3BsYWNlaG9s
ZGVyV2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpOT107CiAgICAgCiAgICAgbV9hY3RpdmF0
aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9uV2lsbEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiBv
YmplY3Q6TlNBcHAgcXVldWU6bmlsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggYTQ4Mzk2NGQ4ZjFmMjI2ZDRh
ZWNjMjdjY2IwZjA3NjA3MWI3YmJkMS4uYmI1YWQ3YzIxZTgxMGNhMzY1NjVlY2M3NzdkMDZhZjMx
YmIwMjg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250
ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtNDgsNiArNDgsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9OU1NoYXJpbmdTZXJ2aWNlU1BJLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29t
cGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApA
QCAtNDYzLDEwICs0NjQsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250
ZXh0TWVudVdpdGhJdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbgogICAgIFtbV0tNZW51
VGFyZ2V0IHNoYXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0aGlzXTsKIAogICAgIE5TUG9p
bnQgbWVudUxvY2F0aW9uID0gW21fd2ViVmlldyBjb252ZXJ0UG9pbnQ6bV9jb250ZXh0Lm1lbnVM
b2NhdGlvbigpIHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmln
aHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAgd2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmls
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2lu
ZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwogICAgIFtOU01lbnUgcG9wVXBDb250ZXh0TWVudTptX21lbnUuZ2V0KCkgd2l0aEV2ZW50
OmV2ZW50IGZvclZpZXc6bV93ZWJWaWV3XTsKIAogICAgIGlmIChtX2NvbnRleHRNZW51TGlzdGVu
ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVj
dG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3Rv
clByb3h5TWFjLm1tCmluZGV4IDBhNzk5MTM0NmQxNWNjZmFjNzc0MzVlZjMwZWY4ZGY4MjJhZmFl
MjMuLmYwNmI1ODQyYWNkNTM0ZGZlMjQxMGZlY2E5YTFhZGZiNmVhOTc3OTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpA
QCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIFNPRlRf
TElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3BlY3RvclVJLCBQcml2YXRlRnJhbWV3b3Jrcywg
QSkKQEAgLTQ4LDEwICs0OSw3IEBAIFNPRlRfTElOS19TVEFHRURfRlJBTUVXT1JLKFdlYkluc3Bl
Y3RvclVJLCBQcml2YXRlRnJhbWV3b3JrcywgQSkKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotc3RhdGljIGNvbnN0IE5TVUludGVnZXIgd2luZG93U3R5bGVNYXNrID0gTlNUaXRsZWRX
aW5kb3dNYXNrIHwgTlNDbG9zYWJsZVdpbmRvd01hc2sgfCBOU01pbmlhdHVyaXphYmxlV2luZG93
TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzayB8IE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRv
d01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitzdGF0aWMgY29uc3QgTlNVSW50
ZWdlciB3aW5kb3dTdHlsZU1hc2sgPSBOU1dpbmRvd1N0eWxlTWFza1RpdGxlZCB8IE5TV2luZG93
U3R5bGVNYXNrQ2xvc2FibGUgfCBOU1dpbmRvd1N0eWxlTWFza01pbmlhdHVyaXphYmxlIHwgTlNX
aW5kb3dTdHlsZU1hc2tSZXNpemFibGUgfCBOU1dpbmRvd1N0eWxlTWFza0Z1bGxTaXplQ29udGVu
dFZpZXc7CiAKIC8vIFRoZSB0aW1lIHdlIGtlZXAgb3VyIFdlYlZpZXcgYWxpdmUgYmVmb3JlIGNs
b3NpbmcgaXQgYW5kIGl0cyBwcm9jZXNzLgogLy8gUmV1c2luZyB0aGUgV2ViVmlldyBpbXByb3Zl
cyBzdGFydCB1cCB0aW1lIGZvciBwZW9wbGUgdGhhdCBqdW1wIGluIGFuZCBvdXQgb2YgdGhlIElu
c3BlY3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9w
dXBNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVw
TWVudVByb3h5TWFjLm1tCmluZGV4IGQyOWQwODkwNTJjODg3YWZiODY0MjM4NDU1YWExODg0YjRk
ZDQ2NWMuLmMyMjlmYmQwYjhiZWJiYWYxMTVjMzUzZTgzYzdlMDg0NjUwNjAzNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5t
bQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0
ICJXZWJQb3B1cEl0ZW0uaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03NCwxOSArNzUsMTMgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eU1hYzo6cG9wdWxhdGUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBO
U0ZvbnQgKmYKICAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4g
cGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdy
YXBoU3R5bGVdIG11dGFibGVDb3B5XSk7CiAgICAgICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24g
d3JpdGluZ0RpcmVjdGlvbiA9IGl0ZW1zW2ldLm1fdGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1dy
aXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0
OwogICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndy
aXRpbmdEaXJlY3Rpb25dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9
PSBMVFIgPyBOU0xlZnRUZXh0QWxpZ25tZW50IDogTlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNl
dEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1RleHRBbGlnbm1lbnRMZWZ0
IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJs
ZURpY3Rpb25hcnk+IGF0dHJpYnV0ZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBh
bGxvY10gaW5pdFdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhT
dHlsZS5nZXQoKSwgTlNQYXJhZ3JhcGhTdHlsZUF0dHJpYnV0ZU5hbWUsCiAgICAgICAgICAgICAg
ICAgZm9udCwgTlNGb250QXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgIG5pbF0pOwogICAgICAg
ICAgICAgaWYgKGl0ZW1zW2ldLm1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICAgICAgUmV0YWluUHRyPE5T
TnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2Nd
IGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNUZXh0V3JpdGluZ0RpcmVjdGlv
bk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAg
ICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtb
TlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0
aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJh
eT4gd3JpdGluZ0RpcmVjdGlvbkFycmF5ID0gYWRvcHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRX
aXRoT2JqZWN0czp3cml0aW5nRGlyZWN0aW9uVmFsdWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAg
ICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJyYXkuZ2V0KCkg
Zm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAgICAgICAgfQpA
QCAtMTU0LDE4ICsxNDksMTUgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVw
TWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKIAogICAgIE5TQ29u
dHJvbFNpemUgY29udHJvbFNpemU7CiAgICAgc3dpdGNoIChkYXRhLm1lbnVTaXplKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1l
bnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1Jl
Z3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplUmVn
dWxhcjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6
UG9wdXBNZW51U2l6ZVNtYWxsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TU21hbGxDb250cm9s
U2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVN
aW5pOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TTWluaUNvbnRyb2xTaXplOworICAgICAgICBj
b250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVNaW5pOwogICAgICAgICBicmVhazsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBSZWY8V2ViUG9wdXBNZW51UHJveHlN
YWM+IHByb3RlY3QoKnRoaXMpOwpAQCAtMTgzLDEzICsxNzUsMTEgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0
aW9uIHRleHQKICAgICBpZiAoIW1fY2xpZW50LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25F
dmVudCgpKQogICAgICAgICByZXR1cm47CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgTlNFdmVudCogaW5pdGlhdGluZ05TRXZlbnQgPSBtX2NsaWVudC0+Y3Vy
cmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQoKS0+bmF0aXZlRXZlbnQoKTsKLSAgICBpZiAo
W2luaXRpYXRpbmdOU0V2ZW50IHR5cGVdICE9IE5TTGVmdE1vdXNlRG93bikKKyAgICBpZiAoW2lu
aXRpYXRpbmdOU0V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ05TRXZl
bnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0
aW5nTlNFdmVudCB0aW1lc3RhbXBdCkBAIC0xOTgsMTMgKzE4OCwxNCBAQCB2b2lkIFdlYlBvcHVw
TWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJl
Y3Rpb24gdGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVu
dE51bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQgZXZlbnROdW1iZXJdCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlja0NvdW50Oltpbml0aWF0aW5nTlNFdmVudCBj
bGlja0NvdW50XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmVzc3VyZTpbaW5pdGlhdGluZ05TRXZlbnQgcHJlc3N1cmVdXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKIAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVT
XTsKKyAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVNb3VzZU1vdmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9u
OltbbV93ZWJWaWV3IHdpbmRvd10KICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVk
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3
IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VM
b2NhdGlvbl1dCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nTlNFdmVudCBtb2RpZmllckZs
YWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlh
dGluZ05TRXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvd051bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQgd2luZG93TnVtYmVyXQpAQCAtMjEyLDcgKzIw
Myw2IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50
UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
aWNrQ291bnQ6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTow
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZh
a2VFdmVudCBhdFN0YXJ0OllFU107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2lu
TWFjLm1tCmluZGV4IDFmOTkzMGUyZDg5ZmUwMDEzMzAwYTAxNGE0MmQ2MTM5ODA3OTJhMjYuLmNl
ZDk0Nzg0Mjc3MWNmMTlkYTlkNTIwMDJiYjJmOTNhYTYwMTgxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5N
YWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21h
Yy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCA8V2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDc1LDEzICs0NzYsMTMgQEAgc3RhdGljIHVpbnQzMl90
IG1vZGlmaWVyRmxhZ3MoY29uc3QgV2ViRXZlbnQmIGV2ZW50KQogICAgIHVpbnQzMl90IG1vZGlm
aWVycyA9IDA7CiAKICAgICBpZiAoZXZlbnQuc2hpZnRLZXkoKSkKLSAgICAgICAgbW9kaWZpZXJz
IHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ1NoaWZ0OwogICAgIGlmIChldmVudC5jb250cm9sS2V5KCkpCi0gICAgICAgIG1vZGlmaWVy
cyB8PSBOU0NvbnRyb2xLZXlNYXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2w7CiAgICAgaWYgKGV2ZW50LmFsdEtleSgpKQotICAgICAgICBtb2RpZmll
cnMgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ09wdGlvbjsKICAgICBpZiAoZXZlbnQubWV0YUtleSgpKQotICAgICAgICBtb2Rp
ZmllcnMgfD0gTlNDb21tYW5kS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIAogICAgIHJldHVybiBtb2RpZmllcnM7CiB9CkBAIC03
MDYsMTUgKzcwNywxNSBAQCBzdGF0aWMgdW5zaWduZWQgbW9kaWZpZXJGbGFncyhjb25zdCBXZWJL
ZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQogICAgIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3Mg
PSAwOwogCiAgICAgaWYgKGtleWJvYXJkRXZlbnQuY2Fwc0xvY2tLZXkoKSkKLSAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBOU0FscGhhU2hpZnRLZXlNYXNrOworICAgICAgICBtb2RpZmllckZsYWdz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5z
aGlmdEtleSgpKQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOworICAg
ICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICAgICBpZiAo
a2V5Ym9hcmRFdmVudC5jb250cm9sS2V5KCkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlND
b250cm9sS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29udHJvbDsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5hbHRLZXkoKSkKLSAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBOU0FsdGVybmF0ZUtleU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5tZXRh
S2V5KCkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKKyAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKIAogICAgIHJl
dHVybiBtb2RpZmllckZsYWdzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IDVlZGU1
NmVlZTQwYWNmZGI5OTAxMTlkZTdhY2U5MThlNjc4YmM2NjYuLjEyNTE4ZGYzMzRjZjNmZGQ2NThk
Zjg5MTljMzM2MWIwODQyZTJkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTgwLDYg
KzgwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmg+CiAjaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5o
PgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMjc4LDMzICsxMjc5LDI4IEBAIHZvaWQg
UERGUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QsIGNvbnN0IFdURjo6U3Ry
aW5nJikKICAgICAKIHN0YXRpYyBOU1VJbnRlZ2VyIG1vZGlmaWVyRmxhZ3NGcm9tV2ViRXZlbnQo
Y29uc3QgV2ViRXZlbnQmIGV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TU2hpZnRLZXlNYXNrIDogMCkK
LSAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNDb250cm9sS2V5TWFzayA6IDApCi0g
ICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNBbHRlcm5hdGVLZXlNYXNrIDogMCkKLSAgICAg
ICAgfCAoZXZlbnQubWV0YUtleSgpID8gTlNDb21tYW5kS2V5TWFzayA6IDApOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoZXZlbnQuc2hpZnRLZXkoKSA/IE5TRXZl
bnRNb2RpZmllckZsYWdTaGlmdCA6IDApCisgICAgICAgIHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/
IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sIDogMCkKKyAgICAgICAgfCAoZXZlbnQuYWx0S2V5
KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uIDogMCkKKyAgICAgICAgfCAoZXZlbnQubWV0
YUtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQgOiAwKTsKIH0KICAgICAKIHN0YXRp
YyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5T
RXZlbnRUeXBlJiBldmVudFR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsKICAgICBjYXNlIFdlYkV2ZW50OjpLZXlE
b3duOgotICAgICAgICBldmVudFR5cGUgPSBOU0tleURvd247CisgICAgICAgIGV2ZW50VHlwZSA9
IE5TRXZlbnRUeXBlS2V5RG93bjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBXZWJF
dmVudDo6S2V5VXA6Ci0gICAgICAgIGV2ZW50VHlwZSA9IE5TS2V5VXA7CisgICAgICAgIGV2ZW50
VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2Ug
V2ViRXZlbnQ6Ok1vdXNlRG93bjoKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBX
ZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VF
dmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93
bjsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0
QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlRG93bjsKKyAgICAg
ICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd247CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEzMTIsMTAgKzEzMDgsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdl
YkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBj
YXNlIFdlYkV2ZW50OjpNb3VzZVVwOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0
IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VV
cDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1
dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZVVwOworICAgICAgICAg
ICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTEzMjMsMTMgKzEzMTksMTMgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50
KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBjYXNlIFdl
YkV2ZW50OjpNb3VzZU1vdmU6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2Vi
TW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZl
bnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZURyYWdn
ZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpS
aWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZURyYWdnZWQ7
CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6Tm9C
dXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU01vdXNlTW92ZWQ7CisgICAgICAgICAg
ICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEz
MzcsNyArMTMzMyw2IEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25z
dCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IH0KICAgICAKIE5TRXZlbnQgKlBERlBsdWdpbjo6bnNFdmVudEZvcldlYk1vdXNlRXZlbnQoY29u
c3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGM0ZDI1NmM1NTlmYjc0NmM4OTQ2ZmUx
ODA2ZjdhNDM1ZGIxNWI1NWUuLmNmODk5YzcyYTgxNDkwYWI1MTI2MmM1M2E1MWVmMDAyMzY1MmI1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCkBAIC03OSw2ICs3OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VVSUQuaD4KICNp
bXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1l
Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTk2MywxMCArOTY0LDEwIEBAIHZvaWQg
UERGUGx1Z2luOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHQodWludDY0X3QsIGNvbnN0IFdURjo6U3Ry
aW5nJikKIAogc3RhdGljIE5TVUludGVnZXIgbW9kaWZpZXJGbGFnc0Zyb21XZWJFdmVudChjb25z
dCBXZWJFdmVudCYgZXZlbnQpCiB7Ci0gICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNT
aGlmdEtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0NvbnRy
b2xLZXlNYXNrIDogMCkKLSAgICAgICAgfCAoZXZlbnQuYWx0S2V5KCkgPyBOU0FsdGVybmF0ZUtl
eU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0NvbW1hbmRLZXlNYXNr
IDogMCk7CisgICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxh
Z1NoaWZ0IDogMCkKKyAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2wgOiAwKQorICAgICAgICB8IChldmVudC5hbHRLZXkoKSA/IE5TRXZlbnRN
b2RpZmllckZsYWdPcHRpb24gOiAwKQorICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCA6IDApOwogfQogICAgIAogc3RhdGljIGJvb2wgZ2V0RXZl
bnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2
ZW50VHlwZSkKQEAgLTk3NSwxMCArOTc2LDEwIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZy
b21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAg
ICAgY2FzZSBXZWJFdmVudDo6TW91c2VEb3duOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0
PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBX
ZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0
TW91c2VEb3duOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVu
dDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEb3du
OworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtOTg2LDEwICs5ODcsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBl
RnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkK
ICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZVVwOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0
PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBX
ZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0
TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpS
aWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZVVwOworICAg
ICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTk5NywxMyArOTk4LDEzIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJF
dmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2Fz
ZSBXZWJFdmVudDo6TW91c2VNb3ZlOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0
IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VE
cmFnZ2VkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFn
Z2VkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVu
dDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEcmFn
Z2VkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dl
ZDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6
Ok5vQnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNNb3VzZU1vdmVkOworICAgICAg
ICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVNb3VzZU1vdmVkOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xNzU2LDExICsxNzU3LDExIEBAIGJvb2wgUERGUGx1Z2luOjpIVUQ6Om1vdXNlRXZlbnQoUGFn
ZU92ZXJsYXkmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogCiAgICAgc3dpdGNo
IChldmVudC50eXBlKCkpIHsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ6Ci0g
ICAgICAgIHJldHVybiBbcGRmTGF5ZXJDb250cm9sbGVyIG1vdXNlRHJhZ2dlZDpldmVudFdpdGhU
eXBlKE5TTGVmdE1vdXNlRHJhZ2dlZCkgaW5IVURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXNdOworICAgICAgICByZXR1cm4gW3BkZkxheWVyQ29udHJvbGxlciBtb3VzZURy
YWdnZWQ6ZXZlbnRXaXRoVHlwZShOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQpIGluSFVEV2l0
aEJvdW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlUHJlc3NlZDoKLSAgICAgICAgcmV0dXJuIFtwZGZMYXllckNvbnRyb2xsZXIg
bW91c2VEb3duOmV2ZW50V2l0aFR5cGUoTlNMZWZ0TW91c2VEb3duKSBpbkhVRFdpdGhCb3VuZHM6
SFVEUmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CisgICAgICAgIHJldHVybiBbcGRmTGF5ZXJD
b250cm9sbGVyIG1vdXNlRG93bjpldmVudFdpdGhUeXBlKE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
bikgaW5IVURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIGNh
c2UgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDoKLSAgICAgICAgcmV0dXJuIFtwZGZMYXll
ckNvbnRyb2xsZXIgbW91c2VVcDpldmVudFdpdGhUeXBlKE5TTGVmdE1vdXNlVXApIGluSFVEV2l0
aEJvdW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKKyAgICAgICAgcmV0dXJuIFtw
ZGZMYXllckNvbnRyb2xsZXIgbW91c2VVcDpldmVudFdpdGhUeXBlKE5TRXZlbnRUeXBlTGVmdE1v
dXNlVXApIGluSFVEV2l0aEJvdW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAg
ICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3Rh
dGlvbi5tbQppbmRleCA2YzYwYmRkZTk1ZmRkMzE3ZjZiNzE0ZTFmNDRmNmVlYjJmMzNkMzBiLi42
MDMxYzU5MGRjMjMxZWNjZmVlYTIwYTA0N2Y4NTY5NmNhNWQ4YTNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
VGV4dEFubm90YXRpb24ubW0KQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRN
TFRleHRBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTMs
MjEgKzU0LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBjb25zdCBT
dHJpbmcgY3NzQWxpZ25tZW50VmFsdWVGb3JOU1RleHRBbGlnbm1lbnQoTlNUZXh0QWxpZ25tZW50
IGFsaWdubWVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBz
d2l0Y2ggKGFsaWdubWVudCkgewotICAgIGNhc2UgTlNMZWZ0VGV4dEFsaWdubWVudDoKKyAgICBj
YXNlIE5TVGV4dEFsaWdubWVudExlZnQ6CiAgICAgICAgIHJldHVybiAibGVmdCI7Ci0gICAgY2Fz
ZSBOU1JpZ2h0VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudFJpZ2h0Ogog
ICAgICAgICByZXR1cm4gInJpZ2h0IjsKLSAgICBjYXNlIE5TQ2VudGVyVGV4dEFsaWdubWVudDoK
KyAgICBjYXNlIE5TVGV4dEFsaWdubWVudENlbnRlcjoKICAgICAgICAgcmV0dXJuICJjZW50ZXIi
OwotICAgIGNhc2UgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxp
Z25tZW50SnVzdGlmaWVkOgogICAgICAgICByZXR1cm4gImp1c3RpZnkiOwotICAgIGNhc2UgTlNO
YXR1cmFsVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudE5hdHVyYWw6CiAg
ICAgICAgIHJldHVybiAiLXdlYmtpdC1zdGFydCI7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IGEzNmYzYjMyM2FiOTE2
NTE0NzdiZDNjN2JlMjhjNmEyM2RlOWIxN2QuLjYyNmU0MzZjNmFjNGZlNmI5YTdlYjUzYzJkMzU2
YmY3OTZmZjQ0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNDYsNiAr
NDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TdHJpbmdUcnVuY2F0b3IuaD4KICNpbXBvcnQgPFdl
YktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTYzLDEwICs2
NCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9C
aXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEluCiAgICAgUmV0YWluUHRyPE5TR3JhcGhpY3ND
b250ZXh0PiBzYXZlZENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRd
OwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNz
Q29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNzQ29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1h
cC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1pl
cm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MSByZXNwZWN0
RmxpcHBlZDpZRVMgaGludHM6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRo
KCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlv
bjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlw
cGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRD
b250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KaW5kZXggZTFiM2VmYTk2MjExOGY5MTMw
YWU4ODdhMTA5ODRmNjFjM2M5YThlNi4uNjVlMmMxZjViNTZjYjNkZGUzNDU5N2Y1NDExYTUxNDY1
YTcwNzkyMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIubW0KQEAgLTQzLDYgKzQzLDcgQEAKIAogI2lmICFQTEFURk9STShJT1MpCiAj
aW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+IC8vIGZvciBHZXRDdXJyZW50RXZlbnRUaW1lKCkKKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zNTUsMzMgKzM1NiwzMyBAQCAtICh2b2lkKWNsZWFy
S2lsbFJpbmcKIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFj
dGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3Rpb24pCiB7CiAgICAgc3dpdGNoIChidXR0
b24pIHsKLSAgICAgICAgY2FzZSBMZWZ0TW91c2VCdXR0b246Ci0gICAgICAgICAgICBzd2l0Y2gg
KGFjdGlvbikgewotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEb3duOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91
c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TTGVmdE1vdXNlVXA7Ci0gICAgICAg
ICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBO
U0xlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGNhc2UgUmlnaHRNb3Vz
ZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAg
Y2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU1JpZ2h0TW91c2VE
b3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIE5TUmlnaHRNb3VzZVVwOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNSaWdodE1vdXNlRHJhZ2dlZDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7
Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBOU090aGVyTW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3RoZXJNb3VzZVVwOwotICAgICAgICAgICAgICAg
IGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNPdGhlck1v
dXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KKyAgICBjYXNlIExlZnRNb3VzZUJ1dHRvbjoKKyAg
ICAgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICAgICAgY2FzZSBNb3VzZURvd246CisgICAgICAg
ICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNl
VXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VVcDsKKyAgICAgICAg
Y2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91
c2VEcmFnZ2VkOworICAgICAgICB9CisgICAgY2FzZSBSaWdodE1vdXNlQnV0dG9uOgorICAgICAg
ICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAg
IHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6
CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CisgICAgICAgIGNh
c2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ7CisgICAgICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBzd2l0Y2ggKGFjdGlv
bikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50
VHlwZU90aGVyTW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICBy
ZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2Vk
OgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ7CisgICAg
ICAgIH0KICAgICB9CiAgICAgYXNzZXJ0KDApOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0V2
ZW50VHlwZT4oMCk7CkBAIC00MzMsMTEgKzQzNCwxMSBAQCAtICh2b2lkKXVwZGF0ZUNsaWNrQ291
bnRGb3JCdXR0b246KGludClidXR0b25OdW1iZXIKIHN0YXRpYyBpbnQgbW9kaWZpZXJGbGFncyhj
b25zdCBOU1N0cmluZyogbW9kaWZpZXJOYW1lKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAg
Y29uc3QgaW50IGNvbnRyb2xLZXlNYXNrID0gTlNDb250cm9sS2V5TWFzazsKLSAgICBjb25zdCBp
bnQgc2hpZnRLZXlNYXNrID0gTlNTaGlmdEtleU1hc2s7Ci0gICAgY29uc3QgaW50IGFsdGVybmF0
ZUtleU1hc2sgPSBOU0FsdGVybmF0ZUtleU1hc2s7Ci0gICAgY29uc3QgaW50IGNvbW1hbmRLZXlN
YXNrID0gTlNDb21tYW5kS2V5TWFzazsKLSAgICBjb25zdCBpbnQgY2Fwc0xvY2tLZXlNYXNrID0g
TlNBbHBoYVNoaWZ0S2V5TWFzazsKKyAgICBjb25zdCBpbnQgY29udHJvbEtleU1hc2sgPSBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKKyAgICBjb25zdCBpbnQgc2hpZnRLZXlNYXNrID0gTlNF
dmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAgIGNvbnN0IGludCBhbHRlcm5hdGVLZXlNYXNrID0g
TlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAgICBjb25zdCBpbnQgY29tbWFuZEtleU1hc2sg
PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKKyAgICBjb25zdCBpbnQgY2Fwc0xvY2tLZXlN
YXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOwogI2Vsc2UKICAgICBjb25zdCBpbnQg
Y29udHJvbEtleU1hc2sgPSBXZWJFdmVudEZsYWdNYXNrQ29udHJvbDsKICAgICBjb25zdCBpbnQg
c2hpZnRLZXlNYXNrID0gV2ViRXZlbnRGbGFnTWFza1NoaWZ0OwpAQCAtNjQzLDcgKzY0NCw3IEBA
IC0gKHZvaWQpbW91c2VNb3ZlVG9YOihpbnQpeCBZOihpbnQpeQogICAgIE5TVmlldyAqdmlldyA9
IFttYWluRnJhbWUgd2ViVmlld107CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBsYXN0TW91c2VQ
b3NpdGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDpOU01ha2VQb2ludCh4LCBbdmlldyBmcmFtZV0u
c2l6ZS5oZWlnaHQgLSB5KSB0b1ZpZXc6bmlsXTsKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0dG9uRG93biA/IE5TTGVmdE1vdXNl
RHJhZ2dlZCA6IE5TTW91c2VNb3ZlZCkKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0dG9uRG93biA/IE5TRXZlbnRUeXBlTGVmdE1v
dXNlRHJhZ2dlZCA6IE5TRXZlbnRUeXBlTW91c2VNb3ZlZCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVudFRp
bWVdCkBAIC03NzcsNyArNzc4LDcgQEAgLSAoTlNBcnJheSAqKWNvbnRleHRDbGljawogICAgIFtb
W21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKICAgICBbc2VsZiB1
cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uOlJpZ2h0TW91c2VCdXR0b25dOwogCi0gICAgTlNFdmVu
dCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93bgor
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVudFRpbWVdCkBAIC0xMDEzLDcgKzEw
MTQsNyBAQCAtICh2b2lkKWtleURvd246KE5TU3RyaW5nICopY2hhcmFjdGVyIHdpdGhNb2RpZmll
cnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVycwogCiAgICAgaWYgKFtjaGFyYWN0ZXIgbGVu
Z3RoXSA9PSAxICYmIFtjaGFyYWN0ZXIgY2hhcmFjdGVyQXRJbmRleDowXSA+PSAnQScgJiYgW2No
YXJhY3RlciBjaGFyYWN0ZXJBdEluZGV4OjBdIDw9ICdaJykgewogI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgIG1vZGlm
aWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogI2Vsc2UKICAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBXZWJFdmVudEZsYWdNYXNrQWxwaGFTaGlmdDsKICNlbmRpZgpAQCAtMTAy
MywxMiArMTAyNCwxMiBAQCAtICh2b2lkKWtleURvd246KE5TU3RyaW5nICopY2hhcmFjdGVyIHdp
dGhNb2RpZmllcnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVycwogICAgIG1vZGlmaWVyRmxh
Z3MgfD0gYnVpbGRNb2RpZmllckZsYWdzKG1vZGlmaWVycyk7CiAKICAgICBpZiAobG9jYXRpb24g
PT0gRE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNO
dW1lcmljUGFkS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnTnVtZXJpY1BhZDsKIAogICAgIFtbW21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50
Vmlld10gbGF5b3V0XTsKIAogI2lmICFQTEFURk9STShJT1MpCi0gICAgTlNFdmVudCAqZXZlbnQg
PSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5RG93bgorICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBtb2RpZmllckZsYWdzOm1vZGlmaWVyRmxhZ3MKICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWVzdGFtcDpbc2VsZiBjdXJyZW50RXZlbnRUaW1lXQpAQCAtMTA2MCw3ICsxMDYx
LDcgQEAgLSAodm9pZClrZXlEb3duOihOU1N0cmluZyAqKWNoYXJhY3RlciB3aXRoTW9kaWZpZXJz
OihXZWJTY3JpcHRPYmplY3QgKiltb2RpZmllcnMKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElP
UykKLSAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAorICAgIGV2
ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAgICAgICAg
ICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KQogICAgICAgICAgICAg
ICAgICAgICAgICAgbW9kaWZpZXJGbGFnczptb2RpZmllckZsYWdzCiAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6W3NlbGYgY3VycmVudEV2ZW50VGltZV0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0gYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tCmluZGV4IDVlYzJhOTk2ZjlhNGMx
MmNjMzg5NzBhYjVkMGIwMTFkMDAwYjdiZWUuLjc0ZjFiMTEzNGRmNmU5Njg5ZDBmY2UyZjRhNTE3
NGIwNTA2NGMyZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5w
dXRDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENv
bnRyb2xsZXIubQpAQCAtNTEsNiArNTEsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYlNjcmlwdE9i
amVjdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlR5cGVzSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdl
YktpdC9XZWJWaWV3Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNs
YXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBUZXh0SW5wdXRDb250cm9sbGVyIChEdW1wUmVuZGVy
VHJlZUlucHV0TWV0aG9kSGFuZGxlcikKIC0gKEJPT0wpaW50ZXJwcmV0S2V5RXZlbnRzOihOU0Fy
cmF5ICopZXZlbnRBcnJheSB3aXRoU2VuZGVyOihXZWJIVE1MVmlldyAqKXNlbmRlcjsKQEAgLTUw
NywyMSArNTA4LDIxIEBAIC0gKEJPT0wpaW50ZXJwcmV0S2V5RXZlbnRzOihOU0FycmF5ICopZXZl
bnRBcnJheSB3aXRoU2VuZGVyOihXZWJIVE1MVmlldyAqKXNlbmRlCiAgICAgTlNFdmVudCAqZXZl
bnQgPSBbZXZlbnRBcnJheSBvYmplY3RBdEluZGV4OjBdOwogICAgIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MgPSBbZXZlbnQgbW9kaWZpZXJGbGFnc107IAogICAgIE5TTXV0YWJsZUFycmF5ICptb2Rp
ZmllcnMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKLSAgICBpZiAobW9kaWZpZXJG
bGFncyAmIE5TQWxwaGFTaGlmdEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAi
TlNBbHBoYVNoaWZ0S2V5TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtl
eU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQp
CiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAiTlNTaGlmdEtleU1hc2siXTsKLSAgICBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TQ29udHJvbEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKICAgICAgICAgW21vZGlmaWVycyBhZGRP
YmplY3Q6QCJOU0NvbnRyb2xLZXlNYXNrIl07Ci0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0Fs
dGVybmF0ZUtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uKQogICAgICAgICBbbW9kaWZpZXJzIGFkZE9iamVjdDpAIk5TQWx0ZXJuYXRlS2V5
TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5TWFzaykKKyAgICBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKQogICAgICAgICBb
bW9kaWZpZXJzIGFkZE9iamVjdDpAIk5TQ29tbWFuZEtleU1hc2siXTsKLSAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TTnVtZXJpY1BhZEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCkKICAgICAgICAgW21vZGlmaWVycyBhZGRPYmpl
Y3Q6QCJOU051bWVyaWNQYWRLZXlNYXNrIl07Ci0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0hl
bHBLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0hl
bHApCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAiTlNIZWxwS2V5TWFzayJdOwotICAg
IGlmIChtb2RpZmllckZsYWdzICYgTlNGdW5jdGlvbktleU1hc2spCisgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb24pCiAgICAgICAgIFttb2RpZmllcnMg
YWRkT2JqZWN0OkAiTlNGdW5jdGlvbktleU1hc2siXTsKICAgICAKICAgICBXZWJTY3JpcHRPYmpl
Y3QqIGV2ZW50UGFyYW0gPSBbaW5wdXRNZXRob2RIYW5kbGVyIGV2YWx1YXRlV2ViU2NyaXB0OkAi
bmV3IE9iamVjdCgpOyJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1tCmluZGV4IDY3ODY3MDBlZDIz
ZDdhYWE4MWMxZTE2MDFiNjlmZDNhMjFkNWVjNTIuLmFkMDRjNWVjODRmOGJmNGY1OWZiZDMxNjEw
ZmZjMmU4MThhNjliZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9Db21tYW5kQmFja0ZvcndhcmQubW0KQEAgLTM0LDYgKzM0LDcg
QEAKICNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0ci5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVmll
d1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMv
QXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIENvbW1hbmRC
YWNrRm9yd2FyZE9mZnNjcmVlbldpbmRvdyA6IE5TV2luZG93CiBAZW5kCkBAIC02Miw5ICs2Myw5
IEBAIHN0YXRpYyB2b2lkIHNpbXVsYXRlQ29tbWFuZEFycm93KE5TVmlldyAqdmlldywgQXJyb3dE
aXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIE5TU3RyaW5nICpldmVudENoYXJhY3RlciA9IChkaXJl
Y3Rpb24gPT0gTGVmdCkgPyBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmxlZnQgbGVu
Z3RoOjFdIDogW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZyaWdodCBsZW5ndGg6MV07
CiAgICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IChkaXJlY3Rpb24gPT0gTGVmdCkgPyAweDdC
IDogMHg3QzsKIAotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlw
ZTpOU0tleURvd24KKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5
cGU6TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RpZmllckZsYWdzOk5TQ29tbWFuZEtleU1hc2sKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVu
dEV2ZW50VGltZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVt
YmVyOlt2aWV3LndpbmRvdyB3aW5kb3dOdW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0K
QEAgLTc1LDkgKzc2LDkgQEAgc3RhdGljIHZvaWQgc2ltdWxhdGVDb21tYW5kQXJyb3coTlNWaWV3
ICp2aWV3LCBBcnJvd0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAKICAgICBbdmlldyBrZXlEb3duOmV2
ZW50XTsKIAotICAgIGV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleVVwCisg
ICAgZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6TlNDb21tYW5kS2V5TWFzaworICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpOU0V2ZW50TW9kaWZpZXJGbGFnQ29t
bWFuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZl
bnRUaW1lKCkKICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W3ZpZXcud2lu
ZG93IHdpbmRvd051bWJlcl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6
W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1t
CmluZGV4IGViZTg4YjZhNDJjZTJhMWY0MTVjMzcwOTUzZTc0YWEyNDBmOWI3ZmMuLjg0ZGNiZTJm
MjI1NmNlOWVmZGYyOGVjYWFmNDgzMTVmZDQzZTY1NGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUu
bW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmg+CiAjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJh
dGlvbnMuaD4KIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRMb2FkZWRNZXNzYWdlOwogc3RhdGljIGJv
b2wgcmVjZWl2ZWRXaWxsRW50ZXJGdWxsc2NyZWVuTWVzc2FnZTsKQEAgLTgzLDE0ICs4NCwxNCBA
QCBURVNUKEZ1bGxzY3JlZW4sIERlbGVnYXRlKQogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29u
dGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFt
ZTpAImZ1bGxzY3JlZW5DaGFuZ2VIYW5kbGVyIl07CiAgICAgW3dlYlZpZXcgX3NldEZ1bGxzY3Jl
ZW5EZWxlZ2F0ZTpoYW5kbGVyLmdldCgpXTsKIAotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2lu
ZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJW
aWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdp
bmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2Vi
VmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBbW3dpbmRvdyBjb250ZW50
Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIkZ1bGxzY3JlZW5EZWxlZ2F0ZSIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
cmVjZWl2ZWRMb2FkZWRNZXNzYWdlKTsKIAotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1
LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQo
KS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNz
dXJlOjBdOworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBl
Ok5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dO
dW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwog
ICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpldmVudF07CiAKICAgICBBU1NFUlRfRkFMU0UoW3dlYlZp
ZXcgX2lzSW5GdWxsc2NyZWVuXSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWlu
dHMubW0KaW5kZXggNGRlYTBiYzNmZGUwYTEyMDZmMTdmMjBlMmFlOWFmZThhZmY4ZDM4NS4uYmMz
MGI2OGY1Y2MzNTMwYTllMWMwMDBkYWExM2JmMzI2MTVkYzg4YyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkxheW91dENvbnN0cmFp
bnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxz
Y3JlZW5MYXlvdXRDb25zdHJhaW50cy5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tX
ZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIHN0YXRpYyBib29sIHJl
Y2VpdmVkTG9hZGVkTWVzc2FnZTsKIHN0YXRpYyBib29sIHJlY2VpdmVkRnVsbHNjcmVlbkNoYW5n
ZU1lc3NhZ2U7CkBAIC02MCw3ICs2MSw3IEBAIFRFU1QoRnVsbHNjcmVlbiwgTGF5b3V0Q29uc3Ry
YWludHMpCiAgICAgUmV0YWluUHRyPEZ1bGxzY3JlZW5TdGF0ZUNoYW5nZU1lc3NhZ2VIYW5kbGVy
PiBoYW5kbGVyID0gYWRvcHROUyhbW0Z1bGxzY3JlZW5TdGF0ZUNoYW5nZU1lc3NhZ2VIYW5kbGVy
IGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxl
cl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAiZnVsbHNjcmVl
blN0YXRlQ2hhbmdlSGFuZGxlciJdOwogCi0gICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cg
PSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcg
ZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93
ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3
IGZyYW1lXSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIHdlYlZpZXcuZ2V0KCkudHJhbnNs
YXRlc0F1dG9yZXNpemluZ01hc2tJbnRvQ29uc3RyYWludHMgPSBOTzsKICAgICBbW3dpbmRvdyBj
b250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKICAgICAKQEAgLTc0LDE0ICs3
NSwxNCBAQCBURVNUKEZ1bGxzY3JlZW4sIExheW91dENvbnN0cmFpbnRzKQogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRMb2FkZWRNZXNzYWdlKTsKIAotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1
KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53
aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmll
ckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1i
ZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogICAg
IFt3ZWJWaWV3IG1vdXNlRG93bjpldmVudF07CiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2UpOwogICAgIAogICAgIHJlY2VpdmVk
RnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2UgPSBmYWxzZTsKICAgICAKLSAgICBOU0V2ZW50ICpleGl0
RlNFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9j
YXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRv
d051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjow
IGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKKyAgICBOU0V2ZW50ICpleGl0RlNFdmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRp
b246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051
bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNs
aWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBbd2ViVmlldyBtb3VzZURvd246ZXhpdEZTRXZl
bnRdOwogICAgIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRGdWxsc2Ny
ZWVuQ2hhbmdlTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuVG9wQ29udGVudEluc2V0Lm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbQpp
bmRleCBiZjFkMGNiYzJmNDVlNGZmYjU2MmQ0ZTY3NGFkMGUwZjdhMzc1YTYxLi4wMWY2ZTg4OTNj
MWYzNzI3M2Y3OTgwMjM3NzhjZGM1MjFlZWJkMzhmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuVG9wQ29udGVudEluc2V0Lm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5Ub3BD
b250ZW50SW5zZXQubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBzdGF0aWMgYm9vbCByZWNlaXZlZExvYWRl
ZE1lc3NhZ2U7CiBzdGF0aWMgYm9vbCByZWNlaXZlZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlOwpA
QCAtNjEsMTQgKzYyLDE0IEBAIFRFU1QoRnVsbHNjcmVlbiwgVG9wQ29udGVudEluc2V0KQogICAg
IFJldGFpblB0cjxGdWxsc2NyZWVuQ2hhbmdlTWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9w
dE5TKFtbRnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAg
W1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhh
bmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAiZnVsbHNjcmVlbkNoYW5nZUhhbmRsZXIiXTsKIAot
ICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9j
XSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJs
ZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsK
KyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dKTsKICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgp
XTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkZ1bGxzY3JlZW5U
b3BDb250ZW50SW5zZXQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTG9hZGVkTWVzc2FnZSk7
CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xl
ZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVyIGNvbnRleHQ6
MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKKyAgICBOU0V2ZW50ICpl
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURv
d24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDow
IHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51
bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBbd2ViVmlldyBtb3VzZURvd246
ZXZlbnRdOwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZEZ1bGxzY3Jl
ZW5DaGFuZ2VNZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TaG91bGRPcGVuRXh0ZXJu
YWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tCmluZGV4IDNhYmE5NzA4YjIzYzFmNDQxNTA5YjBl
Nzk2Yzk5NzNjMzFhMWZkODEuLjFhYzNkOTIzZGExNDcxNGY3ZGE5ZjgyOTU2Y2NiYjVkYzQwM2M3
M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1No
b3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3
V2luZG93QWN0aW9ucy5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLTmF2
aWdhdGlvbkFjdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRl
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENv
bXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKQEAgLTcz
LDcgKzc0LDcgQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5XaW5kb3dP
cGVuKQogewogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKIAotICAgIGF1dG8gd2lu
ZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJW
aWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CisgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5T
KFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0
eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2
aWV3OndlYlZpZXcuZ2V0KCldOwogCiAgICAgYXV0byBjb250cm9sbGVyID0gYWRvcHROUyhbW1No
b3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnNDb250cm9sbGVyIGFsbG9jXSBp
bml0XSk7CkBAIC04Niw4ICs4Nyw4IEBAIFRFU1QoV2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc0luV2luZG93T3BlbikKIAogICAgIE5TUG9pbnQgY2xpY2tQb2ludCA9IE5TTWFrZVBvaW50
KDEwMCwgMTAwKTsKIAotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93
bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNs
aWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93
IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJl
c3N1cmU6MV1dOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93
TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTox
XV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xp
Y2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cg
d2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVz
c3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpj
bGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRv
dyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHBy
ZXNzdXJlOjFdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNyZWF0ZWRXZWJWaWV3
KTsKICAgICBjcmVhdGVkV2ViVmlldyA9IGZhbHNlOwogCkBAIC0xMDgsOCArMTA5LDggQEAgVEVT
VChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5XaW5kb3dPcGVuKQogICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKICAgICBmaW5pc2hlZE5h
dmlnYXRpb24gPSBmYWxzZTsKIAotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1v
dXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0
aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpb
d2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjEgcHJlc3N1cmU6MV1dOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNl
VXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xp
Y2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cg
d2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVz
c3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRp
b246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3
aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6
MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VV
cDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2Nh
dGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6
W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3Vu
dDoxIHByZXNzdXJlOjFdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNyZWF0ZWRX
ZWJWaWV3KTsKICAgICBjcmVhdGVkV2ViVmlldyA9IGZhbHNlOwogCkBAIC0xMzQsNyArMTM1LDcg
QEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5UYXJnZXRlZExpbmspCiB7
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwogCi0gICAgYXV0byB3aW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJh
bWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3Rv
cmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKKyAgICBhdXRvIHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6WUVTXSk7CiAgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2Vi
Vmlldy5nZXQoKV07CiAKICAgICBhdXRvIGNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbU2hvdWxkT3Bl
bkV4dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9uc0NvbnRyb2xsZXIgYWxsb2NdIGluaXRdKTsK
QEAgLTE0OCw4ICsxNDksOCBAQCBURVNUKFdlYktpdDIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJ
blRhcmdldGVkTGluaykKICAgICBOU1BvaW50IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgxMDAs
IDEwMCk7CiAKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7Ci0gICAgW1t3ZWJWaWV3IGhpdFRl
c3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xl
ZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51
bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07Ci0gICAgW1t3ZWJWaWV3IGhpdFRlc3Q6
Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91
c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5k
b3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAg
Y2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1Bv
aW50XSBtb3VzZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVm
dE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6
MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVt
YmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAgICBbW3dlYlZpZXcgaGl0VGVzdDpj
bGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUxlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFt
cDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnRO
dW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogCkBA
IC0xNzgsOCArMTc5LDggQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5U
YXJnZXRlZExpbmspCiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAKICAgICBkZWNp
ZGVkUG9saWN5ID0gZmFsc2U7Ci0gICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91
c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRp
b246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3
aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6
MSBwcmVzc3VyZToxXV07Ci0gICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VV
cDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlj
a1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3
aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNz
dXJlOjFdXTsKKyAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlv
bjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dp
bmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDox
IHByZXNzdXJlOjFdXTsKKyAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVw
OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0
aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpb
d2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjEgcHJlc3N1cmU6MV1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBv
bGljeSk7CiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogCkBAIC0yMTAsNyArMjExLDcgQEAg
VEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5UYXJnZXRlZExpbmspCiBURVNU
KFdlYktpdDIsIFJlc3RvcmVTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5QWZ0ZXJDcmFzaCkK
IHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7Ci0gICAgYXV0byB3aW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJh
bWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3Rv
cmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKKyAgICBhdXRvIHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6WUVTXSk7CiAgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2Vi
Vmlldy5nZXQoKV07CiAgICAgYXV0byBjb250cm9sbGVyID0gYWRvcHROUyhbW1Nob3VsZE9wZW5F
eHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnNDb250cm9sbGVyIGFsbG9jXSBpbml0XSk7CiAg
ICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmNvbnRyb2xsZXIuZ2V0KCldOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVXNlckluaXRp
YXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1VzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0K
aW5kZXggNmZkYzA3NWQ1MTUzNjY4NTZmZDIzNWJkYjY5ZGQzYjJjNTgyZTNiZC4uYzg0NGIyZTI1
YmJjZmRmYmVlNWI4NjQ4M2Y2Y2I0MDMxZDBmMjk5MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlv
bkFjdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9V
c2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9uLm1tCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19X
S1VzZXJJbml0aWF0ZWRBY3Rpb24uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgV0tf
QVBJX0VOQUJMRUQKIApAQCAtNzIsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwogCi0gICAgICAgIHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNr
Ok5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRl
ZmVyOllFU10pOworICAgICAgICB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGlu
aXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxl
TWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10p
OwogICAgICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgp
XTsKIAogICAgICAgICBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VySW5pdGlhdGVkQWN0aW9uSW5O
YXZpZ2F0aW9uQWN0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTk5LDggKzEwMCw4IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIE5TUG9pbnQgY2xpY2tQb2ludCA9IE5TTWFrZVBvaW50
KDEwMCwgMTAwKTsKIAotICAgICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3Vz
ZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlv
bjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dp
bmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDox
IHByZXNzdXJlOjFdXTsKLSAgICAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91
c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcCBsb2NhdGlvbjpj
bGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRv
dyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHBy
ZXNzdXJlOjFdXTsKKyAgICAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VE
b3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24g
bG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVt
YmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNr
Q291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9p
bnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1v
dXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2lu
ZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjow
IGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWNjZXB0c0ZpcnN0TW91c2UubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BY2NlcHRzRmlyc3RNb3VzZS5tbQppbmRleCBkZWM3ODg4
MDRmNjViNDE2NjFlOWU5ZDBmM2ZmMGQ2YWZlZTQ3YjIyLi43YzM0NDk0NTUwZjcyNDViMTBlMDcz
YjQ4NzE4ZDExOWEwZGI0ZDQwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9BY2NlcHRzRmlyc3RNb3VzZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9BY2NlcHRzRmlyc3RNb3VzZS5tbQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldl
YktpdEFnbm9zdGljVGVzdC5oIgogCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJm
YWNlIE5TQXBwbGljYXRpb24gKFRlc3RXZWJLaXRBUElOU0FwcGxpY2F0aW9uRGV0YWlscykKIC0g
KHZvaWQpX3NldEN1cnJlbnRFdmVudDooTlNFdmVudCAqKWV2ZW50OwpAQCAtNDcsMTcgKzQ4LDE3
IEBAIHB1YmxpYzoKIHRlbXBsYXRlIDx0eXBlbmFtZSBWaWV3Pgogdm9pZCBBY2NlcHRzRmlyc3RN
b3VzZTo6cnVuVGVzdChWaWV3IHZpZXcpCiB7Ci0gICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5k
b3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6dmlldy5m
cmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0
b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CisgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cg
PSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6dmlldy5mcmFt
ZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKICAgICBbW3dpbmRvdy5nZXQoKSBjb250ZW50Vmll
d10gYWRkU3Vidmlldzp2aWV3XTsKIAogICAgIENHRmxvYXQgdmlld0hlaWdodCA9IHZpZXcuYm91
bmRzLnNpemUuaGVpZ2h0OwogCiAgICAgTlNQb2ludCBwb2ludEluc2lkZVNlbGVjdGlvbiA9IE5T
TWFrZVBvaW50KDUwLCB2aWV3SGVpZ2h0IC0gNTApOwotICAgIE5TRXZlbnQgKm1vdXNlRXZlbnRJ
bnNpZGVTZWxlY3Rpb24gPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VE
b3duIGxvY2F0aW9uOnBvaW50SW5zaWRlU2VsZWN0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3Rh
bXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdy5nZXQoKSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmls
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOworICAgIE5TRXZlbnQgKm1v
dXNlRXZlbnRJbnNpZGVTZWxlY3Rpb24gPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50SW5zaWRlU2VsZWN0aW9uIG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdy5nZXQoKSB3aW5kb3dO
dW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFd
OwogICAgIEVYUEVDVF9UUlVFKFtbdmlldyBoaXRUZXN0OnBvaW50SW5zaWRlU2VsZWN0aW9uXSBh
Y2NlcHRzRmlyc3RNb3VzZTptb3VzZUV2ZW50SW5zaWRlU2VsZWN0aW9uXSk7CiAKICAgICBOU1Bv
aW50IHBvaW50T3V0c2lkZVNlbGVjdGlvbiA9IE5TTWFrZVBvaW50KDUwLCB2aWV3SGVpZ2h0IC0g
MTUwKTsKLSAgICBOU0V2ZW50ICptb3VzZUV2ZW50T3V0c2lkZVNlbGVjdGlvbiA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246cG9pbnRPdXRzaWRl
U2VsZWN0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRv
dy5nZXQoKSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3Vu
dDoxIHByZXNzdXJlOjFdOworICAgIE5TRXZlbnQgKm1vdXNlRXZlbnRPdXRzaWRlU2VsZWN0aW9u
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBs
b2NhdGlvbjpwb2ludE91dHNpZGVTZWxlY3Rpb24gbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDow
IHdpbmRvd051bWJlcjpbd2luZG93LmdldCgpIHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZl
bnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07CiAgICAgRVhQRUNUX0ZBTFNFKFtb
dmlldyBoaXRUZXN0OnBvaW50SW5zaWRlU2VsZWN0aW9uXSBhY2NlcHRzRmlyc3RNb3VzZTptb3Vz
ZUV2ZW50T3V0c2lkZVNlbGVjdGlvbl0pOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KaW5kZXggOGRhYjYzNzgw
ODlmNzk5NTUxZTE4YmY3Yjc1MGVkOGYzMjRjZmNhZC4uZDk1NzYzOTQ0YzZmOTJlYzU0ZjM3MjIz
YTllNTY5ODdjNGM2MjFlMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9y
dCA8V2ViS2l0L0RPTS5oPgogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIAogQGludGVyZmFjZSBDb250ZXh0TWVudUNhbkNvcHlVUkxEZWxlZ2F0ZSA6
IE5TT2JqZWN0IDxXZWJGcmFtZUxvYWREZWxlZ2F0ZT4gewpAQCAtNjEsNyArNjIsNyBAQCBzdGF0
aWMgdm9pZCBjb250ZXh0TWVudUNvcHlMaW5rKFdlYlZpZXcqIHdlYlZpZXcsIGludCBpdGVtSW5k
ZXgpCiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQgKmFuY2hvciA9IChET01IVE1MQW5jaG9yRWxl
bWVudCAqKVtbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0b3JBbGw6QCJhIl0gaXRlbTppdGVt
SW5kZXhdOwogCiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFt3ZWJWaWV3IHdpbmRvd107Ci0gICAg
TlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNl
RG93bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlUmlnaHRNb3VzZURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludChhbmNob3Iub2Zmc2V0TGVmdCArIGFuY2hvci5v
ZmZzZXRXaWR0aCAvIDIsIHdpbmRvdy5mcmFtZS5zaXplLmhlaWdodCAtIChhbmNob3Iub2Zmc2V0
VG9wICsgYW5jaG9yLm9mZnNldEhlaWdodCAvIDIpKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTg5LDcgKzkwLDcg
QEAgc3RhdGljIHZvaWQgY29udGV4dE1lbnVDb3B5TGluayhXZWJWaWV3KiB3ZWJWaWV3LCBpbnQg
aXRlbUluZGV4KQogVEVTVChXZWJLaXQxLCBDb250ZXh0TWVudUNhbkNvcHlVUkwpCiB7CiAgICAg
UmV0YWluUHRyPFdlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsMCw4MDAsNjAwKSBmcmFtZU5hbWU6bmlsIGdyb3VwTmFt
ZTpuaWxdKTsKLSAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCA4MDAs
IDYwMCkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdT
dG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOworICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93
ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJl
Y3QoMTAwLCAxMDAsIDgwMCwgNjAwKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJs
ZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKICAgICBSZXRh
aW5QdHI8Q29udGV4dE1lbnVDYW5Db3B5VVJMRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRvcHROUyhb
W0NvbnRleHRNZW51Q2FuQ29weVVSTERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAKICAgICBbd2lu
ZG93LmdldCgpLmNvbnRlbnRWaWV3IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudURlZmF1bHRJdGVt
c0hhdmVUYWdzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVE
ZWZhdWx0SXRlbXNIYXZlVGFncy5tbQppbmRleCA5ZTA0N2Y2YTg1MmI4ZTRhYmYyYWNhZGVlNGNm
YjRjOThmZmI1NDY4Li41OGYwMjE3YmM4ZDZmNWJmNmE2ODA3ZDUyZDZmOTk4MmRmNzc2NTBhIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudURlZmF1
bHRJdGVtc0hhdmVUYWdzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nv
bnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3MubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBv
cnQgIlBsYXRmb3JtV2ViVmlldy5oIgogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZl
VGFnc0RlbGVnYXRlIDogTlNPYmplY3QgPFdlYkZyYW1lTG9hZERlbGVnYXRlPgogQGVuZApAQCAt
NDksNyArNTAsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBURVNUKFdlYktpdDEsIENv
bnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3MpCiB7CiAgICAgUmV0YWluUHRyPFdlYlZpZXc+
IHdlYlZpZXcgPSBhZG9wdE5TKFtbV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBmcmFtZU5hbWU6bmlsIGdyb3VwTmFtZTpuaWxdKTsKLSAgICBS
ZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5p
dFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCA4MDAsIDYwMCkgc3R5bGVNYXNr
Ok5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRl
ZmVyOllFU10pOworICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05T
V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMTAwLCAxMDAsIDgw
MCwgNjAwKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKICAgICBSZXRhaW5QdHI8Q29udGV4dE1l
bnVEZWZhdWx0SXRlbXNIYXZlVGFnc0RlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tDb250
ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKIAogICAg
IFt3aW5kb3cuZ2V0KCkuY29udGVudFZpZXcgYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKQEAg
LTU5LDcgKzYwLDcgQEAgVEVTVChXZWJLaXQxLCBDb250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVU
YWdzKQogCiAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKIAotICAgIE5TRXZlbnQgKmV2
ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24gbG9jYXRp
b246TlNNYWtlUG9pbnQoNDAwLCAzMDApIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6W05TRGF0
ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCisgICAgTlNFdmVudCAqZXZlbnQgPSBb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlRG93biBsb2Nh
dGlvbjpOU01ha2VQb2ludCg0MDAsIDMwMCkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpbTlNE
YXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVy
Olt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50
Q29udGV4dF0gZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CiAgICAgTlNW
aWV3ICpzdWJWaWV3ID0gW3dlYlZpZXcgaGl0VGVzdDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd11d
OwogICAgIE5TTWVudSAqbWVudSA9IFtzdWJWaWV3IG1lbnVGb3JFdmVudDpldmVudF07CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRp
YWxGcmFtZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29t
SW5pdGlhbEZyYW1lLm1tCmluZGV4IGQzMmFhY2UwMzU4ZDgxMzRkYmM4NmM2MjI3OGE4ZTZmMjNh
MGNiNGIuLmZmYzBjNmU3NTM1MGU1MWQ2YzYyOTJlOTk2M2NjOGUwMDJjOTJmNDkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZy
YW1lLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29t
SW5pdGlhbEZyYW1lLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tWaWV3
UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBOU1dpbmRvd0NvbnRyb2xsZXIgKFdlYktp
dEZ1bGxTY3JlZW5BZGRpdGlvbnMpCiAtIChOU1JlY3QpaW5pdGlhbEZyYW1lOwpAQCAtMTUwLDEy
ICsxNTEsMTIgQEAgdm9pZCBGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZTo6c2VuZE1vdXNlRG93
bkV2ZW50KFdLVmlldyAqd2tWaWV3LCBOU0V2ZW50ICpldmUKIHRlbXBsYXRlIDx0eXBlbmFtZSBW
aWV3Pgogdm9pZCBGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZTo6cnVuVGVzdChWaWV3IHZpZXcp
CiB7Ci0gICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6dmlldy5mcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJs
ZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsK
KyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDp2aWV3LmZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxl
TWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7
CiAgICAgW3dpbmRvdy5nZXQoKS5jb250ZW50VmlldyBhZGRTdWJ2aWV3OnZpZXddOwogCiAgICAg
c2V0UGFnZVNjYWxlKHZpZXcsIDIpOwogCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUs
IDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6d2luZG93LmdldCgp
LndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1
cmU6MF07CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051
bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CiAK
ICAgICBpc1dhaXRpbmdGb3JQYWdlU2lnbmFsVG9Db250aW51ZSA9IHRydWU7CiAgICAgZGlkR2V0
UGFnZVNpZ25hbFRvQ29udGludWUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL01lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvTWVudVR5cGVzRm9yTW91c2VFdmVudHMubW0KaW5kZXggOGU0YjRm
NzkxYTlhZjBhN2ZlMmI3NmZlZTZlOTAzYjgxMGMxZjBiNi4uMjMyMDc0MGM1YmE3NGU3N2UzNTBm
NzU2ZjZkZmRhMjkzYzhjOGJhNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvTWVudVR5cGVzRm9yTW91c2VFdmVudHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvTWVudVR5cGVzRm9yTW91c2VFdmVudHMubW0KQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPHd0
Zi9BdXRvZHJhaW5lZFBvb2wuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQg
PHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CiAKQEAgLTYzLDc3ICs2NCw3NyBAQCBzdGF0aWMgdm9pZCBidWlsZEFu
ZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlIGJ1dHRvbkV2ZW50LCBOU0V2ZW50TW9kaWZpZXJGbGFn
cyBtbwogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JOb3JtYWxMZWZ0Q2xpY2spCiB7
Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0xlZnRNb3VzZURvd24sIDAsIFdlYkNvcmU6Okxl
ZnRCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93biwgMCwgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5v
bmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JOb3JtYWxSaWdodENsaWNr
KQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNSaWdodE1vdXNlRG93biwgMCwgV2ViQ29y
ZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CisgICAgYnVpbGRBbmRQZXJm
b3JtVGVzdChOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duLCAwLCBXZWJDb3JlOjpSaWdodEJ1dHRv
biwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0
dG9uRm9yTm9ybWFsTWlkZGxlQ2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU090
aGVyTW91c2VEb3duLCAwLCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsK
KyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24sIDAsIFdl
YkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEs
IE1lbnVBbmRCdXR0b25Gb3JDb250cm9sTGVmdENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9y
bVRlc3QoTlNMZWZ0TW91c2VEb3duLCBOU0NvbnRyb2xLZXlNYXNrLCBXZWJDb3JlOjpMZWZ0QnV0
dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNF
dmVudFR5cGVMZWZ0TW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCwgV2ViQ29y
ZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKIH0KIAogVEVTVChXZWJLaXQx
LCBNZW51QW5kQnV0dG9uRm9yQ29udHJvbFJpZ2h0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJm
b3JtVGVzdChOU1JpZ2h0TW91c2VEb3duLCBOU0NvbnRyb2xLZXlNYXNrLCBXZWJDb3JlOjpSaWdo
dEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0
KE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sLCBX
ZWJDb3JlOjpSaWdodEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKIH0KIAogVEVTVChX
ZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQ29udHJvbE1pZGRsZUNsaWNrKQogewotICAgIGJ1aWxk
QW5kUGVyZm9ybVRlc3QoTlNPdGhlck1vdXNlRG93biwgTlNDb250cm9sS2V5TWFzaywgV2ViQ29y
ZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVz
dChOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCwg
V2ViQ29yZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CiB9CiAgICAgCiBURVNUKFdl
YktpdDEsIE1lbnVBbmRCdXR0b25Gb3JTaGlmdExlZnRDbGljaykKIHsKLSAgICBidWlsZEFuZFBl
cmZvcm1UZXN0KE5TTGVmdE1vdXNlRG93biwgTlNTaGlmdEtleU1hc2ssIFdlYkNvcmU6OkxlZnRC
dXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0LCBXZWJDb3JlOjpMZWZ0
QnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRv
bkZvclNoaWZ0UmlnaHRDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TUmlnaHRN
b3VzZURvd24sIE5TU2hpZnRLZXlNYXNrLCBXZWJDb3JlOjpSaWdodEJ1dHRvbiwgTlNNZW51VHlw
ZUNvbnRleHRNZW51KTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlUmlnaHRN
b3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCwgV2ViQ29yZTo6UmlnaHRCdXR0b24s
IE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRv
bkZvclNoaWZ0TWlkZGxlQ2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU090aGVy
TW91c2VEb3duLCBOU1NoaWZ0S2V5TWFzaywgV2ViQ29yZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVU
eXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZU90aGVyTW91c2VE
b3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQsIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNN
ZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JDb21tYW5k
TGVmdENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNMZWZ0TW91c2VEb3duLCBO
U0NvbW1hbmRLZXlNYXNrLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7Cisg
ICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24sIE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7
CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvckNvbW1hbmRSaWdodENsaWNrKQog
ewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNSaWdodE1vdXNlRG93biwgTlNDb21tYW5kS2V5
TWFzaywgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CisgICAg
YnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duLCBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29tbWFuZCwgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0
TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvckNvbW1hbmRNaWRkbGVD
bGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TT3RoZXJNb3VzZURvd24sIE5TQ29t
bWFuZEtleU1hc2ssIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOworICAg
IGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVPdGhlck1vdXNlRG93biwgTlNFdmVudE1v
ZGlmaWVyRmxhZ0NvbW1hbmQsIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUp
OwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JBbHRMZWZ0Q2xpY2spCiB7Ci0g
ICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0xlZnRNb3VzZURvd24sIE5TQWx0ZXJuYXRlS2V5TWFz
aywgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOworICAgIGJ1aWxkQW5kUGVy
Zm9ybVRlc3QoTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CiB9CiAKIFRFU1QoV2Vi
S2l0MSwgTWVudUFuZEJ1dHRvbkZvckFsdFJpZ2h0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJm
b3JtVGVzdChOU1JpZ2h0TW91c2VEb3duLCBOU0FsdGVybmF0ZUtleU1hc2ssIFdlYkNvcmU6OlJp
Z2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRl
c3QoTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbiwg
V2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1Qo
V2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvckFsdE1pZGRsZUNsaWNrKQogewotICAgIGJ1aWxkQW5k
UGVyZm9ybVRlc3QoTlNPdGhlck1vdXNlRG93biwgTlNBbHRlcm5hdGVLZXlNYXNrLCBXZWJDb3Jl
OjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0
KE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24sIFdl
YkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtVXRpbGl0aWVzTWFjLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1VdGlsaXRpZXNNYWMubW0KaW5kZXggOWM2MzhmZjQ0
NDJhYjQwNDE0MjhmMDViMzc2ODk2YzhiMWQ5YzUyOS4uYTBjNDJlNzg5YjQ0MGNkODEzYjY3ZmQy
MzZlOWE4OWE2ZWYyOTMwMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxh
dGZvcm1VdGlsaXRpZXNNYWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZv
cm1VdGlsaXRpZXNNYWMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tV
UkxSZXNwb25zZU5TLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogbmFtZXNwYWNlIFV0
aWwgewpAQCAtNjIsNyArNjMsNyBAQCBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gTUlNRVR5cGVG
b3JXS1VSTFJlc3BvbnNlKFdLVVJMUmVzcG9uc2VSZWYgd2tSZXNwb25zZSkKIAogYm9vbCBpc0tl
eURvd24oV0tOYXRpdmVFdmVudFB0ciBldmVudCkKIHsKLSAgICByZXR1cm4gW2V2ZW50IHR5cGVd
ID09IE5TS2V5RG93bjsKKyAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5
RG93bjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVXRpbApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9t
YWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IGFkMzVmNTg2Y2Y3MjM1OWEzYjdlOTEzNmY5
ZWJlYmExNjIyZjdjN2QuLjJlMzljYTRhNGM4MWE4YWU2NzM4ZjUwZTdjYTIxNTMyMzQwN2Q3N2Yg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAg
LTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPFdlYktp
dC9XS1JldGFpblB0ci5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4KKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJm
YWNlIEFjdGl2ZU9mZnNjcmVlbldpbmRvdyA6IE5TV2luZG93CiBAZW5kCkBAIC01Myw3ICs1NCw3
IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojppbml0aWFsaXplKFdLUGFnZUNvbmZpZ3VyYXRpb25S
ZWYgY29uZmlndXJhdGlvbiwgQ2xhc3Mgd2tWCiAgICAgW21fdmlldyBzZXRXaW5kb3dPY2NsdXNp
b25EZXRlY3Rpb25FbmFibGVkOk5PXTsKIAogICAgIE5TUmVjdCB3aW5kb3dSZWN0ID0gTlNPZmZz
ZXRSZWN0KHJlY3QsIC0xMDAwMCwgWyhOU1NjcmVlbiAqKVtbTlNTY3JlZW4gc2NyZWVuc10gb2Jq
ZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSByZWN0LnNpemUuaGVpZ2h0ICsgMTAw
MDApOwotICAgIG1fd2luZG93ID0gW1tBY3RpdmVPZmZzY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRX
aXRoQ29udGVudFJlY3Q6d2luZG93UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFz
ayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKKyAgICBtX3dpbmRv
dyA9IFtbQWN0aXZlT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ondp
bmRvd1JlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKICAgICBbbV93aW5kb3cgc2V0Q29sb3JT
cGFjZTpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGNvbG9yU3BhY2VdXTsKICAgICBbW21fd2luZG93
IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3Om1fdmlld107CiAgICAgW21fd2luZG93IG9yZGVyQmFj
azpuaWxdOwpAQCAtMTIxLDcgKzEyMiw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygp
CiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVNwYWNlYmFyS2V5UHJlc3MoKQogewot
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleURvd24K
KyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVLZXlEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Rp
ZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3Rh
bXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCkBAIC0xMzQsNyArMTM1LDcgQEAgdm9pZCBQbGF0Zm9y
bVdlYlZpZXc6OnNpbXVsYXRlU3BhY2ViYXJLZXlQcmVzcygpCiAKICAgICBbbV92aWV3IGtleURv
d246ZXZlbnRdOwogCi0gICAgZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5
VXAKKyAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlV
cAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1
KQogICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKQpAQCAtMTUwLDcg
KzE1MSw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVNwYWNlYmFyS2V5UHJlc3Mo
KQogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdodENsaWNrKHVuc2lnbmVkIHgs
IHVuc2lnbmVkIHkpCiB7Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCh4LCB5KQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZl
bnRUaW1lKCkKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxh
dGVSaWdodENsaWNrKHVuc2lnbmVkIHgsIHVuc2lnbmVkIHkpCiAKICAgICBbbV92aWV3IHJpZ2h0
TW91c2VEb3duOmV2ZW50XTsKIAotICAgIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TUmlnaHRNb3VzZVVwCisgICAgZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2NhdGlvbjpOU01ha2VQb2ludCh4LCB5KQogICAgICAgICAgICAgICAgICAgICAgICAgICBt
b2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpH
ZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTE3OSw3ICsxODAsNyBAQCB2b2lkIFBsYXRmb3JtV2Vi
Vmlldzo6c2ltdWxhdGVSaWdodENsaWNrKHVuc2lnbmVkIHgsIHVuc2lnbmVkIHkpCiAgICAgCiB2
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVNb3VzZU1vdmUodW5zaWduZWQgeCwgdW5zaWdu
ZWQgeSkKIHsgICAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU01vdXNlTW92ZWQKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCh4LCB5KQogICAgICAgICAgICAgICAgICAgICAg
ICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVz
dGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTE5NywzMSArMTk4LDMxIEBAIHN0YXRpYyBO
U0V2ZW50VHlwZSBldmVudFR5cGVGb3JCdXR0b24oV0tFdmVudE1vdXNlQnV0dG9uIGJ1dHRvbikK
IHsKICAgICBzd2l0Y2ggKGJ1dHRvbikgewogICAgIGNhc2Uga1dLRXZlbnRNb3VzZUJ1dHRvbkxl
ZnRCdXR0b246Ci0gICAgICAgIHJldHVybiBOU0xlZnRNb3VzZURvd247CisgICAgICAgIHJldHVy
biBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAgICAgY2FzZSBrV0tFdmVudE1vdXNlQnV0dG9u
UmlnaHRCdXR0b246Ci0gICAgICAgIHJldHVybiBOU1JpZ2h0TW91c2VEb3duOworICAgICAgICBy
ZXR1cm4gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKICAgICBjYXNlIGtXS0V2ZW50TW91c2VC
dXR0b25NaWRkbGVCdXR0b246Ci0gICAgICAgIHJldHVybiBOU090aGVyTW91c2VEb3duOworICAg
ICAgICByZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjsKICAgICBjYXNlIGtXS0V2ZW50
TW91c2VCdXR0b25Ob0J1dHRvbjoKLSAgICAgICAgcmV0dXJuIE5TTGVmdE1vdXNlRG93bjsKKyAg
ICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKICAgICB9CiAKLSAgICByZXR1
cm4gTlNMZWZ0TW91c2VEb3duOworICAgIHJldHVybiBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247
CiB9CiAKIHN0YXRpYyBOU0V2ZW50TW9kaWZpZXJGbGFncyBtb2RpZmllckZsYWdzRm9yV0tNb2Rp
ZmllcnMoV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMpCiB7CiAgICAgTlNFdmVudE1vZGlmaWVy
RmxhZ3MgcmV0dXJuVmFsID0gMDsKICAgICBpZiAobW9kaWZpZXJzICYga1dLRXZlbnRNb2RpZmll
cnNTaGlmdEtleSkKLSAgICAgICAgcmV0dXJuVmFsIHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAg
ICByZXR1cm5WYWwgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogICAgIGlmIChtb2RpZmll
cnMgJiBrV0tFdmVudE1vZGlmaWVyc0NvbnRyb2xLZXkpCi0gICAgICAgIHJldHVyblZhbCB8PSBO
U0NvbnRyb2xLZXlNYXNrOworICAgICAgICByZXR1cm5WYWwgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z0NvbnRyb2w7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzQWx0S2V5KQot
ICAgICAgICByZXR1cm5WYWwgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICByZXR1cm5W
YWwgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICBpZiAobW9kaWZpZXJzICYga1dL
RXZlbnRNb2RpZmllcnNNZXRhS2V5KQotICAgICAgICByZXR1cm5WYWwgfD0gTlNDb21tYW5kS2V5
TWFzazsKKyAgICAgICAgcmV0dXJuVmFsIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwog
ICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc0NhcHNMb2NrS2V5KQotICAgICAg
ICByZXR1cm5WYWwgfD0gTlNBbHBoYVNoaWZ0S2V5TWFzazsKKyAgICAgICAgcmV0dXJuVmFsIHw9
IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKIAogICAgIHJldHVybiByZXR1cm5WYWw7CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbQppbmRleCAxYTY2
NjViZjJiYjg2MGUxZThkMmRhZWQ5NmM5OWU5YzY5YTZjNjJiLi44OTNiMWJjMmZiNzJjMmJmYjI5
ZTc5ZjI1MDQ4MDJmMTE2NWFhZGY4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21h
Yy9UZXN0V0tXZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RX
S1dlYlZpZXdNYWMubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJLaXRQ
cml2YXRlLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgogCiBAaW1wbGVtZW50YXRpb24gVGVzdE1lc3NhZ2VIYW5kbGVyIHsKICAgICBOU011dGFibGVE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGRpc3BhdGNoX2Jsb2NrX3Q+ICpfbWVzc2FnZUhhbmRsZXJz
OwpAQCAtNzAsMjEgKzcxLDEzIEBAIHN0YXRpYyBpbnQgZ0V2ZW50TnVtYmVyID0gMTsKICNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMwogTlNFdmVudE1hc2sgX19z
aW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrKGlkIHNlbGYsIFNFTCBfY21k
KQogewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCiAgICAg
cmV0dXJuIE5TRXZlbnRNYXNrUHJlc3N1cmUgfCBOU0V2ZW50TWFza0xlZnRNb3VzZURvd24gfCBO
U0V2ZW50TWFza0xlZnRNb3VzZVVwIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEcmFnZ2VkOwotI2Vs
c2UKLSAgICByZXR1cm4gTlNFdmVudE1hc2tQcmVzc3VyZSB8ICgxIDw8IE5TTGVmdE1vdXNlRG93
bikgfCAoMSA8PCBOU0xlZnRNb3VzZVVwKSB8ICgxIDw8IE5TTGVmdE1vdXNlRHJhZ2dlZCk7Ci0j
ZW5kaWYKIH0KICNlbmRpZgogCiAtICh2b2lkKV9tb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBv
aW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxhdGVQcmVzc3VyZQogewotI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCiAgICAgTlNFdmVudFR5cGUgbW91
c2VFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247Ci0jZWxzZQotICAgIE5TRXZl
bnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEb3duOwotI2VuZGlmCiAKICAgICBO
U0V2ZW50TWFzayBtb2RpZmllckZsYWdzID0gMDsKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTAwMwpAQCAtMTU3LDcgKzE1MCw3IEBAIC0gKGluc3RhbmNldHlwZSlp
bml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmln
dXJhdGlvCiAKIC0gKHZvaWQpX3NldFVwVGVzdFdpbmRvdzooTlNSZWN0KWZyYW1lCiB7Ci0gICAg
X2hvc3RXaW5kb3cgPSBbW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IGFsbG9jXSBpbml0V2l0aENv
bnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6
TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CisgICAgX2hvc3RXaW5kb3cgPSBbW1Rl
c3RXS1dlYlZpZXdIb3N0V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0
eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbX2hvc3RXaW5kb3cgc2V0RnJhbWVPcmlnaW46TlNN
YWtlUG9pbnQoMCwgMCldOwogICAgIFtbX2hvc3RXaW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZp
ZXc6c2VsZl07CiAgICAgW19ob3N0V2luZG93IHNldElzVmlzaWJsZTpZRVNdOwpAQCAtMTkzLDEz
ICsxODYsOCBAQCAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJp
bmcgKilwYWdlTmFtZQogCiAtICh2b2lkKXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyIHsK
ICAgICBOU1N0cmluZyAqY2hhcmFjdGVyQXNTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIiVjIiAsIGNoYXJhY3Rlcl07Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEyMDAKICAgICBOU0V2ZW50VHlwZSBrZXlEb3duRXZlbnRUeXBlID0gTlNFdmVu
dFR5cGVLZXlEb3duOwogICAgIE5TRXZlbnRUeXBlIGtleVVwRXZlbnRUeXBlID0gTlNFdmVudFR5
cGVLZXlVcDsKLSNlbHNlCi0gICAgTlNFdmVudFR5cGUga2V5RG93bkV2ZW50VHlwZSA9IE5TS2V5
RG93bjsKLSAgICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlwZSA9IE5TS2V5VXA7Ci0jZW5kaWYK
ICAgICBbc2VsZiBrZXlEb3duOltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6a2V5RG93bkV2ZW50
VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1
cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6X2hvc3RXaW5kb3cud2luZG93TnVtYmVyIGNv
bnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5n
TW9kaWZpZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJhY3Rl
cl1dOwogICAgIFtzZWxmIGtleVVwOltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6a2V5VXBFdmVu
dFR5cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRD
dXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOl9ob3N0V2luZG93LndpbmRvd051bWJlciBj
b250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmlu
Z01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0
ZXJdXTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2Vu
ZGVyUHJveHkubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5
Lm1tCmluZGV4IGNhZmMzZWRkYTliZjg1ZWUxMDY1YWZkZTA4OWYxNjQ5MzU2NDFlNmIuLmQ1YmNk
ZDc5ZGI1Y2M1MDU2ODQ3M2FlZTk3ZGFlMjMzOGQ0NDAzMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQpAQCAtMzYsNiArMzYsNyBAQAogI2lt
cG9ydCA8V2ViS2l0L1dLUGFnZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29t
cGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKERl
dGFpbHMpCiAtICh2b2lkKV9zZXRDdXJyZW50RXZlbnQ6KE5TRXZlbnQgKilldmVudDsKQEAgLTIw
NywzMyArMjA4LDMzIEBAIHN0cnVjdCBLZXlNYXBwaW5nRW50cnkgewogc3RhdGljIE5TRXZlbnRU
eXBlIGV2ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0aW9uKGludCBidXR0b24sIE1vdXNlQWN0
aW9uIGFjdGlvbikKIHsKICAgICBzd2l0Y2ggKGJ1dHRvbikgewotICAgICAgICBjYXNlIExlZnRN
b3VzZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAg
ICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU0xlZnRNb3Vz
ZURvd247Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZVVwOgotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gTlNMZWZ0TW91c2VVcDsKLSAgICAgICAgICAgICAgICBjYXNlIE1vdXNlRHJhZ2dl
ZDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TTGVmdE1vdXNlRHJhZ2dlZDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgY2FzZSBSaWdodE1vdXNlQnV0dG9uOgotICAgICAgICAgICAgc3dp
dGNoIChhY3Rpb24pIHsKLSAgICAgICAgICAgICAgICBjYXNlIE1vdXNlRG93bjoKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIE5TUmlnaHRNb3VzZURvd247Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBNb3VzZVVwOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNSaWdodE1vdXNlVXA7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBOU1JpZ2h0TW91c2VEcmFnZ2VkOwotICAgICAgICAgICAgfQotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKLSAgICAgICAgICAgICAgICBjYXNlIE1v
dXNlRG93bjoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3RoZXJNb3VzZURvd247Ci0g
ICAgICAgICAgICAgICAgY2FzZSBNb3VzZVVwOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
TlNPdGhlck1vdXNlVXA7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBOU090aGVyTW91c2VEcmFnZ2VkOwotICAgICAgICAgICAg
fQorICAgIGNhc2UgTGVmdE1vdXNlQnV0dG9uOgorICAgICAgICBzd2l0Y2ggKGFjdGlvbikgewor
ICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZUxl
ZnRNb3VzZURvd247CisgICAgICAgIGNhc2UgTW91c2VVcDoKKyAgICAgICAgICAgIHJldHVybiBO
U0V2ZW50VHlwZUxlZnRNb3VzZVVwOworICAgICAgICBjYXNlIE1vdXNlRHJhZ2dlZDoKKyAgICAg
ICAgICAgIHJldHVybiBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KKyAg
ICBjYXNlIFJpZ2h0TW91c2VCdXR0b246CisgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CisgICAg
ICAgIGNhc2UgTW91c2VEb3duOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZURvd247CisgICAgICAgIGNhc2UgTW91c2VVcDoKKyAgICAgICAgICAgIHJldHVybiBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VVcDsKKyAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAg
ICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDsKKyAgICAgICAgfQorICAg
IGRlZmF1bHQ6CisgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7CisgICAgICAgIGNhc2UgTW91c2VE
b3duOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd247CisgICAg
ICAgIGNhc2UgTW91c2VVcDoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZU90aGVyTW91
c2VVcDsKKyAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAgICAgICByZXR1cm4gTlNF
dmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDsKKyAgICAgICAgfQogICAgIH0KICAgICBhc3NlcnQo
MCk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5TRXZlbnRUeXBlPigwKTsKQEAgLTI0MywxNSAr
MjQ0LDE1IEBAIHN0YXRpYyBpbnQgYnVpbGRNb2RpZmllckZsYWdzKFdLRXZlbnRNb2RpZmllcnMg
bW9kaWZpZXJzKQogewogICAgIGludCBmbGFncyA9IDA7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtX
S0V2ZW50TW9kaWZpZXJzQ29udHJvbEtleSkKLSAgICAgICAgZmxhZ3MgfD0gTlNDb250cm9sS2V5
TWFzazsKKyAgICAgICAgZmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7CiAgICAg
aWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzU2hpZnRLZXkpCi0gICAgICAgIGZsYWdz
IHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICBmbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFn
U2hpZnQ7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzQWx0S2V5KQotICAg
ICAgICBmbGFncyB8PSBOU0FsdGVybmF0ZUtleU1hc2s7CisgICAgICAgIGZsYWdzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdPcHRpb247CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZp
ZXJzTWV0YUtleSkKLSAgICAgICAgZmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKKyAgICAgICAg
ZmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgaWYgKG1vZGlmaWVycyAm
IGtXS0V2ZW50TW9kaWZpZXJzQ2Fwc0xvY2tLZXkpCi0gICAgICAgIGZsYWdzIHw9IE5TQWxwaGFT
aGlmdEtleU1hc2s7CisgICAgICAgIGZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9j
azsKICAgICByZXR1cm4gZmxhZ3M7CiB9CiAKQEAgLTM1MSw3ICszNTIsNyBAQCB2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OnNlbmRNb3VzZURvd25Ub1N0YXJ0UHJlc3N1cmVFdmVudHMoKQogewogICAg
IHVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b24oMCk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24KKyAgICBOU0V2ZW50ICpl
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURv
d24KICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9u
LnkpCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6TlNFdmVudE1hc2tQcmVzc3VyZQogICAgICAgICB0
aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKQEAg
LTQxNSw3ICs0MTYsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VDbGljaygp
CiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+IHByZUZvcmNlQ2xpY2sgPSBwcmVzc3VyZUNoYW5nZUV2
ZW50KDEsIFByZXNzdXJlQ2hhbmdlRGlyZWN0aW9uOjpJbmNyZWFzaW5nKTsKICAgICBSZXRhaW5Q
dHI8TlNFdmVudD4gZm9yY2VDbGljayA9IHByZXNzdXJlQ2hhbmdlRXZlbnQoMiwgUHJlc3N1cmVD
aGFuZ2VEaXJlY3Rpb246OkluY3JlYXNpbmcpOwogICAgIFJldGFpblB0cjxOU0V2ZW50PiByZWxl
YXNpbmdQcmVzc3VyZSA9IHByZXNzdXJlQ2hhbmdlRXZlbnQoMSwgUHJlc3N1cmVDaGFuZ2VEaXJl
Y3Rpb246OkRlY3JlYXNpbmcpOwotICAgIE5TRXZlbnQgKm1vdXNlVXAgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAorICAgIE5TRXZlbnQgKm1vdXNlVXAgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICBs
b2NhdGlvbjpOU01ha2VQb2ludChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSkKICAgICAgICAg
bW9kaWZpZXJGbGFnczowCiAgICAgICAgIHRpbWVzdGFtcDphYnNvbHV0ZVRpbWVGb3JFdmVudFRp
bWUoY3VycmVudEV2ZW50VGltZSgpKQpAQCAtNDUyLDcgKzQ1Myw3IEBAIHZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZvcmNlQ2xpY2soKQogICAgIFJldGFpblB0cjxO
U0V2ZW50PiBiZWdpblByZXNzdXJlID0gYmVnaW5QcmVzc3VyZUV2ZW50KDEpOwogICAgIFJldGFp
blB0cjxOU0V2ZW50PiBpbmNyZWFzaW5nUHJlc3N1cmUgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDEs
IFByZXNzdXJlQ2hhbmdlRGlyZWN0aW9uOjpJbmNyZWFzaW5nKTsKICAgICBSZXRhaW5QdHI8TlNF
dmVudD4gcmVsZWFzaW5nUHJlc3N1cmUgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDEsIFByZXNzdXJl
Q2hhbmdlRGlyZWN0aW9uOjpEZWNyZWFzaW5nKTsKLSAgICBOU0V2ZW50ICptb3VzZVVwID0gW05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICptb3Vz
ZVVwID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAK
ICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkp
CiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1l
Rm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKQEAgLTYwMiw3ICs2MDMsNyBAQCB2b2lk
IEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsZSB4LCBkb3VibGUgeSkKICAgICBO
U1BvaW50IHBvc2l0aW9uID0gW3ZpZXcgY29udmVydFBvaW50Ok5TTWFrZVBvaW50KHgsIHkpIHRv
VmlldzpuaWxdOwogICAgIG1fcG9zaXRpb24ueCA9IHBvc2l0aW9uLng7CiAgICAgbV9wb3NpdGlv
bi55ID0gcG9zaXRpb24ueTsKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZl
bnRXaXRoVHlwZToobV9sZWZ0TW91c2VCdXR0b25Eb3duID8gTlNMZWZ0TW91c2VEcmFnZ2VkIDog
TlNNb3VzZU1vdmVkKQorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOihtX2xlZnRNb3VzZUJ1dHRvbkRvd24gPyBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdn
ZWQgOiBOU0V2ZW50VHlwZU1vdXNlTW92ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9jYXRpb246cG9zaXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOmFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRU
aW1lKCkpCkBAIC03OTgsMTYgKzc5OSwxNiBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmtleURv
d24oV0tTdHJpbmdSZWYga2V5LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgdW5zaQogICAg
IGludCBtb2RpZmllckZsYWdzID0gMDsKIAogICAgIGlmIChbY2hhcmFjdGVyIGxlbmd0aF0gPT0g
MSAmJiBbY2hhcmFjdGVyIGNoYXJhY3RlckF0SW5kZXg6MF0gPj0gJ0EnICYmIFtjaGFyYWN0ZXIg
Y2hhcmFjdGVyQXRJbmRleDowXSA8PSAnWicpIHsKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBO
U1NoaWZ0S2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnU2hpZnQ7CiAgICAgICAgIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVycyA9IFtjaGFyYWN0
ZXIgbG93ZXJjYXNlU3RyaW5nXTsKICAgICB9CiAKICAgICBtb2RpZmllckZsYWdzIHw9IGJ1aWxk
TW9kaWZpZXJGbGFncyhtb2RpZmllcnMpOwogCiAgICAgaWYgKGtleUxvY2F0aW9uID09IDB4MDMg
LypET01fS0VZX0xPQ0FUSU9OX05VTVBBRCovKQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
TnVtZXJpY1BhZEtleU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ051bWVyaWNQYWQ7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNLZXlEb3duCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93bgogICAgICAgICAgICAgICAgICAgICAgICAg
bG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlm
aWVyRmxhZ3M6bW9kaWZpZXJGbGFncwogICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1w
OmFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC04MjIsNyAr
ODIzLDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUmVmIGtleSwg
V0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIHVuc2kKICAgICBbW21fdGVzdENvbnRyb2xsZXIt
Pm1haW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93KCkgZmlyc3RSZXNwb25kZXJdIGtleURvd246
ZXZlbnRdOwogICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2ZW50Om5pbF07CiAKLSAgICBldmVudCA9
IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAorICAgIGV2ZW50ID0gW05TRXZlbnQg
a2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KQogICAgICAgICAgICAgICAgICAgICAgICAgbW9k
aWZpZXJGbGFnczptb2RpZmllckZsYWdzCiAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3Rh
bXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKQEAgLTkxOCw3
ICs5MTksNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50CiAgICAgUmV0YWluUHRyPEV2ZW50U2Vu
ZGVyU3ludGhldGljRXZlbnQ+IGV2ZW50ID0gYWRvcHROUyhbW0V2ZW50U2VuZGVyU3ludGhldGlj
RXZlbnQgYWxsb2NdIGluaXRdKTsKIAogICAgIC8vICJtYXlCZWdpbiIgYSBzd2lwZSBpcyBhY3R1
YWxseSBhIHNjcm9sbCB3aGVlbCBldmVudC4KLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX3R5cGUg
PSAocGhhc2UgPT0gMTI4KSA/IE5TU2Nyb2xsV2hlZWwgOiBOU0V2ZW50VHlwZUdlc3R1cmU7Cisg
ICAgZXZlbnQtPl9ldmVudFNlbmRlcl90eXBlID0gKHBoYXNlID09IDEyOCkgPyBOU0V2ZW50VHlw
ZVNjcm9sbFdoZWVsIDogTlNFdmVudFR5cGVHZXN0dXJlOwogICAgIGV2ZW50LT5fZXZlbnRTZW5k
ZXJfc3VidHlwZSA9IDY7IC8vIGtJT0hJREV2ZW50VHlwZVNjcm9sbAogICAgIGV2ZW50LT5fZXZl
bnRTZW5kZXJfbG9jYXRpb25JbldpbmRvdyA9IE5TTWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9w
b3NpdGlvbi55KTsKICAgICBldmVudC0+X2V2ZW50U2VuZGVyX2xvY2F0aW9uID0gKFttX3Rlc3RD
b250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVdpbmRvdygpIGNvbnZlcnRSZWN0VG9T
Y3JlZW46TlNNYWtlUmVjdChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSwgMSwgMSldLm9yaWdp
bik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZp
ZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMu
bW0KaW5kZXggZmI3Y2Q4NWZmNzE3YzMzM2M3MTBiM2EwNTkwNDUyZjlmMDRhMmNiZS4uODMzODUw
MmQ0OGJjODBhMzIwNzc4YTFjYjEwYWRlYmVjYWJkNmY3OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMzQsNiArMzQsNyBAQAog
I2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFdLX0FQ
SV9FTkFCTEVECiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoRGV0YWlscykKQEAgLTE0NSw3ICsxNDYs
NyBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1dlYlZpZXdDb25maWd1cmF0
aW9uKiBjb25maWd1cmF0aW9uLCBjb25zdCBUZQogCiAgICAgTlNTY3JlZW4gKmZpcnN0U2NyZWVu
ID0gW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4OjBdOwogICAgIE5TUmVjdCB3aW5k
b3dSZWN0ID0gbV9vcHRpb25zLnNob3VsZFNob3dXZWJWaWV3ID8gTlNPZmZzZXRSZWN0KHJlY3Qs
IDEwMCwgMTAwKSA6IE5TT2Zmc2V0UmVjdChyZWN0LCAtMTAwMDAsIFtmaXJzdFNjcmVlbiBmcmFt
ZV0uc2l6ZS5oZWlnaHQgLSByZWN0LnNpemUuaGVpZ2h0ICsgMTAwMDApOwotICAgIG1fd2luZG93
ID0gW1tXZWJLaXRUZXN0UnVubmVyV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ondp
bmRvd1JlY3Qgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzooTlNCYWNr
aW5nU3RvcmVUeXBlKV9OU0JhY2tpbmdTdG9yZVVuYnVmZmVyZWQgZGVmZXI6WUVTXTsKKyAgICBt
X3dpbmRvdyA9IFtbV2ViS2l0VGVzdFJ1bm5lcldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDp3aW5kb3dSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFj
a2luZzooTlNCYWNraW5nU3RvcmVUeXBlKV9OU0JhY2tpbmdTdG9yZVVuYnVmZmVyZWQgZGVmZXI6
WUVTXTsKICAgICBtX3dpbmRvdy5wbGF0Zm9ybVdlYlZpZXcgPSB0aGlzOwogICAgIFttX3dpbmRv
dyBzZXRDb2xvclNwYWNlOltmaXJzdFNjcmVlbiBjb2xvclNwYWNlXV07CiAgICAgW21fd2luZG93
IHNldENvbGxlY3Rpb25CZWhhdmlvcjpOU1dpbmRvd0NvbGxlY3Rpb25CZWhhdmlvclN0YXRpb25h
cnldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xs
ZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5t
bQppbmRleCBjZjg3ZTY5ZWNhODg3OGY4NDVkYjAyMGEyNTM5ZWMwOGQ1OGU1NDhlLi41ZDFkZDFl
ODI3ODczNDE4NGExMzIzMmZiYWEzYTg4MmY0OTZmYTYwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNDUsNiArNDUsNyBAQAogI2lt
cG9ydCA8V2ViS2l0L19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmg+CiAjaW1w
b3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+Cisj
aW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGlu
dGVyZmFjZSBOU1NvdW5kICgpCiArICh2b2lkKV9zZXRBbGVydFR5cGU6KE5TVUludGVnZXIpYWxl
cnRUeXBlOwpAQCAtMTAzLDcgKzEwNCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
UmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygpCiB7CiAgICAgY29jb2FSZXNldFN0YXRlVG9D
b25zaXN0ZW50VmFsdWVzKCk7CiAKLSAgICB3aGlsZSAoW05TQXBwIG5leHRFdmVudE1hdGNoaW5n
TWFzazpOU0V2ZW50TWFza0dlc3R1cmUgfCBOU1Njcm9sbFdoZWVsTWFzayB1bnRpbERhdGU6bmls
IGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU10pIHsKKyAgICB3aGlsZSAo
W05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0V2ZW50TWFza0dlc3R1cmUgfCBOU0V2ZW50
VHlwZVNjcm9sbFdoZWVsIHVudGlsRGF0ZTpuaWwgaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2Rl
IGRlcXVldWU6WUVTXSkgewogICAgICAgICAvLyBDbGVhciBvdXQgKGFuZCBpZ25vcmUpIGFueSBw
ZW5kaW5nIGdlc3R1cmUgYW5kIHNjcm9sbCB3aGVlbCBldmVudHMuCiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294164</attachid>
            <date>2016-11-08 09:21:28 -0800</date>
            <delta_ts>2016-11-08 09:56:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161108091719.patch</filename>
            <type>text/plain</type>
            <size>231297</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLjA3NTY1OTA0MGU4Nzg3YjA0ZjkxZjBlNTdkM2VmYWE2OGZmY2U2
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMu
CisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaDoK
KwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAK
ICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmE3ZTk1Y2M4OTcx
ZGYwODFjZmNkZGZhZmRmMTQ5YjQ0MTk0MmY1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBA
QAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTdG9wIHVzaW5nIGRl
cHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVkaXRpbmcv
Y29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNvbXB1dGVk
QXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NF
bGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0KToKKyAg
ICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVudElzTW91
c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50
VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdldERpZEhh
bmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kRmFr
ZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1RleHRJbmRp
Y2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93Ojpz
ZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9tQ3Vyc29y
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2ZW50TG9v
cE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6bW91
c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlwZUZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NLZXlDb2Rl
Rm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5Ym9hcmRF
dmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXpl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgtW1dlYkNv
cmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6ZUZvckZv
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpzdGVwcGVy
Q29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbToK
KyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29udGVudFJl
Y3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNj
cmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1bV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgtW1dlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2FkXSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAgICAgKFdl
YldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFuIEhhZGRh
ZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQwNzc5Y2E1
NjAyNzcxNTkwM2Q1OGU3MS4uMzIxM2Q0ZWI3NDc3OGNkYzVjYjliZjk2NjcwZDE1YTE5YzhhNDg3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2luZyBkZXBy
ZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVy
YXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW06
CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6
dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAgICAgICgtW0Nh
cmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICogUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21tYW5kTW9kaWZp
ZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmll
dy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRyYXdSZWN0Ol0p
OgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5t
bToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OnN5bnRoZXRp
Y0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Q
b3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKToKKyAgICAg
ICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVudDo6c2hvd0Nv
bnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0aW9uYXJ5KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06CisgICAgICAg
IChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAgICAgKC1bV2Vi
SW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBXZWJJbnNwZWN0
b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hsaWdodCBpbml0
V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURvd246a2V5RG93
bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tOgorICAg
ICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAgIChjcmVhdGVC
YWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmll
dy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9y
RmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9zZXRNb3VzZURv
d25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91
cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNrTG9va0V2ZW50
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcg
X3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50SXNQYXJ0T2ZD
bGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRo
RXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG1v
dXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6XSk6CisgICAg
ICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21tYW5kczpdKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dlYlBERlZpZXcg
aGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5r
OndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVudFdpdGhGdW5j
dGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9idWlsZFVJXSk6
CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQb3B1cFdpbmRv
dzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcg
YXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1pdCBjb21wb3Np
dGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5hZjI4MzIwNTQ1
MDMyYjRmYzZlMTFlNzM3YjJhOWZjNjBhY2RiYTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NDk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgU3RvcCB1c2luZyBk
ZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAgICAgKiBTaGFyZWQv
bWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpz
dG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5t
bToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJL
aXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpjbGlja0NvdW50
Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OnRleHRGcm9tRXZl
bnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojppc0tleVVwRXZlbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZl
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpYyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFu
Z2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNjcmVl
bldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNl
RXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VF
bnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0ZvckRyYWcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFuZHNGb3JFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1vZGFsKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVudVdpdGhJdGVtcyk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0Ojpt
b2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6Z2V0RXZlbnRUeXBl
RnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
blRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGlnbm1lbnRWYWx1ZUZv
ck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29udmVydEltYWdlVG9C
aXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90ZXN0cy9taXNjL2F1
dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10by1yZWRpcmVjdC1z
YW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFpbHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oCmlu
ZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYuLjk0ZDNkZWU5MjRk
OTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIvU291cmNlL1dURi93
dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAtNTcsNiArNTcsMTAg
QEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21wb3NpdGluZ09wZXJh
dGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5TQ29udHJvbFNpemUg
TlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKIHN0YXRpYyBjb25z
dCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxDb250cm9sU2l6ZTsK
K3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5pID0gTlNNaW5pQ29u
dHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlkZXJUeXBlTGluZWFy
ID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBlIE5TU2xpZGVyVHlw
ZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0IE5TRXZlbnRNYXNr
IE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29uc3QgTlNFdmVudE1h
c2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1hc2s7CkBAIC04Mywx
MiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdzIE5TRXZlbnRNb2Rp
ZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBjb25zdCBOU0V2ZW50
TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1NoaWZ0S2V5TWFzazsK
IHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnSGVs
cCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwogc3RhdGljIGNvbnN0
IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFnc0NoYW5nZWQ7CiBz
dGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0gTlNLZXlEb3duOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBOU0tleVVwOwogc3Rh
dGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biA9IE5TTGVmdE1v
dXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURy
YWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNF
dmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMgY29uc3QgTlNFdmVu
dFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJlZDsKK3N0YXRpYyBj
b25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNNb3VzZUV4aXRlZDsK
IHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQgPSBOU01vdXNl
TW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93
biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5
cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBAIC0xMDUsNiArMTEy
LDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50UmlnaHQg
PSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNU
ZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owogc3RhdGljIGNvbnN0
IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0VGV4dEFsaWdubWVu
dDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50TmF0dXJhbCA9
IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0QWxpZ25tZW50IE5T
VGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdubWVudDsKKwordHlw
ZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsKK3N0YXRpYyBjb25z
dCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92
ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVkZGluZyA9IE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRlZiBOU1VJbnRlZ2Vy
IE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVBy
ZWZpeC5oIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCmluZGV4IGQ1NDkzZGU3M2Ix
OWZkY2JhMzM5YWNhZTU1YjBiNzczZDFkYmIwZGQuLjkxNTc1NjZhZDIzOTlmYzFjNWUyMzM2Yjg3
ZDg3MWJjMjdmYjJhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKQEAgLTE2Myw3ICsxNjMsMTAg
QEAKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
ICNlbHNlCisjaWYgVVNFKEFQUEtJVCkKICNpbXBvcnQgPENvY29hL0NvY29hLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNlbmRpZgogI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggOTRmYzdlZDk5NWNjNDBkODZmNGMwMjgyMzJm
NDEzNDIwYmMwODhkZS4uOTZjYzBmNTQ3ZWE2YmU4ZDEzYzMzNmQ5NjQ1ZWRkNDBjMDljMDY0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAt
MTEzLDEwICsxMTMsNiBAQCBTT0ZUX0xJTktfQ0xBU1MoVUlGb3VuZGF0aW9uLCBOU1RleHRUYWIp
CiAjZGVmaW5lIFBsYXRmb3JtRm9udCAgICAgICAgICAgICAgICBOU0ZvbnQKICNkZWZpbmUgUGxh
dGZvcm1Gb250Q2xhc3MgICAgICAgICAgIE5TRm9udAogCi0jZGVmaW5lIE5TVGV4dEFsaWdubWVu
dExlZnQgICAgICAgICBOU0xlZnRUZXh0QWxpZ25tZW50Ci0jZGVmaW5lIE5TVGV4dEFsaWdubWVu
dFJpZ2h0ICAgICAgICBOU1JpZ2h0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1l
bnRDZW50ZXIgICAgICAgTlNDZW50ZXJUZXh0QWxpZ25tZW50Ci0jZGVmaW5lIE5TVGV4dEFsaWdu
bWVudEp1c3RpZmllZCAgICBOU0p1c3RpZmllZFRleHRBbGlnbm1lbnQKICNlbmRpZgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE4NCwxMCArMTgwLDEwIEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIE5TV3JpdGluZ0RpcmVjdGlvbikgewogICAgIE5TV3JpdGluZ0RpcmVjdGlv
blJpZ2h0VG9MZWZ0ICAgPSAgMSAgICAgLy8gUmlnaHQgdG8gbGVmdCB3cml0aW5nIGRpcmVjdGlv
bgogfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoNl8wKTsKIAotdHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgTlNUZXh0V3JpdGluZ0RpcmVjdGlvbikgewotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rp
b25FbWJlZGRpbmcgICAgID0gKDAgPDwgMSksCi0gICAgTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92
ZXJyaWRlICAgICAgPSAoMSA8PCAxKQotfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoN18wKTsKK3R5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TV3JpdGluZ0RpcmVjdGlvbkZvcm1hdFR5cGUpIHsK
KyAgICBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmcgICAgID0gKDAgPDwgMSksCisgICAgTlNX
cml0aW5nRGlyZWN0aW9uT3ZlcnJpZGUgICAgICA9ICgxIDw8IDEpCit9IE5TX0VOVU1fQVZBSUxB
QkxFX0lPUyg5XzApOwogCiBlbnVtIHsKICAgICBOU0VudGVyQ2hhcmFjdGVyICAgICAgICAgICAg
ICAgID0gMHgwMDAzLApAQCAtMTIxMCw4ICsxMjA2LDYgQEAgTlNEaWN0aW9uYXJ5ICpIVE1MQ29u
dmVydGVyOjpjb21wdXRlZEF0dHJpYnV0ZXNGb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAg
ICAgICAgIFN0cmluZyB0ZXh0QWxpZ24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShj
b3JlQmxvY2tFbGVtZW50LCBDU1NQcm9wZXJ0eVRleHRBbGlnbik7CiAgICAgICAgIGlmICh0ZXh0
QWxpZ24ubGVuZ3RoKCkpIHsKICAgICAgICAgICAgIC8vIFdlYktpdCBjYW4gcmV0dXJuIC1raHRt
bC1sZWZ0LCAta2h0bWwtcmlnaHQsIC1raHRtbC1jZW50ZXIKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICAgICAgICAgICAgIGlmICh0ZXh0QWxpZ24uZW5kc1dpdGgoImxlZnQi
KSkKICAgICAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudExlZnRdOwogICAgICAgICAgICAgZWxzZSBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJy
aWdodCIpKQpAQCAtMTIyMCw3ICsxMjE0LDYgQEAgTlNEaWN0aW9uYXJ5ICpIVE1MQ29udmVydGVy
Ojpjb21wdXRlZEF0dHJpYnV0ZXNGb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRDZW50
ZXJdOwogICAgICAgICAgICAgZWxzZSBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJqdXN0aWZ5Iikp
CiAgICAgICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGln
bm1lbnRKdXN0aWZpZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9
CiAKICAgICAgICAgU3RyaW5nIGRpcmVjdGlvbiA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JO
b2RlKGNvcmVCbG9ja0VsZW1lbnQsIENTU1Byb3BlcnR5RGlyZWN0aW9uKTsKQEAgLTE4NTEsMTgg
KzE4NDQsMTIgQEAgQk9PTCBIVE1MQ29udmVydGVyOjpfcHJvY2Vzc0VsZW1lbnQoRWxlbWVudCYg
ZWxlbWVudCwgTlNJbnRlZ2VyIGRlcHRoKQogICAgIGVsc2UgewogICAgICAgICBTdHJpbmcgYmlk
aSA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQsIENTU1Byb3BlcnR5VW5p
Y29kZUJpZGkpOwogICAgICAgICBpZiAoYmlkaSA9PSAiZW1iZWQiKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVkZGlu
ZzsKICAgICAgICAgICAgIGlmIChfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50
LCBDU1NQcm9wZXJ0eURpcmVjdGlvbikgPT0gInJ0bCIpCiAgICAgICAgICAgICAgICAgdmFsIHw9
IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICAgICAgW193cml0aW5nRGly
ZWN0aW9uQXJyYXkgYWRkT2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnRlZ2Vy
OnZhbF1dOwogICAgICAgICB9IGVsc2UgaWYgKGJpZGkgPT0gImJpZGktb3ZlcnJpZGUiKSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBOU1VJbnRlZ2Vy
IHZhbCA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgICAgIE5TVUludGVnZXIgdmFsID0gTlNXcml0aW5nRGlyZWN0
aW9uT3ZlcnJpZGU7CiAgICAgICAgICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5v
ZGUoZWxlbWVudCwgQ1NTUHJvcGVydHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAg
ICAgIHZhbCB8PSBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtf
d3JpdGluZ0RpcmVjdGlvbkFycmF5IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2ln
bmVkSW50ZWdlcjp2YWxdXTsKQEAgLTIwNjMsMTQgKzIwNTAsNyBAQCB2b2lkIEhUTUxDb252ZXJ0
ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0KE5TVGV4dExpc3QgKmxpc3QsIE5TUmFuZ2UgcmFuZ2UpCiAg
ICAgICAgICAgICAgICAgICAgIHRhYiA9IFtbUGxhdGZvcm1OU1RleHRUYWIgYWxsb2NdIGluaXRX
aXRoVHlwZTpOU0xlZnRUYWJTdG9wVHlwZSBsb2NhdGlvbjptYXJrZXJMb2NhdGlvbl07CiAgICAg
ICAgICAgICAgICAgICAgIFtuZXdTdHlsZSBhZGRUYWJTdG9wOnRhYl07CiAgICAgICAgICAgICAg
ICAgICAgIFt0YWIgcmVsZWFzZV07Ci0jaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAgICAgICAg
ICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1l
bnQ6TlNUZXh0QWxpZ25tZW50TmF0dXJhbCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpA
eyB9XTsKLSNlbHNlCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAg
ICAgICAgICAgICAgIHRhYiA9IFtbUGxhdGZvcm1OU1RleHRUYWIgYWxsb2NdIGluaXRXaXRoVGV4
dEFsaWdubWVudDpOU05hdHVyYWxUZXh0QWxpZ25tZW50IGxvY2F0aW9uOmxpc3RMb2NhdGlvbiBv
cHRpb25zOkB7IH1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCiAgICAg
ICAgICAgICAgICAgICAgIFtuZXdTdHlsZSBhZGRUYWJTdG9wOnRhYl07CiAgICAgICAgICAgICAg
ICAgICAgIFt0YWIgcmVsZWFzZV07CiAgICAgICAgICAgICAgICAgICAgIFtfYXR0clN0ciBhZGRB
dHRyaWJ1dGU6TlNQYXJhZ3JhcGhTdHlsZUF0dHJpYnV0ZU5hbWUgdmFsdWU6bmV3U3R5bGUgcmFu
Z2U6cGFyYWdyYXBoUmFuZ2VdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVy
TWFjLm1tCmluZGV4IDMzNWU2MjYxNDhlOTMyOWY1ZGFjZjMzM2MzYzE4Y2M2ODYyNDU2MWQuLmIw
MzUyNzA4OTFkMGMyNjg5OTAzNjNjNGZkMGY2ZDE2YTI3MWUzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTE1MCwxMCArMTUwLDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmtleUV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIEFTU0VSVChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBO
U0tleVVwKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBU1NFUlQoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5
cGVLZXlVcCk7CiAKICAgICBDdXJyZW50RXZlbnRTY29wZSBzY29wZShldmVudCwgbmlsKTsKICAg
ICByZXR1cm4ga2V5RXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5
Ym9hcmRFdmVudChldmVudCkpOwpAQCAtMjA2LDEyICsyMDMsOSBAQCBzdGF0aWMgYm9vbCBsYXN0
RXZlbnRJc01vdXNlVXAoKQogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAg
IE5TRXZlbnQgKmN1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gPSBbTlNBcHAgY3Vy
cmVudEV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICByZXR1
cm4gRXZlbnRIYW5kbGVyOjpjdXJyZW50TlNFdmVudCgpICE9IGN1cnJlbnRFdmVudEFmdGVySGFu
ZGxpbmdNb3VzZURvd24KLSAgICAgICAgJiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3Vz
ZURvd24gdHlwZV0gPT0gTlNMZWZ0TW91c2VVcAorICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0
ZXJIYW5kbGluZ01vdXNlRG93biB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAg
ICAgICYmIFtjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHRpbWVzdGFtcF0gPj0g
W0V2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSB0aW1lc3RhbXBdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0zNzUsNTggKzM2OSw1NSBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFz
c1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2
ZQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0p
IHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAg
ICAgICAgLy8gVGhpcyBjaGVjayBpcyBib2d1cyBhbmQgcmVzdWx0cyBpbiA8cmRhcjovLzY4MTM4
MzA+LCBidXQgcmVtb3ZpbmcgaXQgYnJlYWtzIGEgbnVtYmVyIG9mCi0gICAgICAgICAgICAvLyBs
YXlvdXQgdGVzdHMuCi0gICAgICAgICAgICBpZiAoIW1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAg
IGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgLy8gVGhpcyBjaGVj
ayBpcyBib2d1cyBhbmQgcmVzdWx0cyBpbiA8cmRhcjovLzY4MTM4MzA+LCBidXQgcmVtb3Zpbmcg
aXQgYnJlYWtzIGEgbnVtYmVyIG9mCisgICAgICAgIC8vIGxheW91dCB0ZXN0cy4KKyAgICAgICAg
aWYgKCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAgICAgICAgIGlmIChzdWJmcmFtZS0+cGFn
ZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHN1YmZyYW1lLT5wYWdlKCktPmRyYWdDb250cm9s
bGVyKCkuZGlkSW5pdGlhdGVEcmFnKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5k
aWYKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgICAgICAvLyBTaW5jZSB3ZSdy
ZSBwYXNzaW5nIGluIGN1cnJlbnROU0V2ZW50KCkgaGVyZSwgd2UgY2FuIGNhbGwKLSAgICAgICAg
ICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGlyZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jl
c3RvcmUgb2YKLSAgICAgICAgICAgIC8vIGN1cnJlbnROU0V2ZW50KCkgdGhhdCBtb3VzZU1vdmVk
KCkgZG9lcyB3b3VsZCBoYXZlIG5vIGVmZmVjdC4KLSAgICAgICAgICAgIEFTU0VSVCghbV9zZW5k
aW5nRXZlbnRUb1N1YnZpZXcpOwotICAgICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcg
PSB0cnVlOwotICAgICAgICAgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNl
TW92ZUV2ZW50KGN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSwgaG92ZXJlZE5vZGUpOwotICAg
ICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgICAgICAvLyBT
aW5jZSB3ZSdyZSBwYXNzaW5nIGluIGN1cnJlbnROU0V2ZW50KCkgaGVyZSwgd2UgY2FuIGNhbGwK
KyAgICAgICAgLy8gaGFuZGxlTW91c2VNb3ZlRXZlbnQoKSBkaXJlY3RseSwgc2luY2UgdGhlIHNh
dmUvcmVzdG9yZSBvZgorICAgICAgICAvLyBjdXJyZW50TlNFdmVudCgpIHRoYXQgbW91c2VNb3Zl
ZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCisgICAgICAgIEFTU0VSVCghbV9zZW5kaW5n
RXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7
CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChj
dXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCksIGhvdmVyZWROb2RlKTsKKyAgICAgICAgbV9zZW5k
aW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IAotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjogewotICAgICAgICAgICAgTm9kZSogbm9k
ZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsKLSAgICAgICAgICAgIGlmICghbm9kZSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUt
PnJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIp
KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIFdpZGdldCogd2lk
Z2V0ID0gZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqcmVuZGVyZXIpLndpZGdldCgpOwotICAgICAg
ICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIXBhc3NXaWRnZXRNb3VzZURvd25F
dmVudFRvV2lkZ2V0KGRvd25jYXN0PFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBtX21vdXNlRG93bldhc0luU3ViZnJh
bWUgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAg
Y2FzZSBOU0xlZnRNb3VzZVVwOiB7Ci0gICAgICAgICAgICBpZiAoIW1fbW91c2VEb3duV2FzSW5T
dWJmcmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBBU1NF
UlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50
VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5o
YW5kbGVNb3VzZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOwotICAg
ICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd246IHsKKyAgICAgICAgTm9kZSogbm9kZSA9IGV2ZW50LnRhcmdldE5v
ZGUoKTsKKyAgICAgICAgaWYgKCFub2RlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgICAgIGlmICghaXM8
UmVuZGVyV2lkZ2V0PihyZW5kZXJlcikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIFdpZGdldCogd2lkZ2V0ID0gZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqcmVuZGVyZXIpLndp
ZGdldCgpOworICAgICAgICBpZiAoIXdpZGdldCB8fCAhd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXBhc3NXaWRnZXRNb3VzZURv
d25FdmVudFRvV2lkZ2V0KGRvd25jYXN0PFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbV9tb3VzZURvd25XYXNJblN1YmZyYW1lID0g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDogeworICAgICAgICBpZiAoIW1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRv
U3Vidmlldyk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKKyAgICAg
ICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KGN1cnJl
bnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3
ID0gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC00
NzksMTEgKzQ3MCw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVuCiAgICAgICAgIHJldHVybiBk
b3duY2FzdDxGcmFtZVZpZXc+KHdpZGdldCkuZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVX
aGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogICAgIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbY3VycmVudE5TRXZlbnQoKSB0eXBlXSAhPSBOU1Njcm9sbFdo
ZWVsIHx8IG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KQorICAgIGlmIChbY3VycmVudE5TRXZlbnQo
KSB0eXBlXSAhPSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsIHx8IG1fc2VuZGluZ0V2ZW50VG9TdWJ2
aWV3KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAKICAgICBBU1NFUlQobm9kZVZpZXcpOwogICAgIEFTU0VSVChbbm9kZVZpZXcgc3VwZXJ2aWV3
XSk7CkBAIC01ODYsMTIgKzU3NCwxMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVu
dHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKIAogICAgIG1f
c2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CiAgICAgaW50IGV2ZW50VHlwZSA9IFtpbml0
aWF0aW5nRXZlbnQgdHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKGV2ZW50VHlwZSA9PSBOU0xlZnRNb3VzZURvd24gfHwgZXZlbnRUeXBlID09IE5TS2V5
RG93bikgeworICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAgICAgICAgTlNFdmVudCAqZmFr
ZUV2ZW50ID0gbmlsOwotICAgICAgICBpZiAoZXZlbnRUeXBlID09IE5TTGVmdE1vdXNlRG93bikg
ewotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
TGVmdE1vdXNlVXAKKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURvd24pIHsKKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbG9jYXRpb246W2luaXRpYXRpbmdFdmVudCBsb2NhdGlvbkluV2luZG93
XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltp
bml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ0V2ZW50IHRpbWVzdGFtcF0KQEAg
LTYwMiw4ICs1ODgsOCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVudHNBZnRlcldp
ZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTpbaW5pdGlhdGluZ0V2ZW50IHByZXNz
dXJlXV07CiAgICAgICAgIAogICAgICAgICAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQg
YXRTdGFydDpZRVNdOwotICAgICAgICB9IGVsc2UgeyAvLyBldmVudFR5cGUgPT0gTlNLZXlEb3du
Ci0gICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5
VXAKKyAgICAgICAgfSBlbHNlIHsgLy8gZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlS2V5RG93bgor
ICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZUtleVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0
aW9uOltpbml0aWF0aW5nRXZlbnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmll
ckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFt
cDpbaW5pdGlhdGluZ0V2ZW50IHRpbWVzdGFtcF0KQEAgLTYxOSw4ICs2MDUsMTIgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICpp
bml0aWF0aW5nRXZlbnQpCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVhbGx5IGdldCB0
aGUgY3VycmVudCBtb2RpZmllckZsYWdzIGhlcmUsIGJ1dCB0aGVyZSdzIG5vIHdheSB0byBwb2xs
CiAgICAgICAgIC8vIHRoZW0gaW4gQ29jb2EsIGFuZCBiZWNhdXNlIHRoZSBldmVudCBzdHJlYW0g
d2FzIHN0b2xlbiBieSB0aGUgQ2FyYm9uIG1lbnUgY29kZSB3ZSBoYXZlCiAgICAgICAgIC8vIG5v
IHVwLXRvLWRhdGUgY2FjaGUgb2YgdGhlbSBhbnl3aGVyZS4KLSAgICAgICAgZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1t2aWV3LT5wbGF0Zm9ybVdpZGdldCgp
IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAg
ICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TW91c2VNb3ZlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRp
b246W1t2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10KKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0
U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlhdGlu
Z0V2ZW50IHdpbmRvd051bWJlcl0KQEAgLTYyOCw3ICs2MTgsNiBAQCB2b2lkIEV2ZW50SGFuZGxl
cjo6c2VuZEZha2VFdmVudHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdF
dmVudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlja0NvdW50OjAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlOjBdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBh
dFN0YXJ0OllFU107CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0KaW5kZXggYTc0ZGE4NWFjZWNhM2M2Njk4ZGQxNTZhYjMxYTZj
OTcxYTM1NGU2ZS4uZTRlMjBkMjI3NjhjODgyZTkwMGIxMmI0MWZlMDJlY2RmYjQ4ZjYyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC00
NTcsMTMgKzQ1NywxMCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0
b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUgogICAgIHZlcnRpY2FsTWFy
Z2luID0gQ0dDZWlsaW5nKHZlcnRpY2FsTWFyZ2luKTsKIAogICAgIENHUmVjdCBjb250ZW50UmVj
dCA9IENHUmVjdEluc2V0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCAtaG9y
aXpvbnRhbE1hcmdpbiwgLXZlcnRpY2FsTWFyZ2luKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29u
dGVudFJlY3RGb3JGcmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVN
YXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2tdOworICAgIE5TUmVjdCB3aW5kb3dDb250ZW50UmVj
dCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1lUmVjdDpOU1JlY3RGcm9tQ0dSZWN0KGNv
bnRlbnRSZWN0KSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzXTsKICAgICBO
U1JlY3QgaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCA9IE5TSW50ZWdyYWxSZWN0KHdpbmRvd0Nv
bnRlbnRSZWN0KTsKICAgICBOU1BvaW50IGZyYWN0aW9uYWxUZXh0T2Zmc2V0ID0gTlNNYWtlUG9p
bnQod2luZG93Q29udGVudFJlY3Qub3JpZ2luLnggLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0
Lm9yaWdpbi54LCB3aW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueSAtIGludGVncmFsV2luZG93Q29u
dGVudFJlY3Qub3JpZ2luLnkpOwotICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IGFkb3B0TlMo
W1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDppbnRlZ3JhbFdpbmRvd0NvbnRl
bnRSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5p
dFdpdGhDb250ZW50UmVjdDppbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dp
bmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRl
ZmVyOk5PXSk7CiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6
W05TQ29sb3IgY2xlYXJDb2xvcl1dOwogICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0T3Bh
cXVlOk5PXTsKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNldElnbm9yZXNNb3VzZUV2ZW50
czpZRVNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1h
Yy5tbQppbmRleCA1YTQ5ZjNhYjNiZDBlNGIyYTIyZTQ0ZmI1YzEyYzZjYjg3YjQ1Y2UzLi4yMTFm
YzgzMGU3ZGUzZmVjNWNmNTdhYzUxYmY0NjExZDMyZTk5ZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQpAQCAtMjgsNyArMjgsNyBAQAog
I2ltcG9ydCAiTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJVVElVdGls
aXRpZXMuaCIKICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTk4LDEwICs5OCw3IEBAIHZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAKICAgICBMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29udGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0ltYWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9t
UmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ugc2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ug
c2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEu
MGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFttX25zSW1hZ2UgZHJhd0lu
UmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW21fbnNJbWFnZSBzaXplXS53aWR0
aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0
aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVicy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVicy5oCmluZGV4IDExNjYxODkwMjY0YjU3
Nzk5OTNiZDM3YWVjMzU0M2JhMTMwZDE0MDQuLjQyOGQ2OTM4NjVhZDViN2QyM2VjNmI4YTJhNjk2
ZDU5ODUxZjE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsv
V0FLQXBwS2l0U3R1YnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dB
S0FwcEtpdFN0dWJzLmgKQEAgLTE1NCwxNSArMTU0LDE1IEBAIHR5cGVkZWYgTlNVSW50ZWdlciBO
U1JlY3RFZGdlOwogCiAvKiBEZXZpY2UtaW5kZXBlbmRlbnQgYml0cyBmb3VuZCBpbiBldmVudCBt
b2RpZmllciBmbGFncyAqLwogZW51bSB7Ci0gICAgTlNBbHBoYVNoaWZ0S2V5TWFzayA9IDEgPDwg
MTYsCi0gICAgTlNTaGlmdEtleU1hc2sgPSAgICAgIDEgPDwgMTcsCi0gICAgTlNDb250cm9sS2V5
TWFzayA9ICAgIDEgPDwgMTgsCi0gICAgTlNBbHRlcm5hdGVLZXlNYXNrID0gIDEgPDwgMTksCi0g
ICAgTlNDb21tYW5kS2V5TWFzayA9ICAgIDEgPDwgMjAsCi0gICAgTlNOdW1lcmljUGFkS2V5TWFz
ayA9IDEgPDwgMjEsCi0gICAgTlNIZWxwS2V5TWFzayA9ICAgICAgIDEgPDwgMjIsCi0gICAgTlNG
dW5jdGlvbktleU1hc2sgPSAgIDEgPDwgMjMsCi0gICAgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlm
aWVyRmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKKyAgICBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xv
Y2sgPSAxIDw8IDE2LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCA9IDEgPDwgMTcsCisg
ICAgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSAxIDw8IDE4LAorICAgIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24gPSAxIDw8IDE5LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5k
ID0gMSA8PCAyMCwKKyAgICBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCA9IDEgPDwgMjEs
CisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgPSAxIDw8IDIyLAorICAgIE5TRXZlbnRNb2Rp
ZmllckZsYWdGdW5jdGlvbiA9IDEgPDwgMjMsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0Rldmlj
ZUluZGVwZW5kZW50RmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKIH07CiAKIHR5cGVkZWYgZW51bSBf
V0tXcml0aW5nRGlyZWN0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFj
Lm1tCmluZGV4IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5YzBiZDBmNjY5ZWIyNTRkMGMuLjg1Y2M3
YzVmZGQyYzE2MDYyY2Y4YTAxODY0YTI5ZmMzNDQ1YTdlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtNjQsMTAgKzY0LDcgQEAgc3RhdGljIFJldGFpblB0
cjxOU0N1cnNvcj4gY3JlYXRlQ3VzdG9tQ3Vyc29yKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UG9p
bnQmIGhvdFMKICAgICAgICAgTlNSZWN0IGZyb21SZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBpbWFn
ZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpKTsKIAogICAgICAgICBbZXhwYW5kZWRJbWFnZSBs
b2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBb
bnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBbbnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVj
dCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07
CiAgICAgICAgIFtleHBhbmRlZEltYWdlIHVubG9ja0ZvY3VzXTsKIAogICAgICAgICByZXR1cm4g
YWRvcHROUyhbW05TQ3Vyc29yIGFsbG9jXSBpbml0V2l0aEltYWdlOmV4cGFuZGVkSW1hZ2UuZ2V0
KCkgaG90U3BvdDpob3RTcG90XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQppbmRleCA2ODI0NmJlZmE1MjNlZGZmM2I2MDVjNjAxMTg3MTlkNDcyOThkMDli
Li5kMmY4ZjcwODAzY2NkZjljNTJiZGI2YTE3YmQ4MDE4NTUxZGMzYzM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTc1LDEwICs3NSw3IEBAIFJl
dGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oUmV0YWluUHRyPE5T
SW1hZ2U+IGltYWdlLCBmbG9hdCBkCiAgICAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZlZElt
YWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTpbaW1hZ2UuZ2V0KCkg
c2l6ZV1dKTsKICAgICAKICAgICBbZGlzc29sdmVkSW1hZ2UuZ2V0KCkgbG9ja0ZvY3VzXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UuZ2V0KCkgZHJhd0F0
UG9pbnQ6TlNaZXJvUG9pbnQgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbaW1hZ2Ugc2l6ZV0u
d2lkdGgsIFtpbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0ZUNvcHkgZnJh
Y3Rpb246ZGVsdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtpbWFnZS5n
ZXQoKSBkcmF3QXRQb2ludDpOU1plcm9Qb2ludCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFtp
bWFnZSBzaXplXS53aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdodCkgb3BlcmF0aW9uOk5TQ29tcG9z
aXRpbmdPcGVyYXRpb25Db3B5IGZyYWN0aW9uOmRlbHRhXTsKICAgICBbZGlzc29sdmVkSW1hZ2Uu
Z2V0KCkgdW5sb2NrRm9jdXNdOwogCiAgICAgcmV0dXJuIGRpc3NvbHZlZEltYWdlOwpAQCAtMTE5
LDEwICsxMTYsOCBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdl
KEltYWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaQogICAgICAgICAgICAgW2NvY29h
VHJhbnNmb3JtLmdldCgpIHNldFRyYW5zZm9ybVN0cnVjdDoqKE5TQWZmaW5lVHJhbnNmb3JtU3Ry
dWN0KikmdHJhbnNmb3JtXTsKICAgICAgICAgICAgIFtjb2NvYVRyYW5zZm9ybS5nZXQoKSBjb25j
YXRdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBb
aW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6ZGVzdFJlY3QgZnJvbVJlY3Q6TlNN
YWtlUmVjdCgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIG9wZXJhdGlvbjpOU0Nv
bXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDpk
ZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWln
aHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9u
OjEuMF07CisKICAgICAgICAgICAgIFtyb3RhdGVkRHJhZ0ltYWdlLmdldCgpIHVubG9ja0ZvY3Vz
XTsKIAogICAgICAgICAgICAgcmV0dXJuIHJvdGF0ZWREcmFnSW1hZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQppbmRleCBhZjBhMzk5MmI2NmU5ZDZmZmMw
MTc3MTI0ODU3NjI2YTAwNWE1ZTkwLi4zNmM0NmNjOGYyMDljY2I5NmQzODAxZjM2MjA1ZjE5OWEw
MWU0MmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29w
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0K
QEAgLTMxLDEwICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgRXZlbnRMb29wOjpj
eWNsZSgpCiB7CiAgICAgW05TQXBwIHNldFdpbmRvd3NOZWVkVXBkYXRlOllFU107Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW05TQXBwIHNlbmRFdmVudDpbTlNBcHAg
bmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRh
dGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BN
b2RlIGRlcXVldWU6WUVTXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW05T
QXBwIHNlbmRFdmVudDpbTlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrQW55
IHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5N
b2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXV07CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0
ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMu
bW0KaW5kZXggYTVkZjM0NzRjMzExYzZhNzU2MWQ3ZjRkNDQ1NTMxNGFhMDRkMDA3MC4uOTI5YmIz
MGYzMjk4OTVhNDQ4ZTdkOWJkNTEzMDBkYTkwYmFhYjQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KQEAgLTY1MywxMSArNjUzLDggQEAgdm9pZCBQ
YXN0ZWJvYXJkOjpzZXREcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRQb2lu
dCYgbG9jYXRpb24pCiAgICAgLy8gSGFjazogV2UgbXVzdCBwb3N0IGFuIGV2ZW50IHRvIHdha2Ug
dXAgdGhlIE5TRHJhZ01hbmFnZXIsIHdoaWNoIGlzIHNpdHRpbmcgaW4gYSBuZXh0RXZlbnQgY2Fs
bAogICAgIC8vIHVwIHRoZSBzdGFjayBmcm9tIHVzIGJlY2F1c2UgdGhlIENvcmVGb3VuZGF0aW9u
IGRyYWcgbWFuYWdlciBkb2VzIG5vdCB1c2UgdGhlIHJ1biBsb29wIGJ5IGl0c2VsZi4KICAgICAv
LyBUaGlzIGlzIHRoZSBtb3N0IGlubm9jdW91cyBldmVudCB0byB1c2UsIHBlciBLcmlzdGVuIEZv
cnN0ZXIuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCog
ZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9u
Ok5TWmVyb1BvaW50CisgICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOk5TWmVyb1BvaW50CiAgICAgICAg
IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBl
dmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6WUVTXTsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IGQzNGQ2ZWFlOTQ4ZjdhZmNiYWIzMzAzMTRmZGNiYTc4
ZTllNDAwYjguLjc3MDVkMTZiNGM0N2U5ZjMwM2MyNDY0MmMwM2M5ODFjYTU4NmJlZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMubW0KQEAgLTM2LDcgKzM2LDYgQEAKICNpbXBvcnQgPEhJVG9vbGJveC9FdmVudHMuaD4K
ICNpbXBvcnQgPG1hY2gvbWFjaF90aW1lLmg+CiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgot
I2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTIsMjcgKzUxLDI0IEBAIHN0YXRpYyBOU1BvaW50IGds
b2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQg
dHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFY
X0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNh
c2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAg
ICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAg
ICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoK
LSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNS
aWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAg
Y2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAg
ICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50
IHdpbmRvd10pOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIHsgMCwgMCB9
OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3Vz
ZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5
cGVTY3JvbGxXaGVlbDoKKyAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlv
bkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biB7IDAsIDAgfTsKICAgICB9CiB9CiAKQEAgLTgwLDMzICs3NiwzMCBAQCBzdGF0aWMgSW50UG9p
bnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KQogewog
ICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAgICBjYXNlIE5TRXZl
bnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBO
U0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNl
IE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3du
OgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNTY3JvbGxXaGVlbDogewotICAgICAgICAgICAgLy8g
Tm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2YgdGhl
IHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgotICAgICAgICAgICAgLy8gSW4g
dGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5IFdpZGdldDo6Y29u
dmVydEZyb21Db250YWluaW5nV2luZG93LgotICAgICAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9
IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKLSAgICAgICAgICAgIGlmICh3aW5kb3dWaWV3KQot
ICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW3dpbmRvd1ZpZXcgY29udmVydFBvaW50OmxvY2F0
aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQobG9jYXRpb24p
OwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQoKTsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNl
RW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6IHsKKyAgICAg
ICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQg
b2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgorICAgICAgICAvLyBJ
biB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpj
b252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCisgICAgICAgIE5TUG9pbnQgbG9jYXRpb24gPSBb
ZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIGlmICh3aW5kb3dWaWV3KQorICAgICAg
ICAgICAgbG9jYXRpb24gPSBbd2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9jYXRpb24gZnJvbVZp
ZXc6bmlsXTsKKyAgICAgICAgcmV0dXJuIEludFBvaW50KGxvY2F0aW9uKTsKKyAgICB9CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CiAgICAgfQogfQogCkBAIC0xMTQs
NzIgKzEwNyw2MyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewogI2lmIGRlZmluZWQo
X19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEwMDMKLSAg
ICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVz
c3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBMZWZ0QnV0
dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAg
IHJldHVybiBSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdn
ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE5vQnV0dG9u
OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAg
ICAgICAgcmV0dXJuIExlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gUmlnaHRCdXR0b247CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gTWlkZGxlQnV0dG9uOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBOb0J1
dHRvbjsKICAgICB9CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1vdXNlRXZlbnRU
eXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0p
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xl
ZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNh
c2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNh
c2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7Ci0gICAgICAg
IGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9y
bUV2ZW50OjpNb3VzZVByZXNzZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAg
ICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAg
ICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJu
IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
TW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93
bjoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAgICByZXR1cm4gUGxh
dGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
UGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tD
b3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVd
KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNM
ZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dl
ZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOwot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBbZXZlbnQgY2xp
Y2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogfQogCkBA
IC00OTcsMjggKzQ4MSwyOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktleUV2ZW50KE5TRXZl
bnQqIGV2ZW50KQogewogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0No
YW5nZWQpIHsKICAgICAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgICAg
IGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgICAgIGNhc2UgNTU6IC8vIExlZnQg
Q29tbWFuZAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEiKTsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2siKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0
IFNoaWZ0Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAgICAgICAgICBj
YXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJBbHQi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAot
ICAgICAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoIkNvbnRyb2wiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1h
bmQKKyAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAgICAgICByZXR1cm4g
U3RyaW5nKCJNZXRhIik7CisKKyAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAgICAg
ICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7CisKKyAgICAgICAgY2FzZSA1NjogLy8gTGVm
dCBTaGlmdAorICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAgICAgICAgICAgcmV0
dXJuIFN0cmluZygiU2hpZnQiKTsKKworICAgICAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAorICAg
ICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkFs
dCIpOworCisgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgICAgICBjYXNlIDYyOiAv
LyBSaWdodCBDdHJsCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDb250cm9sIik7CisKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC01
MzQsNDQgKzUxOCwzOCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50
KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhh
cyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNh
c2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAgICAgICAgICAgIGJy
ZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAg
IGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2Vk
OgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TTnVtZXJpY1BhZEtleU1hc2spCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdOdW1lcmljUGFkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHN3aXRjaCAo
W2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFyCi0gICAgICAgIGNh
c2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBjYXNlIDY3OiAvLyAq
Ci0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8gKwotICAgICAgICBj
YXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAgICAgIGNhc2UgODI6
IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0OiAvLyAyCi0gICAg
ICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAgICAgICBjYXNlIDg3
OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4OTogLy8gNwotICAg
ICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAgICBjYXNlIDgxOiAv
LyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAgICBjYXNlIDc4OiAv
LyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVyCisgICAgY2FzZSA2
NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAxCisgICAgY2FzZSA4
NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0CisgICAgY2FzZSA4
NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3CisgICAgY2FzZSA5
MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQog
ICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNTg1LDEwICs1NjMsNyBAQCBpbnQgd2lu
ZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAvLyAyLiBLZXlzIGZv
ciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29kZXMsIGxpa2UgUHJp
bnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlzLiBPbiBXaW5kb3dz
LCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVudCBrZXlib2FyZCBs
YXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NLZXlDb2RlRm9yQ2hh
ckNvZGUoKS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoIWlz
S2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVu
dCB0eXBlXSA9PSBOU0tleVVwKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlw
ZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApKSB7CiAgICAgICAg
IC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdFUlRZIGxheW91dCwg
c28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5TU3RyaW5nKiBzID0g
W2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3RoXSA+IDAgPyB3aW5k
b3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pIDogMDsKQEAgLTY0
NiwzNSArNjIxLDMyIEBAIGRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBl
dmVudCkKIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5
cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5T
S2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkK
KyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleVVwOwogICAgIC8v
IEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNzZXMgYm90aCBTaGlmdCBr
ZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0IHJlbGVhc2luZyBvbmUg
b2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAg
ICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBD
b21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29t
bWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1NzogLy8gQ2Fw
c2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBo
YVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU2OiAvLyBM
ZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICBy
ZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKSA9PSAwOwotICAg
ICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAgICAgIGNhc2UgNjE6
IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1
OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAgICAg
ICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgPT0g
MDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgotICAgICAgICAg
ICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9uS2V5TWFzaykgPT0g
MDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIDU0OiAvLyBSaWdodCBD
b21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAgIHJldHVybiAhKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKTsKKworICAg
IGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBjYXNlIDU2OiAvLyBM
ZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAgICAgcmV0dXJuICEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KTsKKworICAg
IGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0CisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2MjogLy8gUmlnaHQg
Q3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgorICAgICAgICBy
ZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b24pOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAgKzc5MCw3IEBAIHB1
YmxpYzoKICAgICAgICAgbV9rZXkgPSBrZXlGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1f
Y29kZSA9IGNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fd2luZG93c1ZpcnR1YWxL
ZXlDb2RlID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIG1fYXV0b1JlcGVhdCA9IFtldmVudCB0eXBl
XSAhPSBOU0ZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50IHR5cGVdICE9IE5T
RXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwogICAgICAgICBtX2lz
S2V5cGFkID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgICAgIG1faXNTeXN0ZW1LZXkgPSBm
YWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KaW5kZXggOTFj
YmVkZDBjZGEwNzA2NWIzYmYzZjE3MDE1OGYxZDYyNzczMTgzZi4uMTUwZmFiZThlMzc3NGYwNjI1
Zjg1OTY2NGNhZjc4NzRjYzdjNjVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtMTM5LDE4ICsxMzksMTUgQEAgc3RhdGljIFNj
cm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRv
bnNEb3VibGVFbmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXpl
VG9OU0NvbnRyb2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoY29udHJvbFNpemUp
IHsKICAgICBjYXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGNh
c2UgU21hbGxTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Cisg
ICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIH0K
IAogdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFy
JiBzY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXgg
MDI0NzJjOWE2OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4uMmJjMjYyZDgwNmVlOWNm
M2FjN2U1NDFmNjhhYzMwMmI2MmQwODY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9U
aGVtZU1hYy5tbQpAQCAtNjcsMTEgKzY3LDggQEAgLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsKICAg
ICAvLyBVc2luZyBkZWZlcjpZRVMgcHJldmVudHMgdXMgZnJvbSB3YXN0aW5nIGFueSB3aW5kb3cg
c2VydmVyIHJlc291cmNlcyBmb3IgdGhpcyB3aW5kb3csIHNpbmNlIHdlJ3JlIG5vdCBhY3R1YWxs
eQogICAgIC8vIGdvaW5nIHRvIGRyYXcgaW50byBpdC4gVGhlIG90aGVyIGFyZ3VtZW50cyBtYXRj
aCB3aGF0IHlvdSBnZXQgd2hlbiBjYWxsaW5nIC1bTlNXaW5kb3cgaW5pdF0uCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3RhdGljIFdlYkNvcmVUaGVtZVdpbmRvdyAq
d2luZG93ID0gW1tXZWJDb3JlVGhlbWVXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
TlNNYWtlUmVjdCgxMDAsIDEwMCwgMTAwLCAxMDApCi0gICAgICAgIHN0eWxlTWFzazpOU1RpdGxl
ZFdpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIHN0eWxlTWFzazpOU1dpbmRvd1N0
eWxlTWFza1RpdGxlZCBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsK
ICAgICByZXR1cm4gd2luZG93OwogfQogCkBAIC0xNDQsMTUgKzE0MSwxMiBAQCBUaGVtZSogcGxh
dGZvcm1UaGVtZSgpCiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplRm9yRm9udChj
b25zdCBGb250Q2FzY2FkZSYgZm9udCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKICAgICBpbnQgZm9udFNpemUgPSBmb250LnBpeGVsU2l6ZSgpOwogICAgIGlmIChmb250
U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZvbnRTaXplID49IDExKQot
ICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250
cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgcmV0dXJuIE5T
Q29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0
YXRpYyBMZW5ndGhTaXplIHNpemVGcm9tTlNDb250cm9sU2l6ZShOU0NvbnRyb2xTaXplIG5zQ29u
dHJvbFNpemUsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3Is
IGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzKQpAQCAtMTc1LDE2ICsxNjksMTMg
QEAgc3RhdGljIExlbmd0aFNpemUgc2l6ZUZyb21Gb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250
LCBjb25zdCBMZW5ndGhTaXplJiB6b29tZWQKIAogc3RhdGljIENvbnRyb2xTaXplIGNvbnRyb2xT
aXplRnJvbVBpeGVsU2l6ZShjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcywgY29u
c3QgSW50U2l6ZSYgbWluWm9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgp
ID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLndpZHRoKCkg
KiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRp
Y19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUZh
Y3RvcikpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAobWlu
Wm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRy
b2xTaXplXS53aWR0aCgpICogem9vbUZhY3RvcikgJiYKLSAgICAgICAgbWluWm9vbWVkU2l6ZS5o
ZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0uaGVp
Z2h0KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsK
LSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNp
emVzW05TQ29udHJvbFNpemVSZWd1bGFyXS53aWR0aCgpICogem9vbUZhY3RvcikKKyAgICAgICAg
JiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29u
dHJvbFNpemVSZWd1bGFyXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQorICAgICAgICByZXR1cm4g
TlNDb250cm9sU2l6ZVJlZ3VsYXI7CisgICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lkdGgoKSAqIHpvb21G
YWN0b3IpCisgICAgICAgICYmIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8
aW50PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisg
ICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNp
emVNaW5pOwogfQogCiBzdGF0aWMgdm9pZCBzZXRDb250cm9sU2l6ZShOU0NlbGwqIGNlbGwsIGNv
bnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29t
ZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQpAQCAtNDgwLDEwICs0NzEsNyBAQCBzdGF0aWMgdm9p
ZCBzZXRVcEJ1dHRvbkNlbGwoTlNCdXR0b25DZWxsICpjZWxsLCBDb250cm9sUGFydCBwYXJ0LCBj
b25zdCBDb250cm9sUwogewogICAgIC8vIFNldCB0aGUgY29udHJvbCBzaXplIGJhc2VkIG9mZiB0
aGUgcmVjdGFuZ2xlIHdlJ3JlIHBhaW50aW5nIGludG8uCiAgICAgY29uc3Qgc3RkOjphcnJheTxJ
bnRTaXplLCAzPiYgc2l6ZXMgPSBidXR0b25TaXplcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIGlmIChwYXJ0ID09IFNxdWFyZUJ1dHRvblBhcnQgfHwgem9vbWVk
U2l6ZS5oZWlnaHQoKSA+IGJ1dHRvblNpemVzKClbTlNSZWd1bGFyQ29udHJvbFNpemVdLmhlaWdo
dCgpICogem9vbUZhY3RvcikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChwYXJ0ID09IFNxdWFyZUJ1dHRvblBhcnQgfHwgem9vbWVkU2l6ZS5oZWlnaHQoKSA+IGJ1dHRv
blNpemVzKClbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUZhY3Rvcikgewog
ICAgICAgICAvLyBVc2UgdGhlIHNxdWFyZSBidXR0b24KICAgICAgICAgaWYgKFtjZWxsIGJlemVs
U3R5bGVdICE9IE5TU2hhZG93bGVzc1NxdWFyZUJlemVsU3R5bGUpCiAgICAgICAgICAgICBbY2Vs
bCBzZXRCZXplbFN0eWxlOk5TU2hhZG93bGVzc1NxdWFyZUJlemVsU3R5bGVdOwpAQCAtNTc5LDE1
ICs1NjcsMTIgQEAgc3RhdGljIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHN0ZXBwZXJT
aXplcygpCiAvLyBzaG91bGQgYmUgZXF1YWwgdG8gb3IgbGVzcyB0aGFuIHRoZSBjb3JyZXNwb25k
aW5nIHRleHQgZmllbGQgaGVpZ2h0LAogc3RhdGljIE5TQ29udHJvbFNpemUgc3RlcHBlckNvbnRy
b2xTaXplRm9yRm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCkKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpbnQgZm9udFNpemUgPSBmb250LnBpeGVsU2l6ZSgp
OwogICAgIGlmIChmb250U2l6ZSA+PSAxOCkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRy
b2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZv
bnRTaXplID49IDEzKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJl
dHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6
ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHBhaW50U3RlcHBlcihDb250cm9sU3RhdGVzJiBzdGF0
ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0
LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KikKQEAgLTYwMCwxNSArNTg1LDEyIEBAIHN0
YXRpYyB2b2lkIHBhaW50U3RlcHBlcihDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QKICAgICBkcmF3SW5mby5zdGF0ZSA9IGNvbnZlcnRDb250cm9s
U3RhdGVzVG9UaGVtZURyYXdTdGF0ZShrVGhlbWVJbmNEZWNCdXR0b24sIHN0YXRlcyk7CiAgICAg
ZHJhd0luZm8uYWRvcm5tZW50ID0ga1RoZW1lQWRvcm5tZW50RGVmYXVsdDsKICAgICBDb250cm9s
U2l6ZSBjb250cm9sU2l6ZSA9IGNvbnRyb2xTaXplRnJvbVBpeGVsU2l6ZShzdGVwcGVyU2l6ZXMo
KSwgSW50U2l6ZSh6b29tZWRSZWN0LnNpemUoKSksIHpvb21GYWN0b3IpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU1NtYWxsQ29u
dHJvbFNpemUpCisgICAgaWYgKGNvbnRyb2xTaXplID09IE5TQ29udHJvbFNpemVTbWFsbCkKICAg
ICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvblNtYWxsOwotICAgIGVsc2Ug
aWYgKGNvbnRyb2xTaXplID09IE5TTWluaUNvbnRyb2xTaXplKQorICAgIGVsc2UgaWYgKGNvbnRy
b2xTaXplID09IE5TQ29udHJvbFNpemVNaW5pKQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1Ro
ZW1lSW5jRGVjQnV0dG9uTWluaTsKICAgICBlbHNlCiAgICAgICAgIGRyYXdJbmZvLmtpbmQgPSBr
VGhlbWVJbmNEZWNCdXR0b247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBJ
bnRSZWN0IHJlY3Qoem9vbWVkUmVjdCk7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBz
dGF0ZVNhdmVyKGNvbnRleHQpOwpAQCAtNzQ5LDEyICs3MzEsOSBAQCBMZW5ndGhTaXplIFRoZW1l
TWFjOjptaW5pbXVtQ29udHJvbFNpemUoQ29udHJvbFBhcnQgcGFydCwgY29uc3QgRm9udENhc2Nh
ZGUmIGZvbgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gTGVu
Z3RoU2l6ZShMZW5ndGgoMCwgRml4ZWQpLCBMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PigxNSAqIHpv
b21GYWN0b3IpLCBGaXhlZCkpOwogICAgICAgICBjYXNlIElubmVyU3BpbkJ1dHRvblBhcnQ6ewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgSW50U2l6ZSBi
YXNlID0gc3RlcHBlclNpemVzKClbTlNNaW5pQ29udHJvbFNpemVdOworICAgICAgICAgICAgSW50
U2l6ZSBiYXNlID0gc3RlcHBlclNpemVzKClbTlNDb250cm9sU2l6ZU1pbmldOwogICAgICAgICAg
ICAgcmV0dXJuIExlbmd0aFNpemUoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oYmFzZS53aWR0aCgp
ICogem9vbUZhY3RvciksIEZpeGVkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExl
bmd0aChzdGF0aWNfY2FzdDxpbnQ+KGJhc2UuaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSwgRml4ZWQp
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgcmV0dXJuIFRoZW1lOjptaW5pbXVtQ29udHJvbFNpemUocGFydCwg
Zm9udCwgem9vbUZhY3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1t
CmluZGV4IGQzYjllZTk4ZGY5NDIwY2NkNzExNmIwNDAzNTYzODNjZmM3NDZmOTAuLmNkNWI4YjUw
MzUxMDA3ZWMwMWVkNzMyYWM3ZDM2YjVlNDk3MTdjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURX
aW5kb3dDb250cm9sbGVyLm1tCkBAIC03MywxMCArNzMsNyBAQCBAaW1wbGVtZW50YXRpb24gV2Vi
VmlkZW9GdWxsc2NyZWVuSFVEV2luZG93CiAtIChpZClpbml0V2l0aENvbnRlbnRSZWN0OihOU1Jl
Y3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihOU1VJbnRlZ2VyKWFTdHlsZSBiYWNraW5nOihOU0Jh
Y2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlwZSBkZWZlcjooQk9PTClmbGFnCiB7CiAgICAgVU5V
U0VEX1BBUkFNKGFTdHlsZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFz
azpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6YnVmZmVyaW5nVHlwZSBkZWZlcjpmbGFn
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBzZWxmID0gW3N1cGVyIGluaXRX
aXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9y
ZGVybGVzcyBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107CiAgICAgaWYgKCFzZWxm
KQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC0xMjIsMTUgKzExOSwxMiBAQCAtIChCT09MKXJl
c2lnbkZpcnN0UmVzcG9uZGVyCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZl
bnQgKilldmVudAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8v
IEJsb2NrIGFsbCBjb21tYW5kIGtleSBldmVudHMgd2hpbGUgdGhlIGZ1bGxzY3JlZW4gd2luZG93
IGlzIHVwLgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZl
bnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1cm4gTk87CiAgICAg
Ci0gICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykpCisg
ICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1h
bmQpKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAg
ICAgcmV0dXJuIFlFUzsKIH0KIApAQCAtMTQ1LDExICsxMzksNyBAQCBAaW1wbGVtZW50YXRpb24g
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlcgogCiAtIChpZClpbml0CiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNXaW5kb3cgKndpbmRvdyA9
IFtbV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
Ok5TTWFrZVJlY3QoMCwgMCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIHdpbmRvd1dp
ZHRoLCB3aW5kb3dIZWlnaHQpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3Mg
YmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBzZWxmID0gW3N1
cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dpbmRvdyBzZXREZWxlZ2F0ZTpzZWxm
XTsKICAgICBbd2luZG93IHJlbGVhc2VdOwpAQCAtMTg4LDIwICsxNzgsMTcgQEAgLSAodm9pZClr
ZXlEb3duOihOU0V2ZW50ICopZXZlbnQKICAgICAgICAgICAgIGNhc2UgJyAnOgogICAgICAgICAg
ICAgICAgIFtzZWxmIHRvZ2dsZVBsYXlpbmc6bmlsXTsKICAgICAgICAgICAgICAgICByZXR1cm47
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgICAgICBjYXNlIE5T
VXBBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAgaWYgKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgICAgICAg
ICAgICAgIFtzZWxmIHNldFZvbHVtZTpbc2VsZiBtYXhWb2x1bWVdXTsKICAgICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIGluY3JlbWVudFZvbHVtZV07CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25BcnJvd0Z1bmN0aW9u
S2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVy
bmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNl
dFZvbHVtZTowXTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFtz
ZWxmIGRlY3JlbWVudFZvbHVtZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAg
ICBicmVhazsKQEAgLTM3OCwxNyArMzY1LDExIEBAIC0gKHZvaWQpd2luZG93RGlkTG9hZAogICAg
IFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Ol90aW1lbGluZV07CiAKICAgICBfZWxhcHNlZFRpbWVU
ZXh0ID0gY3JlYXRlVGltZVRleHRGaWVsZChOU01ha2VSZWN0KHRpbWVUZXh0RmllbGRIb3Jpem9u
dGFsTWFyZ2luLCB0aW1lbGluZUJvdHRvbU1hcmdpbiwgdGltZVRleHRGaWVsZFdpZHRoLCB0aW1l
VGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgW19lbGFwc2VkVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TTGVmdFRleHRBbGlnbm1lbnRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtfZWxhcHNlZFRpbWVUZXh0IHNldEFs
aWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0XTsKICAgICBbY29udGVudFZpZXcgYWRkU3Vidmll
dzpfZWxhcHNlZFRpbWVUZXh0XTsKIAogICAgIF9yZW1haW5pbmdUaW1lVGV4dCA9IGNyZWF0ZVRp
bWVUZXh0RmllbGQoTlNNYWtlUmVjdCh3aW5kb3dXaWR0aCAtIHRpbWVUZXh0RmllbGRIb3Jpem9u
dGFsTWFyZ2luIC0gdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lbGluZUJvdHRvbU1hcmdpbiwgdGlt
ZVRleHRGaWVsZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW19yZW1haW5pbmdUaW1lVGV4dCBzZXRBbGlnbm1lbnQ6
TlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVudFJpZ2h0XTsK
ICAgICBbY29udGVudFZpZXcgYWRkU3VidmlldzpfcmVtYWluaW5nVGltZVRleHRdOwogCiAgICAg
W3dpbmRvdyByZWNhbGN1bGF0ZUtleVZpZXdMb29wXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tCmluZGV4IDQ1OThhMDNlZDJmYTMyMTUw
ZTY0YWY5Y2JiNjQ1OTk0NjlmZGRmNzcuLjhhYmM4NDBiNzNjYzY0NWM4YWM0MDZkZWFmYWU5NDIy
Y2RjMzUzZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5k
b3dBbmltYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYldpbmRv
d0FuaW1hdGlvbi5tbQpAQCAtMzgsMTAgKzM4LDcgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQgc2xv
d01vdGlvbkZhY3RvciA9IDEwOwogCiBzdGF0aWMgTlNUaW1lSW50ZXJ2YWwgV2ViV2luZG93QW5p
bWF0aW9uRHVyYXRpb25Gcm9tRHVyYXRpb24oTlNUaW1lSW50ZXJ2YWwgZHVyYXRpb24pCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIChbW05TQXBwIGN1
cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU1NoaWZ0S2V5TWFzaykgPyBkdXJhdGlvbiAq
IHNsb3dNb3Rpb25GYWN0b3IgOiBkdXJhdGlvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICByZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdCkgPyBkdXJhdGlvbiAqIHNsb3dNb3Rpb25GYWN0b3IgOiBk
dXJhdGlvbjsKIH0KIAogc3RhdGljIE5TUmVjdCBzY2FsZWRSZWN0KE5TUmVjdCBfaW5pdGlhbEZy
YW1lLCBOU1JlY3QgX2ZpbmFsRnJhbWUsIENHRmxvYXQgZmFjdG9yKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDNlZGRjMDNlNGQ4ZTlmNjM1MTdjNTI3
MWYyMDFiNTY3ODIyYjkwMjguLmRiZjQ3OGY0OWM5NDM2MTEwOTk5YmNjMWM5MDc1ZTc3NmU5ZDBj
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTM3
OSwyMiArMzc5LDEzIEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OnVwZGF0ZUNhY2hlZFN5c3RlbUZv
bnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIEZvCiAgICAgICAgICAgICBmb250
TmFtZSA9IEF0b21pY1N0cmluZygiLWFwcGxlLXN0YXR1cy1iYXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENT
U1ZhbHVlV2Via2l0TWluaUNvbnRyb2w6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQg
c3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU01pbmlDb250cm9sU2l6ZV1dOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVt
Rm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9s
U2l6ZU1pbmldXTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1ZhbHVlV2Vi
a2l0U21hbGxDb250cm9sOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZv
bnRTaXplRm9yQ29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZT
aXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplU21h
bGxdXTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Q29u
dHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIGZv
bnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNv
bnRyb2xTaXplOk5TUmVndWxhckNvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0Zv
bnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplUmVndWxhcl1dOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVdXTsKQEAgLTc3
NywzMCArNzY4LDI0IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTdXBwb3J0c1RpbnRz
KGNvbnN0IFJlbmRlck9iamVjdCYgbykgY29uc3QKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVN
YWM6OmNvbnRyb2xTaXplRm9yRm9udChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7
CiAgICAgaW50IGZvbnRTaXplID0gc3R5bGUuZm9udFNpemUoKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKICAgICBpZiAoZm9udFNpemUgPj0gMTYpCi0gICAgICAgIHJldHVy
biBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1
bGFyOwogICAgIGlmIChmb250U2l6ZSA+PSAxMSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250
cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0
dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1lTWFj
Ojpjb250cm9sU2l6ZUZvckNlbGwoTlNDZWxsKiwgY29uc3QgSW50U2l6ZSogc2l6ZXMsIGNvbnN0
IEludFNpemUmIG1pblNpemUsIGZsb2F0IHpvb21MZXZlbCkgY29uc3QKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRp
Y19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tTGV2
ZWwpCi0gICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXpl
c1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQotICAgICAgICBy
ZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVSZWd1bGFyXS53aWR0aCgpICogem9v
bUxldmVsKQorICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUxldmVsKSkKKyAgICAg
ICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogCi0gICAgaWYgKG1pblNpemUud2lkdGgo
KSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0ud2lkdGgoKSAq
IHpvb21MZXZlbCkKLSAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQotICAg
ICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOworICAgIGlmIChtaW5TaXplLndpZHRoKCkg
Pj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxdLndpZHRoKCkgKiB6
b29tTGV2ZWwpCisgICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50
PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxdLmhlaWdodCgpICogem9vbUxldmVsKSkKKyAgICAg
ICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKIAotICAgIHJldHVybiBOU01pbmlDb250cm9s
U2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gTlNDb250cm9s
U2l6ZU1pbmk7CiB9CiAKIHZvaWQgUmVuZGVyVGhlbWVNYWM6OnNldENvbnRyb2xTaXplKE5TQ2Vs
bCogY2VsbCwgY29uc3QgSW50U2l6ZSogc2l6ZXMsIGNvbnN0IEludFNpemUmIG1pblNpemUsIGZs
b2F0IHpvb21MZXZlbCkKQEAgLTg1NywxNSArODQyLDEyIEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6
OnNldEZvbnRGcm9tQ29udHJvbFNpemUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiBzdHls
ZSwKIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1G
b250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKICAgICBpbnQgZm9udFNpemUgPSBzdHlsZS5mb250U2l6ZSgpOwot
ICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6
TlNSZWd1bGFyQ29udHJvbFNpemVdKQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNp
emU7Ci0gICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xT
aXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNv
bnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1bGFyXSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJv
bFNpemVSZWd1bGFyOworICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXpl
Rm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXSkKKyAgICAgICAgcmV0dXJuIE5TQ29u
dHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50VGV4dEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYgbywgY29u
c3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcikKQEAgLTExNDcsMTAg
KzExMjksNyBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKGNvbnN0IFJl
bmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYQogICAgIGNvbnN0IGF1dG8mIHJlbmRl
clByb2dyZXNzID0gZG93bmNhc3Q8UmVuZGVyUHJvZ3Jlc3M+KHJlbmRlck9iamVjdCk7CiAgICAg
SElUaGVtZVRyYWNrRHJhd0luZm8gdHJhY2tJbmZvOwogICAgIHRyYWNrSW5mby52ZXJzaW9uID0g
MDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoY29udHJvbFNp
emUgPT0gTlNSZWd1bGFyQ29udHJvbFNpemUpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgaWYgKGNvbnRyb2xTaXplID09IE5TQ29udHJvbFNpemVSZWd1bGFyKQogICAgICAgICB0
cmFja0luZm8ua2luZCA9IHJlbmRlclByb2dyZXNzLnBvc2l0aW9uKCkgPCAwID8ga1RoZW1lTGFy
Z2VJbmRldGVybWluYXRlQmFyIDoga1RoZW1lTGFyZ2VQcm9ncmVzc0JhcjsKICAgICBlbHNlCiAg
ICAgICAgIHRyYWNrSW5mby5raW5kID0gcmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBr
VGhlbWVNZWRpdW1JbmRldGVybWluYXRlQmFyIDoga1RoZW1lTWVkaXVtUHJvZ3Jlc3NCYXI7CkBA
IC0xNDM4LDE1ICsxNDE3LDEyIEBAIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplIFJlbmRl
clRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKGNvbnN0IFJlbmRlclN0eWxlJiBzCiAgICAgTlNQb3BV
cEJ1dHRvbkNlbGwqIHBvcHVwQnV0dG9uID0gdGhpcy0+cG9wdXBCdXR0b24oKTsKICAgICBOU0Nv
bnRyb2xTaXplIHNpemUgPSBjb250cm9sU2l6ZUZvckNlbGwocG9wdXBCdXR0b24sIHBvcHVwQnV0
dG9uU2l6ZXMoKSwgcmVjdC5zaXplKCksIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSk7CiAgICAgc3dp
dGNoIChzaXplKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2Fz
ZSBOU1JlZ3VsYXJDb250cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVSZWd1bGFyOgog
ICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw7Ci0gICAg
Y2FzZSBOU1NtYWxsQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplU21hbGw6CiAg
ICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZVNtYWxsOwotICAgIGNh
c2UgTlNNaW5pQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplTWluaToKICAgICAg
ICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gUG9wdXBNZW51
U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw7CiAgICAgfQpAQCAtMjA1NSwxMiArMjAzMSw5IEBA
IE5TU2xpZGVyQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iSG9yaXpvbnRhbCgpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX3NsaWRlclRodW1iSG9yaXpvbnRhbCkgewogICAgICAgICBtX3Ns
aWRlclRodW1iSG9yaXpvbnRhbCA9IGFkb3B0TlMoW1tOU1NsaWRlckNlbGwgYWxsb2NdIGluaXRd
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW21fc2xpZGVy
VGh1bWJIb3Jpem9udGFsLmdldCgpIHNldFNsaWRlclR5cGU6TlNMaW5lYXJTbGlkZXJdOwotICAg
ICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFs
bENvbnRyb2xTaXplXTsKKyAgICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNl
dFNsaWRlclR5cGU6TlNTbGlkZXJUeXBlTGluZWFyXTsKKyAgICAgICAgW21fc2xpZGVyVGh1bWJI
b3Jpem9udGFsLmdldCgpIHNldENvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF07CiAgICAg
ICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRGb2N1c1JpbmdUeXBlOk5TRm9j
dXNSaW5nVHlwZUV4dGVyaW9yXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9
CiAKICAgICByZXR1cm4gbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCk7CkBAIC0yMDcwLDEx
ICsyMDQzLDggQEAgTlNTbGlkZXJDZWxsKiBSZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJWZXJ0
aWNhbCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NsaWRlclRodW1iVmVydGljYWwpIHsKICAgICAg
ICAgbV9zbGlkZXJUaHVtYlZlcnRpY2FsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxvY10g
aW5pdF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbV9z
bGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldFNsaWRlclR5cGU6TlNMaW5lYXJTbGlkZXJdOwot
ICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldENvbnRyb2xTaXplOk5TU21h
bGxDb250cm9sU2l6ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIFtt
X3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1NsaWRlclR5cGVMaW5l
YXJdOworICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldENvbnRyb2xTaXpl
Ok5TQ29udHJvbFNpemVTbWFsbF07CiAgICAgICAgIFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0
KCkgc2V0Rm9jdXNSaW5nVHlwZTpOU0ZvY3VzUmluZ1R5cGVFeHRlcmlvcl07CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCmluZGV4
IGYyYTM1OTczYTcxZTA2ODI2MGE5MWM5NjdkMjkwNTBkMmVkZTc2MGQuLjk2ZjY0OWE0YWYzMGVm
ZWRjYmE3OTZiNWY3MjY1OWQyZjRiNGJjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0Nh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCkBAIC0xNzMsMTMgKzE3MywxNCBAQCAtIChpZClp
bml0V2l0aENhcmJvbldpbmRvd1JlZjooV2luZG93UmVmKWluV2luZG93UmVmIHRha2luZ093bmVy
c2hpcDooQk9PTClpbldpbgogCiAgICAgLy8gRmlndXJlIG91dCB0aGUgd2luZG93J3Mgc3R5bGUg
bWFzay4KICAgICBzdHlsZU1hc2sgPSBXS0NhcmJvbldpbmRvd01hc2soKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5k
b3dDbG9zZUJveEF0dHJpYnV0ZSkgc3R5bGVNYXNrIHw9IE5TQ2xvc2FibGVXaW5kb3dNYXNrOwot
ICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd1Jlc2l6YWJsZUF0dHJpYnV0ZSkgc3R5
bGVNYXNrIHw9IE5TUmVzaXphYmxlV2luZG93TWFzazsKLSAgICBpZiAod2luZG93RmVhdHVyZXMg
JiBrV2luZG93Q2FuQ29sbGFwc2UpIHN0eWxlTWFzayB8PSBOU01pbmlhdHVyaXphYmxlV2luZG93
TWFzazsKLSAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpIHN0eWxl
TWFzayB8PSBOU1RpdGxlZFdpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93Q2xvc2VCb3hBdHRyaWJ1dGUpCisg
ICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlOworICAgIGlmICh3
aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd1Jlc2l6YWJsZUF0dHJpYnV0ZSkKKyAgICAgICAgc3R5
bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlOworICAgIGlmICh3aW5kb3dGZWF0
dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBzZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93
U3R5bGVNYXNrTWluaWF0dXJpemFibGU7CisgICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRv
d0hhc1RpdGxlQmFyKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tUaXRs
ZWQ7CiAKICAgICBvc1N0YXR1cyA9IEdldFdpbmRvd01vZGFsaXR5KF93aW5kb3dSZWYsICZ3aW5k
b3dNb2RhbGl0eSwgTlVMTCk7CiAgICAgaWYgKG9zU3RhdHVzICE9IG5vRXJyKSB7CkBAIC0zOTMs
MTggKzM5NCwxMiBAQCAtICh2b2lkKXNlbmRTdXBlckV2ZW50OihOU0V2ZW50ICopaW5FdmVudCB7
CiAgICAgLy8gSWdub3JlIHNvbWUgdW5rbm93biBldmVudCB0aGF0IGdldHMgc2VudCB3aGVuIE5T
VGV4dFZpZXdzIGluIHByaW50aW5nIGFjY2Vzc29yeSB2aWV3cyBhcmUgZm9jdXNlZC4gIE0uUC4g
Tm90aWNlIC0gMTIvNy8wMAogICAgIEJPT0wgaWdub3JlRXZlbnQgPSBOTzsKICAgICBOU0V2ZW50
VHlwZSBldmVudFR5cGUgPSBbaW5FdmVudCB0eXBlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBpZiAoZXZlbnRUeXBlPT1OU1N5c3RlbURlZmluZWQpIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRUeXBl
U3lzdGVtRGVmaW5lZCkgewogICAgICAgICBzaG9ydCBldmVudFN1YnR5cGUgPSBbaW5FdmVudCBz
dWJ0eXBlXTsKLSAgICAgICAgaWYgKGV2ZW50U3VidHlwZT09NykgeworICAgICAgICBpZiAoZXZl
bnRTdWJ0eXBlID09IDcpIHsKICAgICAgICAgICAgIGlnbm9yZUV2ZW50ID0gWUVTOwogICAgICAg
ICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgfSBlbHNlIGlmIChl
dmVudFR5cGUgPT0gTlNLZXlEb3duKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAgICAgICAg
IC8vIEhhbmRsZSBjb21tYW5kLXNwYWNlIGFzIFtOU0FwcCBzZW5kRXZlbnQ6XSBkb2VzLgogICAg
ICAgICBpZiAoW05TSW5wdXRDb250ZXh0IHByb2Nlc3NJbnB1dEtleUJpbmRpbmdzOmluRXZlbnRd
KSB7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
YXJib24vSElXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0hJV2ViVmlldy5t
bQppbmRleCBkMWM1NTBmMWZjZTc0ZGRlZTEyNzE0ZWJhMzNkODczZDBmYzYzMjkyLi4wYWUwMTQ3
MDJmZDM5MWNjZTU4MjZhNGEwMWEwOGZmZjJjMDRiZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJv
bi9ISVdlYlZpZXcubW0KQEAgLTUzOSw3ICs1MzksNyBAQCBDb250ZXh0TWVudUNsaWNrKCBISVdl
YlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiAgICAgTlNQb2ludCBsb2NhdGlvbiA9
IE5TTWFrZVBvaW50KHBvaW50LngsIFt3aW5kb3cgZnJhbWVdLnNpemUuaGVpZ2h0IC0gcG9pbnQu
eSk7CiAgICAgCiAgICAgLy8gTWFrZSB1cCBhbiBldmVudCB3aXRoIHRoZSBwb2ludCBhbmQgc2Vu
ZCBpdCB0byB0aGUgd2luZG93LgotICAgIE5TRXZlbnQgKmtpdEV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24KKyAgICBOU0V2ZW50ICpraXRFdmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246bG9jYXRp
b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczow
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0
RXZlbnRUaW1lKGluRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
Yk5TRXZlbnRFeHRyYXMubSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNFdmVudEV4dHJh
cy5tCmluZGV4IGVlYjhjOTIxZDk0YjU4YmU0YmZjZmJmMTM1NGM4YWMwNWU1NGZjMGYuLmQ4ZmIy
YTFmNjE5YTkzNDVjOGQ2MzA3YzUzMzBlODVlYjBmMDY5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCkBAIC0yOSwxNiArMjksMTQgQEAKICNpZiAhUExBVEZP
Uk0oSU9TKQogCiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViTlNFdmVudEV4dHJhcy5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbXBs
ZW1lbnRhdGlvbiBOU0V2ZW50IChXZWJFeHRyYXMpCiAKIC0oQk9PTClfd2ViX2lzS2V5RXZlbnQ6
KHVuaWNoYXIpa2V5CiB7CiAgICAgaW50IHR5cGUgPSBbc2VsZiB0eXBlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAodHlwZSAhPSBOU0tleURvd24gJiYgdHlw
ZSAhPSBOU0tleVVwKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICh0eXBl
ICE9IE5TRXZlbnRUeXBlS2V5RG93biAmJiB0eXBlICE9IE5TRXZlbnRUeXBlS2V5VXApCiAgICAg
ICAgIHJldHVybiBOTzsKICAgICAKICAgICBOU1N0cmluZyAqY2hhcnMgPSBbc2VsZiBjaGFyYWN0
ZXJzSWdub3JpbmdNb2RpZmllcnNdOwpAQCAtNjcsMTAgKzY1LDcgQEAgLSAoQk9PTClfd2ViX2lz
RXNjYXBlS2V5RXZlbnQKIAogLSAoQk9PTClfd2ViX2lzT3B0aW9uVGFiS2V5RXZlbnQKIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gKFtzZWxmIG1vZGlm
aWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSAmJiBbc2VsZiBfd2ViX2lzVGFiS2V5RXZl
bnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW3NlbGYgbW9k
aWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSAmJiBbc2VsZiBfd2ViX2lz
VGFiS2V5RXZlbnRdOwogfQogCiAtIChCT09MKV93ZWJfaXNSZXR1cm5PckVudGVyS2V5RXZlbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0gYi9T
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TVmlld0V4dHJhcy5tCmluZGV4IDNkYzhmN2Y3YzFm
YTQ2NmUxYzdiYjY2MzUwNzEyMDJiMGJmODAyZTcuLjc0ODkwZDVlMjdkZTY5NmExNGI5NjgxZmQ5
ZGIyNmZmYThmYmViNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNW
aWV3RXh0cmFzLm0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1ZpZXdFeHRyYXMu
bQpAQCAtMzgsNiArMzgsNyBAQAogCiAjaWYgIVBMQVRGT1JNKElPUykKICNpbXBvcnQgPFdlYktp
dExlZ2FjeS9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Mp
CkBAIC04MiwxMiArODMsOSBAQCAtIChCT09MKV93ZWJfZHJhZ1Nob3VsZEJlZ2luRnJvbU1vdXNl
RG93bjooTlNFdmVudCAqKW1vdXNlRG93bkV2ZW50CiAgICAgTlNFdmVudCAqbmV4dEV2ZW50LCAq
Zmlyc3RFdmVudCwgKmRyYWdFdmVudCwgKm1vdXNlVXA7CiAgICAgQk9PTCBkcmFnSXQ7CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW21vdXNlRG93bkV2ZW50
IHR5cGVdICE9IE5TTGVmdE1vdXNlRG93bikgeworICAgIGlmIChbbW91c2VEb3duRXZlbnQgdHlw
ZV0gIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CiAgICAgICAgIHJldHVybiBOTzsKICAg
ICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBuZXh0RXZlbnQgPSBuaWw7
CiAgICAgZmlyc3RFdmVudCA9IG5pbDsKQEAgLTk1LDkgKzkzLDcgQEAgLSAoQk9PTClfd2ViX2Ry
YWdTaG91bGRCZWdpbkZyb21Nb3VzZURvd246KE5TRXZlbnQgKiltb3VzZURvd25FdmVudAogICAg
IG1vdXNlVXAgPSBuaWw7CiAgICAgZHJhZ0l0ID0gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICB3aGlsZSAoKG5leHRFdmVudCA9IFtbc2VsZiB3aW5kb3ddIG5l
eHRFdmVudE1hdGNoaW5nTWFzazooTlNMZWZ0TW91c2VVcE1hc2sgfCBOU0xlZnRNb3VzZURyYWdn
ZWRNYXNrKQorICAgIHdoaWxlICgobmV4dEV2ZW50ID0gW1tzZWxmIHdpbmRvd10gbmV4dEV2ZW50
TWF0Y2hpbmdNYXNrOihOU0V2ZW50TWFza0xlZnRNb3VzZVVwIHwgTlNFdmVudE1hc2tMZWZ0TW91
c2VEcmFnZ2VkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW50aWxEYXRlOmV4cGlyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluTW9kZTpOU0V2ZW50VHJhY2tpbmdSdW5Mb29wTW9k
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXF1ZXVlOllFU10pICE9IG5pbCkgewpAQCAtMTA1LDcgKzEwMSw3IEBAIC0gKEJPT0wpX3dlYl9k
cmFnU2hvdWxkQmVnaW5Gcm9tTW91c2VEb3duOihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAg
ICAgICAgICAgIGZpcnN0RXZlbnQgPSBuZXh0RXZlbnQ7CiAgICAgICAgIH0KIAotICAgICAgICBp
ZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURyYWdnZWQpIHsKKyAgICAgICAgaWYg
KFtuZXh0RXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkKSB7CiAgICAg
ICAgICAgICBmbG9hdCBkZWx0YXggPSBBQlMoW25leHRFdmVudCBsb2NhdGlvbkluV2luZG93XS54
IC0gW21vdXNlRG93bkV2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLngpOwogICAgICAgICAgICAgZmxv
YXQgZGVsdGF5ID0gQUJTKFtuZXh0RXZlbnQgbG9jYXRpb25JbldpbmRvd10ueSAtIFttb3VzZURv
d25FdmVudCBsb2NhdGlvbkluV2luZG93XS55KTsKICAgICAgICAgICAgIGRyYWdFdmVudCA9IG5l
eHRFdmVudDsKQEAgLTExOSwxMiArMTE1LDExIEBAIC0gKEJPT0wpX3dlYl9kcmFnU2hvdWxkQmVn
aW5Gcm9tTW91c2VEb3duOihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAgICAgICAgICAgICAg
ICBkcmFnSXQgPSBZRVM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZVVwKSB7Cisg
ICAgICAgIH0gZWxzZSBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZVVwKSB7CiAgICAgICAgICAgICBtb3VzZVVwID0gbmV4dEV2ZW50OwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAg
ICAvLyBTaW5jZSB3ZSd2ZSBiZWVuIGRlcXVldWluZyB0aGUgZXZlbnRzIChJZiB3ZSBkb24ndCwg
d2UnbGwgbmV2ZXIgc2VlIHRoZSBtb3VzZSB1cC4uLiksCiAgICAgLy8gd2UgbmVlZCB0byBwdXNo
IHNvbWUgb2YgdGhlIGV2ZW50cyBiYWNrIG9uLiAgSXQgbWFrZXMgc2Vuc2UgdG8gcHV0IHRoZSBm
aXJzdCBhbmQgbGFzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYWQ1OTM2OTZkNGI5YTk3
NjZhM2NiY2UwM2VhZDZlYWZkMDc5NTc5Li4yYTQyYzczM2Q3ZGViN2JlYjA3MTQ1MDk2MGJkZWIx
MTVjN2VhODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtMjMwLDEwICsyMzAsNyBAQCB2
b2lkIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1f
cGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwog
ICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xk
ZXJXaW5kb3cgPSBhZG9wdE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5p
dFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRl
cmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNd
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93
ID0gYWRvcHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1h
c2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsK
IAogICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVBY3Rp
dmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVz
aW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUo
KTsgfV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlhZTdh
MTc3ZTQ1MTJmNDU2NDFkYWEyNDM3ZDRjOS4uMzZkYmJlYzYyNGVlYjA1NGYwNjJhMDI4NDEwMDI5
YmYwOGU0MjlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtNDY1LDE1ICs0
NjUsMTIgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnN5bnRoZXRpY0tleURv
d25XaXRoQ29tbWFuZE1vZGlmaWVyKGludCBrZXlDb2QKIHsKICAgICBOU0RhdGEgKmNoYXJhY3Rl
cnNEYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiZjaGFyYWN0ZXIgbGVuZ3RoOjFdOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgX1dLUEhQbHVnaW5JbnN0YW5j
ZUtleWJvYXJkRXZlbnQobV9wbHVnaW5Ib3N0UHJveHktPnBvcnQoKSwgbV9wbHVnaW5JRCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTlNEYXRlIHRpbWVJbnRlcnZhbFNp
bmNlUmVmZXJlbmNlRGF0ZV0sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5QQ29jb2FFdmVudEtleURvd24sIE5TQ29tbWFuZEtleU1hc2ssCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTlBDb2NvYUV2ZW50S2V5RG93biwgTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rf
Y2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRh
IGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3Ro
XSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIGtleUNvZGUs
IGNoYXJhY3Rlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHZvaWQgTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRz
Y2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJI
b3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggMzc2NjcyYjY4NjczN2M3NzNlZGM2ZGY2
ODRiMjg3OTgyOTY0ZjU0MS4uZjYxYjcyMzEwZDI0MDlkYTBiODMwMjU1Y2IwODQ2OWU5M2Y2ZGEy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVk
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNDQzLDEwICs0NDMsNyBAQCAt
ICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVjdAogewogICAgIGlmIChfY2FjaGVkU25hcHNob3Qp
IHsKICAgICAgICAgTlNSZWN0IHNvdXJjZVJlY3QgPSB7IE5TWmVyb1BvaW50LCBbX2NhY2hlZFNu
YXBzaG90LmdldCgpIHNpemVdIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgZHJhd0luUmVjdDpbc2VsZiBib3VuZHNd
IGZyb21SZWN0OnNvdXJjZVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFj
dGlvbjoxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW19jYWNoZWRT
bmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVj
dCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLm1t
CmluZGV4IGYyZDdlOWY0MWY2ZWJkNWI5Y2I4MzVlZDYyZGMxM2ExZmFhMmQ4N2EuLjY4NTY3YjMz
OTRkZDgxYWU5ZjUxOTc0MTg5OTRkYmQyOGYzZWIyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxl
ckNhcmJvbi5tbQpAQCAtNjIsMjIgKzYyLDIyIEBAIHN0YXRpYyBFdmVudE1vZGlmaWVycyBtb2Rp
ZmllcnNGb3JFdmVudChOU0V2ZW50ICpldmVudCkKICAgICAKICAgICBtb2RpZmllcnMgPSAwOwog
ICAgIAotICAgIGlmIChldmVudFR5cGUgIT0gTlNMZWZ0TW91c2VEb3duICYmIGV2ZW50VHlwZSAh
PSBOU1JpZ2h0TW91c2VEb3duKQorICAgIGlmIChldmVudFR5cGUgIT0gTlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duICYmIGV2ZW50VHlwZSAhPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duKQogICAg
ICAgICBtb2RpZmllcnMgfD0gYnRuU3RhdGU7CiAgICAgCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiBOU0NvbW1hbmRLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBjbWRLZXk7CiAgICAgCi0gICAg
aWYgKG1vZGlmaWVyRmxhZ3MgJiBOU1NoaWZ0S2V5TWFzaykKKyAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkKICAgICAgICAgbW9kaWZpZXJzIHw9IHNoaWZ0
S2V5OwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FscGhhU2hpZnRLZXlNYXNrKQorICAg
IGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrKQogICAgICAg
ICBtb2RpZmllcnMgfD0gYWxwaGFMb2NrOwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0Fs
dGVybmF0ZUtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uKQogICAgICAgICBtb2RpZmllcnMgfD0gb3B0aW9uS2V5OwogCi0gICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0NvbnRyb2xLZXlNYXNrIHx8IGV2ZW50VHlwZSA9PSBOU1JpZ2h0TW91
c2VEb3duKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRy
b2wgfHwgZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24pCiAgICAgICAgIG1v
ZGlmaWVycyB8PSBjb250cm9sS2V5OwogICAgIAogICAgIHJldHVybiBtb2RpZmllcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRI
YW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1
Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KaW5kZXggYTFkMTU5YWY5NGUxNDg5YTQ4YjA5OTIxMDhk
MDNmMzk4MDVmMjk5Ni4uZGUyMDE4OWEzN2RjMDkyODc4MmU4NjFiMmE2OWEwM2M3NjA4ZTE3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2
ZW50SGFuZGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0
c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbQpAQCAtMTYxLDEwICsxNjEsNyBAQCB2b2lk
IFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OnN5bnRoZXRpY0tleURvd25XaXRo
Q29tbWFuZE1vZGlmaWVyKGludAogICAgIAogICAgIE5QQ29jb2FFdmVudCBldmVudDsKICAgICBp
bml0aWFsaXplRXZlbnQoJmV2ZW50LCBOUENvY29hRXZlbnRLZXlEb3duKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBldmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdz
ID0gTlNDb21tYW5kS2V5TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBl
dmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdzID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7
CiAgICAgZXZlbnQuZGF0YS5rZXkua2V5Q29kZSA9IGtleUNvZGU7CiAgICAgZXZlbnQuZGF0YS5r
ZXkuaXNBUmVwZWF0ID0gZmFsc2U7CiAgICAgZXZlbnQuZGF0YS5rZXkuY2hhcmFjdGVycyA9IChO
UE5TU3RyaW5nICopY2hhcmFjdGVycy5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQppbmRleCBjNDY2NzBiNGQ3OWQ4Y2U4NGZiZDQx
MTU4ZmI3MzA4MGFlODA0NzliLi42MzBhZDg1ZjA2NDRhNDZjMWQxYTk3ZTdlODZhMThjNjVlY2Ix
NWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1l
bnVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51
TWFjLm1tCkBAIC05MCwxNyArOTAsMTEgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkK
ICAgICAgICAgfQogCiAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4g
cGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdy
YXBoU3R5bGVdIG11dGFibGVDb3B5XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rp
b24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmlnaHRUZXh0QWxpZ25tZW50XTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNl
dEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1RleHRBbGlnbm1lbnRMZWZ0
IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3Jp
dGluZ0RpcmVjdGlvbiA9IHN0eWxlLnRleHREaXJlY3Rpb24oKSA9PSBMVFIgPyBOU1dyaXRpbmdE
aXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAg
ICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246d3JpdGluZ0RpcmVj
dGlvbl07CiAgICAgICAgIGlmIChzdHlsZS5oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgUmV0YWluUHRy
PE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxs
b2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNUZXh0V3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAg
ICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tO
U051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1dyaXRp
bmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IHdy
aXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0TlMoW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9i
amVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxdKTsKICAgICAgICAgICAgIFth
dHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJyYXkuZ2V0KCkgZm9yS2V5Ok5T
V3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAgICB9CkBAIC0yMDYsMTggKzIw
MCwxNSBAQCB2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZp
ZXcqIHYsIGludCBpbmRleCkKIAogICAgIE5TQ29udHJvbFNpemUgY29udHJvbFNpemU7CiAgICAg
c3dpdGNoIChtX2NsaWVudC0+bWVudVN0eWxlKCkubWVudVNpemUoKSkgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVu
dVNpemVOb3JtYWw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNSZWd1bGFyQ29udHJvbFNpemU7
CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDoKLSAgICAg
ICAgY29udHJvbFNpemUgPSBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXpl
ID0gTlNDb250cm9sU2l6ZVNtYWxsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvcHVwTWVu
dVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaToKLSAgICAgICAgY29udHJvbFNpemUgPSBOU01pbmlD
b250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplTWluaTsKICAg
ICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAgICAg
V0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHIpKSwgZHVtbXlWaWV3
LmdldCgpLCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xTaXplLCAhbV9jbGllbnQtPm1l
bnVTdHlsZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQppbmRleCA5
MTRkOGUwNjNlOGViMGZjYTllYWU5ZDdiYmJjODFmNjFiN2I4OGQ2Li4yNGU4MDQxMDMxNzIwNzVl
MWM2NmE5OTljNDQ2NjM4MTk0YjdhMzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQpAQCAtMjY5LDEwICsy
NjksNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50OjpzaG93Q29udGV4dE1lbnUoKQogCiAg
ICAgTlNWaWV3KiB2aWV3ID0gZnJhbWVWaWV3LT5kb2N1bWVudFZpZXcoKTsKICAgICBJbnRQb2lu
dCBwb2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1dpbmRvdyhwYWdlLT5jb250ZXh0TWVudUNv
bnRyb2xsZXIoKS5oaXRUZXN0UmVzdWx0KCkucm91bmRlZFBvaW50SW5Jbm5lck5vZGVGcmFtZSgp
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VEb3duIGxvY2F0aW9u
OnBvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W1t2aWV3IHdp
bmRvd10gd2luZG93TnVtYmVyXSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEg
cHJlc3N1cmU6MV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCog
ZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNl
RG93biBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVt
YmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0gY29udGV4dDowIGV2ZW50TnVtYmVyOjAg
Y2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwogCiAgICAgLy8gU2hvdyB0aGUgY29udGV4dHVhbCBt
ZW51IGZvciB0aGlzIGV2ZW50LgogICAgIGJvb2wgaXNTZXJ2aWNlc01lbnU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCmluZGV4IDExNDc2YTAzMjc2ZWRkOTRlNzU1NTEzOTMwYWI0NjE5YmNlZGY5NTMuLmYwYjMx
MmZiZDMwYzFmMjcxYjkwM2Q3MDQzNzc1MmIzMGY1M2IzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBA
IC0xNTYxLDE3ICsxNTYxLDE0IEBAIE5TRGljdGlvbmFyeSAqV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmFjdGlvbkRpY3Rpb25hcnkoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0CiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICBjb25zdCBVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0g
ZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0X2Nhc3Q8RXZlbnQqPihldmVudCkpOwogICAgIGlm
IChrZXlTdGF0ZUV2ZW50ICYmIGtleVN0YXRlRXZlbnQtPmlzVHJ1c3RlZCgpKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5j
dHJsS2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29udHJvbEtleU1hc2s7
CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9s
OwogICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+YWx0S2V5KCkpCi0gICAgICAgICAgICBtb2Rp
ZmllckZsYWdzIHw9IE5TQWx0ZXJuYXRlS2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICAgICAgaWYgKGtleVN0YXRlRXZl
bnQtPnNoaWZ0S2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlN
YXNrOworICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hp
ZnQ7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5tZXRhS2V5KCkpCi0gICAgICAgICAgICBt
b2RpZmllckZsYWdzIHw9IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdD
b21tYW5kOwogICAgIH0KICNlbHNlCiAgICAgLy8gTm8gbW9kaWZpZXIgZmxhZ3Mgb24gaU9TIHJp
Z2h0IG5vdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDkwNzg3ZDYyMGIzODFlNTM4YzdiMWFkZGM3NmYyZDI5
YzU5MzIyMDkuLmIzY2I2YjlhNzc0NTBiMjFmYzljN2U2ZGFiZjQyZGNjOTFmOTY0MWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQubW0KQEAgLTE5MSwxMCArMTkxLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudDo6YXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2YWlsYWJsZSkKIAogYm9vbCBX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKCkKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1ttX2Zyb250ZW5kV2luZG93Q29udHJvbGxl
ciB3aW5kb3ddIHN0eWxlTWFza10gJiBOU0Z1bGxTY3JlZW5XaW5kb3dNYXNrKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250cm9sbGVy
IHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TV2luZG93U3R5bGVNYXNrRnVsbFNjcmVlbikKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIGNhbkF0dGFjaFdpbmRvdygpOwpAQCAtNDY1
LDEwICs0NjIsNyBAQCAtIChOU1dpbmRvdyAqKXdpbmRvdwogICAgIGlmICh3aW5kb3cpCiAgICAg
ICAgIHJldHVybiB3aW5kb3c7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBOU1VJbnRlZ2VyIHN0eWxlTWFzayA9IE5TVGl0bGVkV2luZG93TWFzayB8IE5TQ2xvc2Fi
bGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdp
bmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNXaW5kb3dTdHls
ZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHlsZU1h
c2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5kb3dT
dHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogICAgIHdpbmRvdyA9IFtbTlNXaW5kb3cgYWxs
b2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBpbml0aWFsV2luZG93V2lk
dGgsIGluaXRpYWxXaW5kb3dIZWlnaHQpIHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbd2luZG93IHNldERlbGVnYXRlOnNl
bGZdOwogICAgIFt3aW5kb3cgc2V0TWluU2l6ZTpOU01ha2VTaXplKG1pbmltdW1XaW5kb3dXaWR0
aCwgbWluaW11bVdpbmRvd0hlaWdodCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJ
bnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQppbmRleCAwMmE3NTZmNzY3NzMxNWM2MjJkZDgx
ZDk5YTI5ZmFjM2ZiNWJmOWUyLi42MWM2YWViODZiZDhkOWU0MThmMDMyNGJmYTY2ZGQxM2Y5N2Fk
NzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhp
Z2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhp
Z2hsaWdodC5tbQpAQCAtOTEsMTAgKzkxLDcgQEAgLSAoaWQpaW5pdFdpdGhUYXJnZXRWaWV3OihO
U1ZpZXcgKil0YXJnZXRWaWV3IGluc3BlY3RvckNvbnRyb2xsZXI6KEluc3BlY3RvckNvbnQKICAg
ICBfaW5zcGVjdG9yQ29udHJvbGxlciA9IGluc3BlY3RvckNvbnRyb2xsZXI7CiAKICNpZiAhUExB
VEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGludCBz
dHlsZU1hc2sgPSBOU0JvcmRlcmxlc3NXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGludCBzdHlsZU1hc2sgPSBOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3M7
CiAgICAgTlNSZWN0IGNvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVS
ZWN0OltzZWxmIF9jb21wdXRlSGlnaGxpZ2h0V2luZG93RnJhbWVdIHN0eWxlTWFzazpzdHlsZU1h
c2tdOwogICAgIF9oaWdobGlnaHRXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENv
bnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbX2hpZ2hsaWdodFdpbmRvdyBzZXRCYWNr
Z3JvdW5kQ29sb3I6W05TQ29sb3IgY2xlYXJDb2xvcl1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0UHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXRQcmVmaXgu
aAppbmRleCA2NmE1ZmNmZDk3YWYwZWE0NmM0YmI1N2Q2YTc0NmM4MDVmYzBjN2MzLi41MTY2NzYy
YTk4NjAzNzBiOTMzZjIyMjgxMDZiODVkYjRjNWVlMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJLaXRQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXRQcmVm
aXguaApAQCAtNzYsNyArNzYsMTAgQEAgdHlwZWRlZiBmbG9hdCBDR0Zsb2F0OwogCiAjaWZkZWYg
X19PQkpDX18KICNpZiAhVEFSR0VUX09TX0lQSE9ORQorI2lmIFVTRShBUFBLSVQpCiAjaW1wb3J0
IDxDb2NvYS9Db2NvYS5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CisjZW5kaWYKICNlbHNlCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZVZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQpp
bmRleCA1ZWMxOTc4NWRhNzI5N2IxYTI0NGM1NzYzMjA3MGM0YmRlOTQ2YjA1Li5kNzIwYzdhMGY1
ZDFiNTQ4ODQ4ZDE0MmZhMDcxYjQ3ZWI1Nzk0OWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lVmlldy5tbQpAQCAtOTE1LDkgKzkxNSw3IEBAIC0gKHZvaWQpa2V5RG93bjoo
V2ViRXZlbnQgKilldmVudAogICAgIEJPT0wgY2FsbFN1cGVyID0gWUVTOwogICAgIEZyYW1lKiBj
b3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKICAgICBCT09MIG1haW50YWluc0JhY2tGb3J3
YXJkTGlzdCA9IGNvcmVGcmFtZSAmJiBzdGF0aWNfY2FzdDxCYWNrRm9yd2FyZExpc3QqPihjb3Jl
RnJhbWUtPnBhZ2UoKS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPmVuYWJsZWQoKSA/IFlFUyA6
IE5POwotICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCiAgICAgY291
bnQgPSBbY2hhcmFjdGVycyBsZW5ndGhdOwogICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGNv
dW50OyArK2luZGV4KSB7CiAgICAgICAgIHN3aXRjaCAoW2NoYXJhY3RlcnMgY2hhcmFjdGVyQXRJ
bmRleDppbmRleF0pIHsKQEAgLTkyOCw3ICs5MjYsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2
ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gVGhpcyBv
ZGQgYmVoYXZpb3IgbWF0Y2hlcyBzb21lIGV4aXN0aW5nIGJyb3dzZXJzLAogICAgICAgICAgICAg
ICAgIC8vIGluY2x1ZGluZyBXaW5kb3dzIElFCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiBOU1NoaWZ0S2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZs
YWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KSB7CiAgICAgICAgICAgICAgICAgICAgIFtz
ZWxmIF9nb0ZvcndhcmRdOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgICAgIFtzZWxmIF9nb0JhY2tdOwpAQCAtOTQzLDcgKzk0MSw3IEBAIC0gKHZvaWQpa2V5RG93
bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAgICAgICAg
ICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpIHsKICAg
ICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZVVwOm5pbF07CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsUGFnZURvd246bmls
XTsKQEAgLTk4NCw3ICs5ODIsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNVcEFycm93RnVuY3Rp
b25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29u
dHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgotICAgICAg
ICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlNDb250cm9s
S2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU0V2ZW50
TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgICAgICB9CkBAIC05OTgsOSArOTk2LDkgQEAgLSAodm9pZClrZXlEb3du
OihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlND
b21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNF
dmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Ny
b2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikgewog
ICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxMaW5lVXA6bmls
XTsKQEAgLTEwMDksNyArMTAwNyw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVu
dAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25BcnJvd0Z1
bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9y
IGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAg
ICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29u
dHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNF
dmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTAyMyw5ICsxMDIxLDkgQEAgLSAodm9pZClr
ZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNDb21tYW5kS2V5TWFzaykgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpIHsKICAgICAgICAgICAgICAgICAgICAgW3Nl
bGYgc2Nyb2xsVG9FbmRPZkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChtb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikgewog
ICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlRG93bjpuaWxdOwogICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbExpbmVEb3du
Om5pbF07CkBAIC0xMDM0LDEyICsxMDMyLDEyIEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU0xlZnRB
cnJvd0Z1bmN0aW9uS2V5OgogICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlm
dGVkIG9yIGNvbnRyb2wtYXJyb3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5j
ZS4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8
IE5TQ29udHJvbEtleU1hc2spKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiAoTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIENoZWNr
IGJhY2svZm9yd2FyZCByZWxhdGVkIGtleXMuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoIW1haW50YWluc0JhY2tGb3J3YXJkTGlzdCkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0x
MDUyLDcgKzEwNTAsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfcGFnZUhvcml6b250
YWxseTpZRVNdOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICAgICAgW3NlbGYgX3Njcm9sbExpbmVIb3Jpem9udGFsbHk6WUVTXTsKQEAgLTEwNjIsMTIg
KzEwNjAsMTIgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1bmN0aW9uS2V5Ogog
ICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGhhbmRsZSBzaGlmdGVkIG9yIGNvbnRyb2wtYXJy
b3cga2V5cyBoZXJlLCBzbyBsZXQgc3VwZXIgaGF2ZSBhIGNoYW5jZS4KLSAgICAgICAgICAgICAg
ICBpZiAobW9kaWZpZXJGbGFncyAmIChOU1NoaWZ0S2V5TWFzayB8IE5TQ29udHJvbEtleU1hc2sp
KSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNFdmVudE1vZGlmaWVy
RmxhZ1NoaWZ0IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIENoZWNrIGJhY2svZm9yd2FyZCByZWxh
dGVkIGtleXMuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRL
ZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1haW50YWluc0Jh
Y2tGb3J3YXJkTGlzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVT
OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDgwLDcgKzEwNzgsNyBAQCAt
ICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgaWYg
KG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBbc2VsZiBfcGFnZUhvcml6b250YWxseTpOT107CiAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfc2Ny
b2xsTGluZUhvcml6b250YWxseTpOT107CkBAIC0xMDkwLDcgKzEwODgsNiBAQCAtICh2b2lkKWtl
eURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBpZiAoY2FsbFN1cGVy
KSB7CiAgICAgICAgIFtzdXBlciBrZXlEb3duOmV2ZW50XTsKICAgICB9IGVsc2UgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0K
aW5kZXggOWZkOTU2NjE3ZjA3YzZjZjZmNDg1N2NjOWUyMjE0MGIyMTg4YjJlNC4uNzc0NTliM2Vl
MjA4MTM1OWQ1NjRmMzgxMjYwYjQ3MTA1MWQwZDFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCkBAIC04NiwxMSArODYs
OCBAQCBAaW1wbGVtZW50YXRpb24gV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIKICNwcmFnbWEgbWFy
ayBJbml0aWFsaXphdGlvbgogLSAoaWQpaW5pdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgogICAgIC8vIERvIG5vdCBkZWZlciB3aW5kb3cgY3JlYXRpb24sIHRvIG1ha2Ug
c3VyZSAtd2luZG93TnVtYmVyIGlzIGNyZWF0ZWQgKG5lZWRlZCBieSBXZWJXaW5kb3dTY2FsZUFu
aW1hdGlvbikuCi0gICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbV2ViQ29yZUZ1bGxTY3JlZW5XaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6TlNDbG9z
YWJsZVdpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tX
ZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU1plcm9S
ZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFdpbmRv
dzp3aW5kb3ddOwogICAgIFt3aW5kb3cgcmVsZWFzZV07CiAgICAgaWYgKCFzZWxmKQpAQCAtNDYy
LDEwICs0NTksNyBAQCAtICh2b2lkKV9zd2FwVmlldzooTlNWaWV3Kil2aWV3IHdpdGg6KE5TVmll
dyopb3RoZXJWaWV3CiAKIHN0YXRpYyBSZXRhaW5QdHI8TlNXaW5kb3c+IGNyZWF0ZUJhY2tncm91
bmRGdWxsc2NyZWVuV2luZG93KE5TUmVjdCBmcmFtZSkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFz
ayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW05TV2luZG93IGFsbG9j
XSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0Jv
cmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBb
d2luZG93IHNldE9wYXF1ZTpZRVNdOwogICAgIFt3aW5kb3cgc2V0QmFja2dyb3VuZENvbG9yOltO
U0NvbG9yIGJsYWNrQ29sb3JdXTsKICAgICBbd2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpO
T107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCA1NWYxYWUy
ZDQ1OGY1NjEzOTVmYzMyNmFhY2JjNjBmNGRiMzIxM2M0Li5lNDIzMDE4MjgzM2FmZTdlNDQ1OTg2
NTRjYzMxZWMyM2QwMWU2YmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KQEAgLTE0MCwxMiArMTQwLDEyIEBACiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiAj
aWYgIVBMQVRGT1JNKElPUykKKyNpbXBvcnQgIldlYk5TRXZlbnRFeHRyYXMuaCIKKyNpbXBvcnQg
IldlYk5TUGFzdGVib2FyZEV4dHJhcy5oIgogI2ltcG9ydCA8QXBwS2l0L05TQWNjZXNzaWJpbGl0
eS5oPgogI2ltcG9ydCA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL05TTWVudVNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5oPgotI2ltcG9ydCAiV2ViTlNFdmVudEV4dHJhcy5oIgotI2ltcG9y
dCAiV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmgiCiAjZW5kaWYKIAogI2ltcG9ydCA8UXVhcnR6Q29y
ZS9RdWFydHpDb3JlLmg+CkBAIC0xMzUxLDEyICsxMzUxLDkgQEAgLSAodm9pZClfcGFzdGVBc1Bs
YWluVGV4dFdpdGhQYXN0ZWJvYXJkOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkCiAKIC0gKHZv
aWQpX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6KE5TRXZlbnQg
KilmbGFnc0NoYW5nZWRFdmVudAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U01vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRp
b25PdXRzaWRlT2ZFdmVudFN0cmVhbQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3ND
aGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQogICAg
ICAgICBtb2RpZmllckZsYWdzOmZsYWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0
YW1wOmZsYWdzQ2hhbmdlZEV2ZW50LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2Vk
RXZlbnQud2luZG93TnVtYmVyCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVudE51bWJlcjow
IGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
ICAgICBbc2VsZiBtb3VzZU1vdmVkOmZha2VFdmVudF07CiB9CiAKQEAgLTE1MDYsMTAgKzE1MDMs
NyBAQCAtICh2b2lkKV9zZXRNb3VzZURvd25FdmVudDooV2ViRXZlbnQgKilldmVudAogI2VuZGlm
CiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBBU1NFUlQoIWV2ZW50IHx8IFtldmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURvd24g
fHwgW2V2ZW50IHR5cGVdID09IE5TUmlnaHRNb3VzZURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5T
T3RoZXJNb3VzZURvd24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFTU0VS
VCghZXZlbnQgfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biB8fCBb
ZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0g
PT0gTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bik7CiAjZWxzZQogICAgIEFTU0VSVCghZXZlbnQg
fHwgZXZlbnQudHlwZSA9PSBXZWJFdmVudE1vdXNlRG93bik7CiAjZW5kaWYKQEAgLTE2NjEsMTYg
KzE2NTUsMTcgQEAgLSAoaWQpX2JyaWRnZQogCiAtICh2b2lkKV91cGRhdGVNb3VzZW92ZXJXaXRo
RmFrZUV2ZW50CiB7CisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAgICBsb2NhdGlvbjpbW3NlbGYg
d2luZG93XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQg
KmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKLSAg
ICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVu
dCBtb3VzZUxvY2F0aW9uXV0KKyAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBt
b3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbW9k
aWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAg
dGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAg
ICB3aW5kb3dOdW1iZXI6W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVyXQogICAgICAgICBjb250
ZXh0Om51bGxwdHIKICAgICAgICAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6
MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBbc2VsZiBfdXBkYXRlTW91
c2VvdmVyV2l0aEV2ZW50OmZha2VFdmVudF07CiB9CkBAIC0xODY4LDExICsxODYzLDggQEAgLSAo
Qk9PTClfaW5zaWRlQW5vdGhlckhUTUxWaWV3CiAjaWYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBC
T09MIGlzUXVpY2tMb29rRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgY29uc3QgaW50IGtDR1NFdmVudFN5c3RlbVN1YnR5cGVI
b3RLZXlDb21iaW5hdGlvblJlbGVhc2VkID0gOTsKLSAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09
IE5TU3lzdGVtRGVmaW5lZCAmJiBbZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3Vi
dHlwZUhvdEtleUNvbWJpbmF0aW9uUmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9
PSBOU0V2ZW50VHlwZVN5c3RlbURlZmluZWQgJiYgW2V2ZW50IHN1YnR5cGVdID09IGtDR1NFdmVu
dFN5c3RlbVN1YnR5cGVIb3RLZXlDb21iaW5hdGlvblJlbGVhc2VkICYmIFtldmVudCBkYXRhMV0g
PT0gJ2xrdXAnOwogfQogI2VuZGlmCiAKQEAgLTE5MjgsMTQgKzE5MjAsMTEgQEAgLSAoTlNWaWV3
ICopaGl0VGVzdDooTlNQb2ludClwb2ludAogICAgIGVsc2UgewogICAgICAgICAvLyBGSVhNRTog
V2h5IGRvZXNuJ3QgdGhpcyBpbmNsdWRlIG1vdXNlIGVudGVyZWQvZXhpdGVkIGV2ZW50cywgb3Ig
b3RoZXIgbW91c2UgYnV0dG9uIGV2ZW50cz8KICAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbW3Nl
bGYgd2luZG93XSBjdXJyZW50RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgICAgICBjYXB0dXJlSGl0c09uU3Vidmlld3MgPSAhKFtldmVudCB0eXBlXSA9PSBO
U01vdXNlTW92ZWQKLSAgICAgICAgICAgIHx8IFtldmVudCB0eXBlXSA9PSBOU1JpZ2h0TW91c2VE
b3duCi0gICAgICAgICAgICB8fCAoW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biAmJiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgIT0gMCkKLSAgICAgICAg
ICAgIHx8IFtldmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZAorICAgICAgICBjYXB0dXJlSGl0
c09uU3Vidmlld3MgPSAhKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAg
ICAgICAgICAgIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCisg
ICAgICAgICAgICB8fCAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biAm
JiBbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKKyAg
ICAgICAgICAgIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZAogICAg
ICAgICAgICAgfHwgaXNRdWlja0xvb2tFdmVudChldmVudCkpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgIH0KIAogICAgIGlmICghY2FwdHVyZUhpdHNPblN1YnZpZXdzKSB7CkBA
IC0yMDIzLDkgKzIwMTIsNyBAQCAtICh2b2lkKV9yZW1vdmVUcmFja2luZ1JlY3RzOihOU1RyYWNr
aW5nUmVjdFRhZyAqKXRhZ3MgY291bnQ6KGludCljb3VudAogLSAodm9pZClfc2VuZFRvb2xUaXBN
b3VzZUV4aXRlZAogewogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFj
a2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0
aFR5cGU6TlNNb3VzZUV4aXRlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVu
dGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUV4aXRlZAogICAgICAgICBsb2Nh
dGlvbjpOU01ha2VQb2ludCgwLCAwKQogICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAg
dGltZXN0YW1wOjAKQEAgLTIwMzQsMTYgKzIwMjEsMTMgQEAgLSAodm9pZClfc2VuZFRvb2xUaXBN
b3VzZUV4aXRlZAogICAgICAgICBldmVudE51bWJlcjowCiAgICAgICAgIHRyYWNraW5nTnVtYmVy
OlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgIHVzZXJEYXRhOl9wcml2YXRlLT50cmFja2luZ1Jl
Y3RVc2VyRGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW19wcml2YXRl
LT50cmFja2luZ1JlY3RPd25lciBtb3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQogCiAtICh2b2lk
KV9zZW5kVG9vbFRpcE1vdXNlRW50ZXJlZAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgogICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051
bWJlciwgYW5kIHVzZXJEYXRhLgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVu
dGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUVudGVyZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFbnRl
cmVkCiAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6MAogICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjA1Myw3ICsyMDM3LDYgQEAgLSAodm9p
ZClfc2VuZFRvb2xUaXBNb3VzZUVudGVyZWQKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJ
TkdfUkVDVF9UQUcKICAgICAgICAgdXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJE
YXRhXTsKICAgICBbX3ByaXZhdGUtPnRyYWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtl
RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogI2VuZGlmIC8vICFQTEFU
Rk9STShJT1MpCiAKQEAgLTIwODksMjEgKzIwNzIsMTggQEAgLSAoTlNTdHJpbmcgKil2aWV3OihO
U1ZpZXcgKil2aWV3IHN0cmluZ0ZvclRvb2xUaXA6KE5TVG9vbFRpcFRhZyl0YWcgcG9pbnQ6KE5T
UG8KIHN0YXRpYyBib29sIG1vdXNlRXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2
ZW50KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBj
YXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAg
ICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6
Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVy
TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5T
T3RoZXJNb3VzZURyYWdnZWQ6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6
CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
T3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIH0KIApAQCAtMjEzNCwxNiArMjExNCwxNCBAQCAtICh2b2lkKV91cGRhdGVNb3VzZW92
ZXJXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogICAgICAgICBmbG9hdCB5U2Nyb2xsID0gdmlz
aWJsZVJlY3Qub3JpZ2luLnk7CiAgICAgICAgIGZsb2F0IHhTY3JvbGwgPSB2aXNpYmxlUmVjdC5v
cmlnaW4ueDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQK
KyAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVNb3VzZU1vdmVkCiAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgtMSAt
IHhTY3JvbGwsIC0xIC0geVNjcm9sbCkKICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0Fw
cCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICB0aW1lc3RhbXA6W05T
RGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgICAgICB3aW5kb3dO
dW1iZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXQogICAgICAgICAgICAgY29udGV4dDpu
dWxscHRyCiAgICAgICAgICAgICBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTow
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwogICAgICAgICBpZiAoRnJhbWUqIGxh
c3RIaXRDb3JlRnJhbWUgPSBjb3JlKFtsYXN0SGl0VmlldyBfZnJhbWVdKSkKICAgICAgICAgICAg
IGxhc3RIaXRDb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoZXZlbnQsIFtbc2Vs
ZiBfd2ViVmlld10gX3ByZXNzdXJlRXZlbnRdKTsKICAgICB9CkBAIC0yMzMwLDE2ICsyMzA4LDE4
IEBAIC0gKHZvaWQpX2F1dG9zY3JvbGwKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQorICAg
IE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQKKyAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10KICNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQg
PSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEcmFnZ2VkCi0gICAgICAg
IGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91
c2VMb2NhdGlvbl1dCisgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VM
b2NhdGlvbl1dCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVz
dGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2lu
ZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpu
dWxscHRyCiAgICAgICAgIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiAgICAgW3NlbGYgbW91c2VEcmFnZ2VkOmZh
a2VFdmVudF07CiAjZW5kaWYKIH0KQEAgLTMzNTQsMTIgKzMzMzQsOSBAQCAtIChCT09MKWFjY2Vw
dHNGaXJzdFJlc3BvbmRlcgogICAgIC8vIG9yIGZyb20gY2FsbHMgYmFjayBmcm9tIFdlYkNvcmUg
b25jZSB3ZSBiZWdpbiBtb3VzZS1kb3duIGV2ZW50IGhhbmRsaW5nLgogI2lmICFQTEFURk9STShJ
T1MpICAgICAgICAgICAgCiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5
cGVdID09IE5TTGVmdE1vdXNlRG93bgorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duCiAgICAgICAgICAgICAmJiAhX3ByaXZhdGUtPmhhbmRsaW5nTW91c2VE
b3duRXZlbnQKICAgICAgICAgICAgICYmIE5TUG9pbnRJblJlY3QoW2V2ZW50IGxvY2F0aW9uSW5X
aW5kb3ddLCBbc2VsZiBjb252ZXJ0UmVjdDpbc2VsZiB2aXNpYmxlUmVjdF0gdG9WaWV3Om5pbF0p
KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIHJldHVybiBOTzsKICAg
ICB9CiAjZWxzZQpAQCAtMzUyOCwxMyArMzUwNSwxMCBAQCAtICh2b2lkKXZpZXdEaWRNb3ZlVG9X
aW5kb3cKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIGlmICghX3ByaXZhdGUtPmZsYWdz
Q2hhbmdlZEV2ZW50TW9uaXRvcikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgICAgICAgICAgX3ByaXZhdGUtPmZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2
ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdlZE1h
c2sgaGFuZGxlcjpeKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CisgICAgICAgICAgICBf
cHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25p
dG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6
XihOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewogICAgICAgICAgICAgICAgIFtzZWxmIF9w
b3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50OmZsYWdzQ2hhbmdlZEV2
ZW50XTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CiAgICAgICAg
ICAgICB9XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogICAgIH0g
ZWxzZSB7CiAgICAgICAgIFtOU0V2ZW50IHJlbW92ZU1vbml0b3I6X3ByaXZhdGUtPmZsYWdzQ2hh
bmdlZEV2ZW50TW9uaXRvcl07CkBAIC00NTQwLDExICs0NTE0LDEyIEBAIC0gKHZvaWQpbW91c2VE
b3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1h
bmFnZXIgPSBbTlNJbnB1dE1hbmFnZXIgY3VycmVudElucHV0TWFuYWdlcl07CiAKICAgICBpZiAo
IVtjdXJyZW50SW5wdXRNYW5hZ2VyIHdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gfHwgIVtjdXJy
ZW50SW5wdXRNYW5hZ2VyIGhhbmRsZU1vdXNlRXZlbnQ6ZXZlbnRdKSB7CisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAgICAgICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIg
ZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5PIG1vdmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUg
d2ViIHBhZ2UgaGFuZGxlcyB0aGUgY29udGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6
IHJldHVybnMgbmlsLCB3ZSdsbCBnZXQgY29udHJvbCBjbGljayBldmVudHMgaGVyZS4KICAgICAg
ICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBwYXNzIHRoZW0gYWxvbmcgdG8gS0hUTUwgYSBzZWNvbmQg
dGltZS4KLSAgICAgICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5
TWFzaykpIHsKKyAgICAgICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ0NvbnRyb2wpKSB7CiAgICAgICAgICAgICBfcHJpdmF0ZS0+aWdub3JpbmdNb3Vz
ZURyYWdnZWRFdmVudHMgPSBOTzsKIAogICAgICAgICAgICAgLy8gTGV0IFdlYkNvcmUgZ2V0IGEg
Y2hhbmNlIHRvIGRlYWwgd2l0aCB0aGUgZXZlbnQuIFRoaXMgd2lsbCBjYWxsIGJhY2sgdG8gdXMK
QEAgLTQ1NTMsNyArNDUyOCw2IEBAIC0gKHZvaWQpbW91c2VEb3duOihXZWJFdmVudCAqKWV2ZW50
CiAgICAgICAgICAgICAgICAgY29yZWZyYW1lLT5ldmVudEhhbmRsZXIoKS5tb3VzZURvd24oZXZl
bnQsIFtbc2VsZiBfd2ViVmlld10gX3ByZXNzdXJlRXZlbnRdKTsKICAgICAgICAgfQogICAgIH0K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICNlbmRpZgogCiAgICAgX3ByaXZhdGUtPmhh
bmRsaW5nTW91c2VEb3duRXZlbnQgPSBOTzsKQEAgLTQ2NDIsNyArNDYxNiw3IEBAIC0gKHZvaWQp
ZHJhZ2dlZEltYWdlOihOU0ltYWdlICopYW5JbWFnZSBlbmRlZEF0OihOU1BvaW50KWFQb2ludCBv
cGVyYXRpb246KE5TRHJhCiAgICAgCiAgICAgLy8gT25jZSB0aGUgZHJhZ2dpbmcgbWFjaGluZXJ5
IGtpY2tzIGluLCB3ZSBubyBsb25nZXIgZ2V0IG1vdXNlIGRyYWdzIG9yIHRoZSB1cCBldmVudC4K
ICAgICAvLyBXZWJDb3JlIGV4cGVjdHMgdG8gZ2V0IGJhbGFuY2VkIGRvd24vdXAncywgc28gd2Ug
bXVzdCBmYWtlIHVwIGEgbW91c2V1cC4KLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAorICAgIE5TRXZlbnQgKmZha2VFdmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOndpbmRv
d01vdXNlTG9jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmll
ckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRl
cnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KQEAgLTQ4MTgsMTkgKzQ3OTIsMTIgQEAgc3RhdGljIFBh
c3NSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVG
cmFtZSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlEb3duOiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5
RG93bjogewogICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1FdmVudCA9IFBs
YXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpOwog
ICAgICAgICBwbGF0Zm9ybUV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2
ZW50OjpSYXdLZXlEb3duKTsKICAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShw
bGF0Zm9ybUV2ZW50LCBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAg
IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TS2V5VXA6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVw
OgogICAgICAgICByZXR1cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKFBsYXRmb3JtRXZlbnRGYWN0
b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpLCBjb3JlRnJhbWUtPmRvY3Vt
ZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAwOwpA
QCAtNTUyNCwxMSArNTQ5MSw4IEBAIC0gKEJPT0wpX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDoo
TlNFdmVudCAqKWV2ZW50CiAgICAgaWYgKCFbc2VsZiBfY2FuRWRpdF0pCiAgICAgICAgIHJldHVy
biBOTzsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAo
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdz
TWFzaykgIT0gTlNDb21tYW5kS2V5TWFzaykKKyAgICBpZiAoKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TRXZlbnRNb2RpZmllckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykgIT0gTlNF
dmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbZXZlbnQgY2hhcmFj
dGVyc107CiAgICAgaWYgKFtzdHJpbmcgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAImIiXSA9PSBO
U09yZGVyZWRTYW1lKSB7CkBAIC02NDQ4LDE0ICs2NDEyLDExIEBAIC0gKEJPT0wpX2ludGVycHJl
dEtleUV2ZW50OihLZXlib2FyZEV2ZW50KilldmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZp
bmdDb21tCiAgICAgICAgIHJldHVybiBOTzsKIAogICAgIE5TRXZlbnQgKm1hY0V2ZW50ID0gcGxh
dGZvcm1FdmVudC0+bWFjRXZlbnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICBpZiAoW21hY0V2ZW50IHR5cGVdID09IE5TS2V5RG93biAmJiBbX3ByaXZhdGUtPmNv
bXBsZXRpb25Db250cm9sbGVyIGZpbHRlcktleURvd246bWFjRXZlbnRdKQorICAgIGlmIChbbWFj
RXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlv
bkNvbnRyb2xsZXIgZmlsdGVyS2V5RG93bjptYWNFdmVudF0pCiAgICAgICAgIHJldHVybiBZRVM7
CiAgICAgCi0gICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKKyAgICBp
ZiAoW21hY0V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAgICBy
ZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgCiAgICAgcGFyYW1l
dGVycy5ldmVudCA9IGV2ZW50OwogICAgIF9wcml2YXRlLT5pbnRlcnByZXRLZXlFdmVudHNQYXJh
bWV0ZXJzID0gJnBhcmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlBERlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcu
bW0KaW5kZXggNzhmNTZlNDkxZTA4NmFhZTk4M2IzODA2OTlhNTUxNTdjZDk4ZmRiYS4uYTczMzBl
MTgwMDk2YmQ3MjVlYjZhMWNhMmU5MjkwNmUzYzFhNmQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUERGVmlldy5tbQpAQCAtMzIxLDEwICszMjEsNyBAQCAtIChOU1ZpZXcgKiloaXRU
ZXN0OihOU1BvaW50KXBvaW50CiAgICAgLy8gT3ZlcnJpZGUgaGl0VGVzdCBzbyB3ZSBjYW4gb3Zl
cnJpZGUgbWVudUZvckV2ZW50LgogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRF
dmVudF07CiAgICAgTlNFdmVudFR5cGUgdHlwZSA9IFtldmVudCB0eXBlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAodHlwZSA9PSBOU1JpZ2h0TW91c2VEb3du
IHx8ICh0eXBlID09IE5TTGVmdE1vdXNlRG93biAmJiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYg
TlNDb250cm9sS2V5TWFzaykpKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
ICh0eXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gfHwgKHR5cGUgPT0gTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnQ29udHJvbCkpKQogICAgICAgICByZXR1cm4gc2VsZjsKIAogICAgIHJldHVybiBbc3Vw
ZXIgaGl0VGVzdDpwb2ludF07CkBAIC0xMDA5LDM5ICsxMDA2LDMzIEBAIC0gKHZvaWQpUERGVmll
d1dpbGxDbGlja09uTGluazooUERGVmlldyAqKXNlbmRlciB3aXRoVVJMOihOU1VSTCAqKVVSTAog
ICAgIGludCBidXR0b24gPSBub0J1dHRvbjsKICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50OwogICAg
IHN3aXRjaCAoW25zRXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICAgICAgYnV0dG9uID0g
MDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAg
ICAgICAgICAgYnV0dG9uID0gMTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5T
T3RoZXJNb3VzZVVwOgotICAgICAgICAgICAgYnV0dG9uID0gW25zRXZlbnQgYnV0dG9uTnVtYmVy
XTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE5TS2V5RG93bjogewotICAgICAg
ICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNy
ZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKLSAgICAgICAgICAgIHBlLmRpc2Ft
YmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKLSAgICAgICAg
ICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCAwKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
VXA6CisgICAgICAgIGJ1dHRvbiA9IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlVXA6CisgICAgICAgIGJ1dHRvbiA9IDE7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgICAgIGJ1dHRvbiA9IFtuc0V2
ZW50IGJ1dHRvbk51bWJlcl07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlEb3duOiB7CisgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRmb3JtRXZl
bnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7CisgICAgICAg
IHBlLmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsK
KyAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGlm
IChidXR0b24gIT0gbm9CdXR0b24pIHsKICAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIDAs
IFtuc0V2ZW50IGNsaWNrQ291bnRdLCAwLCAwLCAwLCAwLAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgICAgICAwLCAwLAogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJv
bEtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJu
YXRlS2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlm
dEtleU1hc2ssCi0gICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFu
ZEtleU1hc2ssCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBbbnNF
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sLAorICAgICAg
ICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9u
LAorICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJG
bGFnU2hpZnQsCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kLAogICAgICAgICAgICAgYnV0dG9uLCAwLCBXZWJDb3JlOjpGb3Jj
ZUF0Q2xpY2ssIDAsIDAsIHRydWUpOwogICAgIH0KIApAQCAtMTE0OSw5ICsxMTQwLDcgQEAgLSAo
TlNFdmVudCAqKV9mYWtlS2V5RXZlbnRXaXRoRnVuY3Rpb25LZXk6KHVuaWNoYXIpZnVuY3Rpb25L
ZXkKICAgICAvLyBGSVhNRSA0NDAwNDgwOiB3aGVuIFBERlZpZXcgaW1wbGVtZW50cyB0aGUgc3Rh
bmRhcmQgc2Nyb2xsaW5nIHNlbGVjdG9ycyB0aGF0IHRoaXMKICAgICAvLyBtZXRob2QgaXMgdXNl
ZCB0byBtaW1pYywgd2UgY2FuIGVsaW1pbmF0ZSB0aGlzIG1ldGhvZCBhbmQgY2FsbCB0aGVtIGRp
cmVjdGx5LgogICAgIE5TU3RyaW5nICprZXlBc1N0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRo
Q2hhcmFjdGVyczomZnVuY3Rpb25LZXkgbGVuZ3RoOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIHJldHVybiBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5
RG93bgorICAgIHJldHVybiBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5
RG93bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TWmVyb1BvaW50CiAg
ICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTExNjEsNyArMTE1MCw2IEBAIC0gKE5TRXZlbnQgKilf
ZmFrZUtleUV2ZW50V2l0aEZ1bmN0aW9uS2V5Oih1bmljaGFyKWZ1bmN0aW9uS2V5CiAgICAgICAg
ICBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6a2V5QXNTdHJpbmcKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlzQVJlcGVhdDpOTwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
ZXlDb2RlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiAtICh2b2lkKV9s
b29rVXBJbkRpY3Rpb25hcnlGcm9tTWVudTooaWQpc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tCmluZGV4
IDQzODJiMDQ0NzRlNjBjOGMyMzczMzA0N2I4MTM5NjRhNGY3ODQyNjMuLmZkNGVmZjkzMDZkYWE5
YzhlNTdjMjU3NTBkZjAyYjc3NjY5NDk1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tCkBAIC0xMTIsMTAg
KzExMiw3IEBAIC0gKHZvaWQpX2J1aWxkVUkKICAgICBbc2Nyb2xsVmlldyBzZXREb2N1bWVudFZp
ZXc6X3RhYmxlVmlld107CiAgICAgW190YWJsZVZpZXcgcmVsZWFzZV07CiAgICAgCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgX3BvcHVwV2luZG93ID0gW1tOU1dpbmRv
dyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1hc2s6TlNCb3Jk
ZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9d
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIF9wb3B1cFdpbmRvdyA9IFtbTlNX
aW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6c2Nyb2xsRnJhbWUgc3R5bGVNYXNrOk5T
V2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6Tk9dOwogICAgIFtfcG9wdXBXaW5kb3cgc2V0QWxwaGFWYWx1ZTowLjg4Zl07CiAgICAg
W19wb3B1cFdpbmRvdyBzZXRDb250ZW50VmlldzpzY3JvbGxWaWV3XTsKICAgICBbc2Nyb2xsVmll
dyByZWxlYXNlXTsKQEAgLTE1NSw4ICsxNTIsOCBAQCAtICh2b2lkKV9wbGFjZVBvcHVwV2luZG93
OihOU1BvaW50KXRvcExlZnQKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAg
ICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNTY3JvbGxWaWV3IGZyYW1lU2l6ZUZvckNvbnRlbnRT
aXplOk5TTWFrZVNpemUobWF4V2lkdGgsIDEwMC4wZikgaGFzSG9yaXpvbnRhbFNjcm9sbGVyOk5P
IGhhc1ZlcnRpY2FsU2Nyb2xsZXI6WUVTIGJvcmRlclR5cGU6TlNOb0JvcmRlcl0ud2lkdGgpOwot
ICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JDb250ZW50UmVj
dDpOU01ha2VSZWN0KDAuMGYsIDAuMGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrXS5zaXplLndpZHRoKTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNXaW5kb3cgZnJhbWVSZWN0Rm9yQ29u
dGVudFJlY3Q6TlNNYWtlUmVjdCgwLjBmLCAwLjBmLCBtYXhXaWR0aCwgMTAwLjBmKSBzdHlsZU1h
c2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzXS5zaXplLndpZHRoKTsKICAgICAgICAgbWF4
V2lkdGggKz0gNS4wZjsKICAgICAgICAgd2luZG93RnJhbWUuc2l6ZS53aWR0aCA9IHN0ZDo6bWF4
KG1heFdpZHRoLCB3aW5kb3dGcmFtZS5zaXplLndpZHRoKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggN2NmYWE4N2I1NTZlYjQ3NmJmM2M1ZmVkNWUwM2U2OGZi
YTJkZTRiZi4uNTFkMGRkYjgwNjA4NDQ1Y2NhMzU1ZjM3ZjhhZWI4M2ViM2VjZWU1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNjA5NSwxMCArNjA5NSw3IEBAIC0gKERy
YWdBcHBsaWNhdGlvbkZsYWdzKWFwcGxpY2F0aW9uRmxhZ3M6KGlkIDxOU0RyYWdnaW5nSW5mbz4p
ZHJhZ2dpbmdJbmZvCiAgICAgICAgIGZsYWdzIHw9IERyYWdBcHBsaWNhdGlvbkhhc0F0dGFjaGVk
U2hlZXQ7CiAgICAgaWYgKFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VdID09IHNlbGYpCiAg
ICAgICAgIGZsYWdzIHw9IERyYWdBcHBsaWNhdGlvbklzU291cmNlOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZp
ZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TRXZl
bnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgIGZsYWdzIHw9IERyYWdBcHBsaWNhdGlvbklz
Q29weUtleURvd247CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERyYWdBcHBsaWNhdGlvbkZsYWdz
PihmbGFncyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxk
UHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFj
Lm1tCmluZGV4IDJlNjU4MDZkYjVkNjhmMGE0YTI4MmQzODNiOTZlN2I0NTE2YjkwNDAuLmZhNjI1
ZTM1OTc1NzY1ZTM1OWRkYTFmNGM0ZjcyOTNmNmQwZTJlYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCkBAIC0xOTcsMTAgKzE5Nyw3IEBAIHZvaWQg
Q2hpbGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKCkKICAgICBBU1NFUlQoW05TQXBwIGlzUnVu
bmluZ10pOwogICAgIFtOU0FwcCBzdG9wOm5pbF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRo
VHlwZTpOU0FwcGxpY2F0aW9uRGVmaW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0
eXBlOjAgZGF0YTE6MCBkYXRhMjowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUFwcGxpY2F0aW9uRGVmaW5lZCBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKSBtb2RpZmllckZs
YWdzOjAgdGltZXN0YW1wOjAuMCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBzdWJ0eXBlOjAg
ZGF0YTE6MCBkYXRhMjowXTsKICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1
ZV07CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2Vi
RXZlbnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3Rv
cnkubW0KaW5kZXggYTg1ZWZjYWVlOWE1MmQ4YzA0NTY2NmQ5NGM0OTE4NzBjYTY4YTdkMy4uOGIw
NmVlNzQ4OTY4M2EzMWI1MzU4MzdjNjE0MTQxMGVkZWZkY2FmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KQEAgLTYzLDc4ICs2Myw2OSBAQCBzdGF0
aWMgV2ViTW91c2VFdmVudDo6QnV0dG9uIGN1cnJlbnRNb3VzZUJ1dHRvbigpCiAKIHN0YXRpYyBX
ZWJNb3VzZUV2ZW50OjpCdXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtldmVu
dCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBO
U0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAg
ICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmln
aHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpS
aWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOworICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFdl
Yk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6Umln
aHRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VE
cmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TWlkZGxlQnV0dG9uOwogI2lm
IGRlZmluZWQoX19MUDY0X18pCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSAgICAgICAgY2FzZSBOU01vdXNl
RW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICAgICAgcmV0dXJu
IGN1cnJlbnRNb3VzZUJ1dHRvbigpOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVu
dGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgICAgICByZXR1cm4g
Y3VycmVudE1vdXNlQnV0dG9uKCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIFdlYk1v
dXNlRXZlbnQ6Ok5vQnV0dG9uOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
IH0KIAogc3RhdGljIFdlYkV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVu
dCogZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3dp
dGNoIChbZXZlbnQgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0g
ICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoK
LSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJh
Z2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0
dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNl
RG93bjoKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VEb3duOwotICAgICAgICBj
YXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAg
IGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNl
VXA7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNl
TW92ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgor
ICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6
Ok1vdXNlRG93bjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVw
OgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlVXA7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZU1vdmU7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogfQogCiBzdGF0aWMgaW50IGNsaWNrQ291bnRGb3JFdmVudChOU0V2ZW50ICpl
dmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2gg
KFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAg
Y2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZVVw
OgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBO
U090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFtldmVudCBjbGlja0NvdW50
XTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gW2V2ZW50
IGNsaWNrQ291bnRdOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOwogICAgIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIH0KIAogc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9p
bnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKQEAgLTE0MywyMiArMTM0LDE5IEBAIHN0YXRpYyBO
U1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAjaWYgZGVmaW5lZChf
X0xQNjRfXykKICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAg
ICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAg
Y2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgY2FzZSBO
U01vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNPdGhl
ck1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNSaWdo
dE1vdXNlRG93bjoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU1Jp
Z2h0TW91c2VVcDoKLSAgICBjYXNlIE5TU2Nyb2xsV2hlZWw6Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBO
U0V2ZW50VHlwZVNjcm9sbFdoZWVsOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6Z2xvYmFsUG9p
bnQoW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLCBbZXZlbnQgd2luZG93XSk7CiAgICAgZGVmYXVs
dDoKICAgICAgICAgcmV0dXJuIE5TWmVyb1BvaW50OwpAQCAtMTcxLDIyICsxNTksMTkgQEAgc3Rh
dGljIE5TUG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kb3dW
aWV3KQogI2lmIGRlZmluZWQoX19MUDY0X18pCiAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJl
OgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBO
U0xlZnRNb3VzZURvd246Ci0gICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBO
U0xlZnRNb3VzZVVwOgotICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgY2FzZSBOU01vdXNl
RXhpdGVkOgotICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRG93
bjoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VV
cDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFn
Z2VkOgotICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgY2FzZSBOU1Njcm9sbFdoZWVsOiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVy
ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1v
dXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsOiB7CiAgICAgICAgIC8v
IE5vdGU6IFRoaXMgd2lsbCBoYXZlIGl0cyBvcmlnaW4gYXQgdGhlIGJvdHRvbSBsZWZ0IG9mIHRo
ZSB3aW5kb3cgdW5sZXNzIHdpbmRvd1ZpZXcgaXMgZmxpcHBlZC4KICAgICAgICAgLy8gSW4gdGhv
c2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5IFdpZGdldDo6Y29udmVy
dEZyb21Db250YWluaW5nV2luZG93LgogICAgICAgICBOU1BvaW50IGxvY2F0aW9uID0gW2V2ZW50
IGxvY2F0aW9uSW5XaW5kb3ddOwpAQCAtMjQwLDEwICsyMjUsNyBAQCBzdGF0aWMgaW5saW5lIFN0
cmluZyB0ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxhY2VzU29mdFNwYWNl
KQogewogICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVu
dCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkKQogICAgICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAgICByZXR1cm4gU3RyaW5nKFtldmVudCBjaGFyYWN0
ZXJzXSk7CiB9CkBAIC0yNTIsMTAgKzIzNCw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHVubW9k
aWZpZWRUZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxhY2VzU29mdFNwCiB7
CiAgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5
cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCiAgICAgICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmcoW2V2ZW50IGNoYXJhY3RlcnNJ
Z25vcmluZ01vZGlmaWVyc10pOwogfQpAQCAtMjY0LDc0ICsyNDMsNjggQEAgc3RhdGljIGJvb2wg
aXNLZXlwYWRFdmVudChOU0V2ZW50KiBldmVudCkKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMg
aXMgdGhlIHR5cGUgb2YgZXZlbnQgdGhhdCBoYXMgYSBrZXlDb2RlLgogICAgIHN3aXRjaCAoW2V2
ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAg
IGNhc2UgTlNLZXlEb3duOgotICAgICAgICBjYXNlIE5TS2V5VXA6Ci0gICAgICAgIGNhc2UgTlNG
bGFnc0NoYW5nZWQ6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBj
YXNlIE5TRXZlbnRUeXBlS2V5RG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZDoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHN3aXRjaCAoW2V2ZW50IGtl
eUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFyCi0gICAgICAgIGNhc2UgODE6IC8v
ID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBjYXNlIDY3OiAvLyAqCi0gICAgICAg
IGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8gKwotICAgICAgICBjYXNlIDc2OiAv
LyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAgICAgIGNhc2UgODI6IC8vIDAKLSAg
ICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0OiAvLyAyCi0gICAgICAgIGNhc2Ug
ODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAgICAgICBjYXNlIDg3OiAvLyA1Ci0g
ICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4OTogLy8gNwotICAgICAgICBjYXNl
IDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAgICBjYXNlIDgxOiAvLyA9CisgICAg
Y2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAgICBjYXNlIDc4OiAvLyAtCisgICAg
Y2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVyCisgICAgY2FzZSA2NTogLy8gLgor
ICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAxCisgICAgY2FzZSA4NDogLy8gMgor
ICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0CisgICAgY2FzZSA4NzogLy8gNQor
ICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3CisgICAgY2FzZSA5MTogLy8gOAor
ICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogICAgICAKICAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNLZXlVcEV2ZW50KE5T
RXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IGlmIChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpCi0gICAgICAgIHJldHVybiBbZXZl
bnQgdHlwZV0gPT0gTlNLZXlVcDsKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBl
RmxhZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBl
S2V5VXA7CiAgICAgLy8gRklYTUU6IFRoaXMgbG9naWMgZmFpbHMgaWYgdGhlIHVzZXIgcHJlc3Nl
cyBib3RoIFNoaWZ0IGtleXMgYXQgb25jZSwgZm9yIGV4YW1wbGU6CiAgICAgLy8gd2UgdHJlYXQg
cmVsZWFzaW5nIG9uZSBvZiB0aGVtIGFzIGtleURvd24uCiAgICAgc3dpdGNoIChbZXZlbnQga2V5
Q29kZV0pIHsKLSAgICAgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAotICAgICAgICBjYXNl
IDU1OiAvLyBMZWZ0IENvbW1hbmQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDU3OiAvLyBDYXBzbG9jawotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0FscGhhU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAg
IGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQK
LSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1h
c2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1ODogLy8gTGVmdCBBbHQKLSAg
ICAgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAot
ICAgICAgICBjYXNlIDU5OiAvLyBMZWZ0IEN0cmwKLSAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQg
Q3RybAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRy
b2xLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNjM6IC8vIEZ1bmN0
aW9uCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRnVuY3Rp
b25LZXlNYXNrKSA9PSAwOworICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAgICBjYXNl
IDU1OiAvLyBMZWZ0IENvbW1hbmQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpOworCisgICAgY2FzZSA1NzogLy8gQ2Fw
c2xvY2sKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1v
ZGlmaWVyRmxhZ0NhcHNMb2NrKTsKKworICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKKyAgICBj
YXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpOworCisgICAgY2FzZSA1ODogLy8gTGVm
dCBBbHQKKyAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbik7CisKKyAgICBjYXNl
IDU5OiAvLyBMZWZ0IEN0cmwKKyAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgIHJl
dHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9s
KTsKKworICAgIGNhc2UgNjM6IC8vIEZ1bmN0aW9uCisgICAgICAgIHJldHVybiAhKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbik7CiAgICAgfQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMzM5
LDcgKzMxMiw2IEBAIHN0YXRpYyBpbmxpbmUgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNG
b3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOwog
Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICBpZiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrKQogICAg
ICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNhcHNMb2NrS2V5OwogICAgIGlmIChbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpCkBAIC0zNTAsMTggKzMy
Miw2IEBAIHN0YXRpYyBpbmxpbmUgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVu
dChOU0V2ZW50ICpldmVudCkKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpBbHRLZXk7
CiAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21t
YW5kKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6Ok1ldGFLZXk7Ci0jZWxzZQotICAg
IGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FscGhhU2hpZnRLZXlNYXNrKQotICAgICAg
ICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNhcHNMb2NrS2V5OwotICAgIGlmIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU1NoaWZ0S2V5TWFzaykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2
ZW50OjpTaGlmdEtleTsKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpDb250cm9sS2V5OwotICAg
IGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCi0gICAgICAg
IG1vZGlmaWVycyB8PSBXZWJFdmVudDo6QWx0S2V5OwotICAgIGlmIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6
Ok1ldGFLZXk7Ci0jZW5kaWYKIAogICAgIHJldHVybiAoV2ViRXZlbnQ6Ok1vZGlmaWVycyltb2Rp
ZmllcnM7CiB9CkBAIC00ODQsMTAgKzQ0NCw3IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhhCiAg
ICAgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSAgICAgICA9IHdpbmRvd3NLZXlDb2RlRm9yS2V5
RXZlbnQoZXZlbnQpOwogICAgIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSAgICAgICAgPSBbZXZl
bnQga2V5Q29kZV07CiAgICAgaW50IG1hY0NoYXJDb2RlICAgICAgICAgICAgICAgICA9IFdLR2V0
TlNFdmVudEtleUNoYXIoZXZlbnQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGJvb2wgYXV0b1JlcGVhdCAgICAgICAgICAgICAgICAgPSAoW2V2ZW50IHR5cGVdICE9
IE5TRmxhZ3NDaGFuZ2VkKSAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBib29sIGF1dG9SZXBlYXQgICAgICAgICAgICAgICAgID0gW2V2ZW50
IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwog
ICAgIGJvb2wgaXNLZXlwYWQgICAgICAgICAgICAgICAgICAgPSBpc0tleXBhZEV2ZW50KGV2ZW50
KTsKICAgICBib29sIGlzU3lzdGVtS2V5ICAgICAgICAgICAgICAgID0gZmFsc2U7IC8vIFN5c3Rl
bUtleSBpcyBhbHdheXMgZmFsc2Ugb24gdGhlIE1hYy4KICAgICBXZWJFdmVudDo6TW9kaWZpZXJz
IG1vZGlmaWVycyAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24ubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5tbQpp
bmRleCBiYTE5OTZiMjE3NGUyM2U0Nzc4NDYzN2VkNzIxMDdjNzUxYjBjM2NlLi42N2U4YmQzNjBi
ZDE5ZGFmODQ5ZGYxYjRlNDczMmYxNzU0ZTY0NzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5tbQpAQCAtNzks
NyArNzksNiBAQCBzdGF0aWMgTlNFdmVudE1vZGlmaWVyRmxhZ3MgdG9OU0V2ZW50TW9kaWZpZXJG
bGFncyhXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcnMgbQogewogICAgIE5TRXZlbnRNb2RpZmll
ckZsYWdzIG1vZGlmaWVyRmxhZ3MgPSAwOwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEyMDAKICAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6
Q2Fwc0xvY2tLZXkpCiAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z0NhcHNMb2NrOwogICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpTaGlmdEtl
eSkKQEAgLTkwLDE4ICs4OSw2IEBAIHN0YXRpYyBOU0V2ZW50TW9kaWZpZXJGbGFncyB0b05TRXZl
bnRNb2RpZmllckZsYWdzKFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVycyBtCiAgICAgICAgIG1v
ZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICBpZiAobW9kaWZp
ZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6TWV0YUtleSkKICAgICAgICAgbW9kaWZpZXJGbGFncyB8
PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKLSNlbHNlCi0gICAgaWYgKG1vZGlmaWVycyAm
IFdlYktpdDo6V2ViRXZlbnQ6OkNhcHNMb2NrS2V5KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9
IE5TQWxwaGFTaGlmdEtleU1hc2s7Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZl
bnQ6OlNoaWZ0S2V5KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOwot
ICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpDb250cm9sS2V5KQotICAgICAg
ICBtb2RpZmllckZsYWdzIHw9IE5TQ29udHJvbEtleU1hc2s7Ci0gICAgaWYgKG1vZGlmaWVycyAm
IFdlYktpdDo6V2ViRXZlbnQ6OkFsdEtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0Fs
dGVybmF0ZUtleU1hc2s7Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6Ok1l
dGFLZXkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKLSNlbmRp
ZgogCiAgICAgcmV0dXJuIG1vZGlmaWVyRmxhZ3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggMzJlNjM5YzRkOTE5YWQxNmU5YTk0ODJi
OTM1Y2VmMDQ2Mzc3MWZiYS4uZDI4ZDM1MzY3OTdlNTAxODU2MmNiY2M5OTM4ZWY3MzJhZGVhZThm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpA
QCAtNjIwLDExICs2MjAsOCBAQCBib29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRl
cigpCiAgICAgaWYgKGRpcmVjdGlvbiAhPSBOU0RpcmVjdFNlbGVjdGlvbikgewogICAgICAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAgICAgICBOU0V2ZW50ICpr
ZXlib2FyZEV2ZW50ID0gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgICAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNLZXlVcCkKKyAgICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24g
fHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApCiAgICAgICAgICAgICBrZXlib2Fy
ZEV2ZW50ID0gZXZlbnQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIG1f
cGFnZS0+c2V0SW5pdGlhbEZvY3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJv
YXJkRXZlbnQgIT0gbmlsLCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZh
bHNlLCBmYWxzZSwgeyB9KSwgW10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7IH0pOwog
ICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg0OCwxMCArODQ1LDcgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6dXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljKCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdmlldy53aW5kb3c7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKCh3aW5kb3cuc3R5bGVNYXNrICYgTlNGdWxsU2l6
ZUNvbnRlbnRWaWV3V2luZG93TWFzaykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3Bh
cmVudCAmJiAhW21fdmlldyBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIGlmICgod2luZG93LnN0eWxlTWFzayAmIE5TV2luZG93U3R5bGVN
YXNrRnVsbFNpemVDb250ZW50VmlldykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3Bh
cmVudCAmJiAhW21fdmlldyBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgewogICAgICAgICBOU1JlY3Qg
Y29udGVudExheW91dFJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0OndpbmRvdy5jb250ZW50TGF5
b3V0UmVjdCBmcm9tVmlldzpuaWxdOwogICAgICAgICBDR0Zsb2F0IG5ld1RvcENvbnRlbnRJbnNl
dCA9IE5TTWF4WShjb250ZW50TGF5b3V0UmVjdCkgLSBOU0hlaWdodChjb250ZW50TGF5b3V0UmVj
dCk7CiAgICAgICAgIGlmIChtX3RvcENvbnRlbnRJbnNldCAhPSBuZXdUb3BDb250ZW50SW5zZXQp
CkBAIC0xMjI4LDEwICsxMjIyLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVUb1dp
bmRvdygpCiAKICAgICAgICAgaWYgKCFtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikgewogICAg
ICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25p
dG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxh
Z3NDaGFuZ2VkTWFzayBoYW5kbGVyOlt3ZWFrVGhpc10gKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2
ZW50KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBtX2ZsYWdz
Q2hhbmdlZEV2ZW50TW9uaXRvciA9IFtOU0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01h
dGNoaW5nTWFzazpOU0V2ZW50TWFza0ZsYWdzQ2hhbmdlZCBoYW5kbGVyOlt3ZWFrVGhpc10gKE5T
RXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlz
KQogICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRG
b3JGbGFnc0NoYW5nZWRFdmVudChmbGFnc0NoYW5nZWRFdmVudCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZsYWdzQ2hhbmdlZEV2ZW50OwpAQCAtMTMwMiwxMiArMTI5Myw5IEBAIE5TVmlldyAq
V2ViVmlld0ltcGw6OmhpdFRlc3QoQ0dQb2ludCBwb2ludCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6
cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChOU0V2ZW50ICpmbGFn
c0NoYW5nZWRFdmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3Vz
ZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0
c2lkZU9mRXZlbnRTdHJlYW0KKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdl
ZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KICAgICAgICAg
bW9kaWZpZXJGbGFnczpmbGFnc0NoYW5nZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFtcDpm
bGFnc0NoYW5nZWRFdmVudC50aW1lc3RhbXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2ZW50
LndpbmRvd051bWJlcgogICAgICAgICBjb250ZXh0Om51bGxwdHIgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
TmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChmYWtlRXZlbnQsIG1fbGFzdFByZXNzdXJlRXZl
bnQuZ2V0KCksIG1fdmlldyk7CiAgICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50
KTsKIH0KQEAgLTE2NTYsMTAgKzE2NDQsNyBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjpmdWxsU2Ny
ZWVuUGxhY2Vob2xkZXJWaWV3KCkKIE5TV2luZG93ICpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNj
cmVlbldpbmRvdygpCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGZy
YW1lXSBzdHlsZU1hc2s6KE5TQm9yZGVybGVzc1dpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRv
d01hc2spIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVh
c2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBbW1tXZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1h
aW5TY3JlZW5dIGZyYW1lXSBzdHlsZU1hc2s6KE5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyB8
IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlKSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6Tk9dIGF1dG9yZWxlYXNlXTsKICNlbHNlCiAgICAgcmV0dXJuIG5pbDsKICNlbmRp
ZgpAQCAtMjYzMSw5ICsyNjE2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVtb3ZlVHJhY2tpbmdS
ZWN0cyhOU1RyYWNraW5nUmVjdFRhZyAqdGFncywgaW50IGNvdW50KQogdm9pZCBXZWJWaWV3SW1w
bDo6c2VuZFRvb2xUaXBNb3VzZUV4aXRlZCgpCiB7CiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4
Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQg
ZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRXhpdGVkCisgICAgTlNFdmVudCAqZmFrZUV2
ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRXhp
dGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh
dGlvbjpOU01ha2VQb2ludCgwLCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjY0MiwxNiArMjYyNSwxMyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1Rf
VEFHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vy
RGF0YTptX3RyYWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKICAgICBbbV90cmFja2luZ1JlY3RPd25lciBtb3VzZUV4aXRlZDpmYWtlRXZlbnRdOwogfQog
CiB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJlZCgpCiB7CiAgICAgLy8g
Tm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRh
dGEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFr
ZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRW50ZXJlZAor
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVNb3VzZUVudGVyZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yNjYw
LDcgKzI2NDAsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRW50ZXJlZCgp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJl
cjowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2luZ051
bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdXNlckRhdGE6bV90cmFja2luZ1JlY3RVc2VyRGF0YV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgW21fdHJhY2tpbmdSZWN0T3duZXIgbW91c2VFbnRl
cmVkOmZha2VFdmVudF07CiB9CiAKQEAgLTI4MTYsMTAgKzI3OTUsNyBAQCBzdGF0aWMgV2ViQ29y
ZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcoTlNWaWV3ICp2
aWV3LCBpZCA8TgogICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25IYXNB
dHRhY2hlZFNoZWV0OwogICAgIGlmIChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2UgPT0gdmll
dykKICAgICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtOU0FwcCBjdXJyZW50
RXZlbnRdLm1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtOU0FwcCBjdXJyZW50RXZlbnRdLm1vZGlmaWVyRmxh
Z3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBmbGFncyB8PSBXZWJDb3Jl
OjpEcmFnQXBwbGljYXRpb25Jc0NvcHlLZXlEb3duOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncz4oZmxhZ3MpOwogCkBAIC0zMzU5LDEwICszMzM1
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQgKmV2
ZW50KQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgQVNTRVJU
KCFldmVudCB8fCBldmVudC50eXBlID09IE5TTGVmdE1vdXNlRG93biB8fCBldmVudC50eXBlID09
IE5TUmlnaHRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU090aGVyTW91c2VEb3duKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5
cGUgPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5
cGVSaWdodE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURv
d24pOwogCiAgICAgaWYgKGV2ZW50ID09IG1fbGFzdE1vdXNlRG93bkV2ZW50LmdldCgpKQogICAg
ICAgICByZXR1cm47CkBAIC0zMzk5LDExICszMzcyLDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlk
UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6ZG9uZVdpdGhLZXlF
dmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBldmVudFdhc0hhbmRsZWQpCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURv
d24pCisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24pCiAgICAgICAg
IHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIGlmICh0cnlQb3N0
UHJvY2Vzc1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKGV2ZW50KSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMzQ3OSwxMSArMzQ0OSw4IEBAIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1h
bmQ+IFdlYlZpZXdJbXBsOjpjb2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2CiB7CiAg
ICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gY29tbWFuZHM7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5
RG93bikKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAg
ICAgcmV0dXJuIGNvbW1hbmRzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAg
QVNTRVJUKCFtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMpOwogICAgIG1fY29sbGVjdGVkS2V5
cHJlc3NDb21tYW5kcyA9ICZjb21tYW5kczsKQEAgLTM4NTgsMTEgKzM4MjUsOCBAQCBib29sIFdl
YlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVudCkKICAgICAvLyBX
ZSBnZXQgRXNjIGtleSBoZXJlIGFmdGVyIHByb2Nlc3NpbmcgZWl0aGVyIEVzYyBvciBDbWQrcGVy
aW9kLiBUaGUgZm9ybWVyIHN0YXJ0cyBhcyBhIGtleURvd24sIGFuZCB0aGUgbGF0dGVyIHN0YXJ0
cyBhcyBhIGtleSBlcXVpdmFsZW50LAogICAgIC8vIGJ1dCBib3RoIGdldCB0cmFuc2Zvcm1lZCB0
byBhIGNhbmNlbE9wZXJhdGlvbjogY29tbWFuZCwgZXhlY3V0aW5nIHdoaWNoIHBhc3NlcyBhbiBF
c2Mga2V5IGV2ZW50IHRvIC1wZXJmb3JtS2V5RXF1aXZhbGVudDouCiAgICAgLy8gRG9uJ3QgaW50
ZXJwcmV0IHRoaXMgZXZlbnQgYWdhaW4sIGF2b2lkaW5nIHJlLWVudHJhbmN5IGFuZCBpbmZpbml0
ZSBsb29wcy4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1tl
dmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0g
JiYgIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJG
bGFnc01hc2spKQorICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10g
aXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZl
bnRNb2RpZmllckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykpCiAgICAgICAgIHJldHVy
biBbbV92aWV3IF93ZWJfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBpZiAobV9rZXlEb3duRXZlbnRCZWluZ1Jlc2Vu
dCkgewogICAgICAgICAvLyBXZWJDb3JlIGhhcyBhbHJlYWR5IHNlZW4gdGhlIGV2ZW50LCBubyBu
ZWVkIGZvciBjdXN0b20gcHJvY2Vzc2luZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCmluZGV4
IGYwN2QyNzlkNjM3ZDMwZjhmNTA1MzE3ZDhmMDk2MDU1N2ExMWQyZDIuLjI2OGQwOWU1ZDkwOTFk
NWY4OTUzOGVjMDEzNjIxNDNjOTE5MGU3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpA
QCAtMjMxLDEwICsyMzEsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6YmVnaW5Nb2RhbCgp
CiAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyV2luZG93KTsKICAgICBBU1NFUlQoIW1fYWN0aXZh
dGlvbk9ic2VydmVyKTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dLUGxhY2Vob2xkZXJNb2RhbFdp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0
eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZm
ZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3Bs
YWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dLUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpO
U1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVk
IGRlZmVyOllFU10pOwogICAgIFttX3BsYWNlaG9sZGVyV2luZG93IHNldFJlbGVhc2VkV2hlbkNs
b3NlZDpOT107CiAgICAgCiAgICAgbV9hY3RpdmF0aW9uT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpOU0FwcGxpY2F0aW9u
V2lsbEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiBvYmplY3Q6TlNBcHAgcXVldWU6bmlsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlN
YWMubW0KaW5kZXggYTQ4Mzk2NGQ4ZjFmMjI2ZDRhZWNjMjdjY2IwZjA3NjA3MWI3YmJkMS4uNDdk
YTIxNzIxM2Y5YmJmNzI4MjJiMjkyMGJjOWVkMTZlNzc4NTZjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAt
NDYzLDEwICs0NjMsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0
TWVudVdpdGhJdGVtcyhjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbgogICAgIFtbV0tNZW51VGFy
Z2V0IHNoYXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0aGlzXTsKIAogICAgIE5TUG9pbnQg
bWVudUxvY2F0aW9uID0gW21fd2ViVmlldyBjb252ZXJ0UG9pbnQ6bV9jb250ZXh0Lm1lbnVMb2Nh
dGlvbigpIHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRN
b3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAg
d2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwIGxvY2F0aW9uOm1lbnVMb2NhdGlvbiBtb2RpZmll
ckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOm1fd2ViVmlldy53aW5kb3cud2luZG93
TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBd
OwogICAgIFtOU01lbnUgcG9wVXBDb250ZXh0TWVudTptX21lbnUuZ2V0KCkgd2l0aEV2ZW50OmV2
ZW50IGZvclZpZXc6bV93ZWJWaWV3XTsKIAogICAgIGlmIChtX2NvbnRleHRNZW51TGlzdGVuZXIp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9y
UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclBy
b3h5TWFjLm1tCmluZGV4IDBhNzk5MTM0NmQxNWNjZmFjNzc0MzVlZjMwZWY4ZGY4MjJhZmFlMjMu
LjgxOGJkMzkwZDQ4M2QwODIyYmFlNzkzNGUxMDZmZGJiMGNkZmY4NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAt
NDgsMTAgKzQ4LDcgQEAgU09GVF9MSU5LX1NUQUdFRF9GUkFNRVdPUksoV2ViSW5zcGVjdG9yVUks
IFByaXZhdGVGcmFtZXdvcmtzLCBBKQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi1z
dGF0aWMgY29uc3QgTlNVSW50ZWdlciB3aW5kb3dTdHlsZU1hc2sgPSBOU1RpdGxlZFdpbmRvd01h
c2sgfCBOU0Nsb3NhYmxlV2luZG93TWFzayB8IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrIHwg
TlNSZXNpemFibGVXaW5kb3dNYXNrIHwgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93TWFzazsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHdp
bmRvd1N0eWxlTWFzayA9IE5TV2luZG93U3R5bGVNYXNrVGl0bGVkIHwgTlNXaW5kb3dTdHlsZU1h
c2tDbG9zYWJsZSB8IE5TV2luZG93U3R5bGVNYXNrTWluaWF0dXJpemFibGUgfCBOU1dpbmRvd1N0
eWxlTWFza1Jlc2l6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrRnVsbFNpemVDb250ZW50VmlldzsK
IAogLy8gVGhlIHRpbWUgd2Uga2VlcCBvdXIgV2ViVmlldyBhbGl2ZSBiZWZvcmUgY2xvc2luZyBp
dCBhbmQgaXRzIHByb2Nlc3MuCiAvLyBSZXVzaW5nIHRoZSBXZWJWaWV3IGltcHJvdmVzIHN0YXJ0
IHVwIHRpbWUgZm9yIHBlb3BsZSB0aGF0IGp1bXAgaW4gYW5kIG91dCBvZiB0aGUgSW5zcGVjdG9y
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQ
cm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJv
eHlNYWMubW0KaW5kZXggZDI5ZDA4OTA1MmM4ODdhZmI4NjQyMzg0NTVhYTE4ODRiNGRkNDY1Yy4u
ZDMwMTk0ZGJmMDY1ZGFmZWRjOWE0MGUxYTMxNDg3NGJmZDFiMDUwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCkBAIC03
NCwxOSArNzQsMTMgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUoY29uc3Qg
VmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBOU0ZvbnQgKmYKICAgICAgICAgICAgIFJldGFp
blB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtb
TlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11dGFibGVDb3B5XSk7CiAg
ICAgICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiA9IGl0ZW1zW2ld
Lm1fdGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6
IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICAgICAgW3BhcmFncmFwaFN0
eWxlIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOndyaXRpbmdEaXJlY3Rpb25dOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNl
dEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU0xlZnRUZXh0QWxpZ25tZW50
IDogTlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlv
biA9PSBMVFIgPyBOU1RleHRBbGlnbm1lbnRMZWZ0IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwog
ICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IGF0dHJpYnV0ZXMgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhPYmplY3RzQW5kS2V5
czoKICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdHlsZS5nZXQoKSwgTlNQYXJhZ3JhcGhTdHls
ZUF0dHJpYnV0ZU5hbWUsCiAgICAgICAgICAgICAgICAgZm9udCwgTlNGb250QXR0cmlidXRlTmFt
ZSwKICAgICAgICAgICAgIG5pbF0pOwogICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLm1faGFzVGV4
dERpcmVjdGlvbk92ZXJyaWRlKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFs
dWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGly
ZWN0aW9uICsgTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0
aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50
ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKICAg
ICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBcnJheT4gd3JpdGluZ0RpcmVjdGlvbkFycmF5ID0g
YWRvcHROUyhbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czp3cml0aW5nRGlyZWN0aW9u
VmFsdWUuZ2V0KCksIG5pbF0pOwogICAgICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVj
dDp3cml0aW5nRGlyZWN0aW9uQXJyYXkuZ2V0KCkgZm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlvbkF0
dHJpYnV0ZU5hbWVdOwogICAgICAgICAgICAgfQpAQCAtMTU0LDE4ICsxNDgsMTUgQEAgdm9pZCBX
ZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBU
ZXh0RGlyZWN0aW9uIHRleHQKIAogICAgIE5TQ29udHJvbFNpemUgY29udHJvbFNpemU7CiAgICAg
c3dpdGNoIChkYXRhLm1lbnVTaXplKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1h
bDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAg
Y29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplUmVndWxhcjsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZVNtYWxsOgotICAgICAg
ICBjb250cm9sU2l6ZSA9IE5TU21hbGxDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUg
PSBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6
UG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVNaW5pOgotICAgICAgICBjb250cm9sU2l6ZSA9
IE5TTWluaUNvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVN
aW5pOwogICAgICAgICBicmVhazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9
CiAKICAgICBSZWY8V2ViUG9wdXBNZW51UHJveHlNYWM+IHByb3RlY3QoKnRoaXMpOwpAQCAtMTgz
LDEzICsxNzQsMTEgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShj
b25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICBpZiAoIW1fY2xpZW50
LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpKQogICAgICAgICByZXR1cm47CiAg
ICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgTlNFdmVudCogaW5p
dGlhdGluZ05TRXZlbnQgPSBtX2NsaWVudC0+Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZl
bnQoKS0+bmF0aXZlRXZlbnQoKTsKLSAgICBpZiAoW2luaXRpYXRpbmdOU0V2ZW50IHR5cGVdICE9
IE5TTGVmdE1vdXNlRG93bikKKyAgICBpZiAoW2luaXRpYXRpbmdOU0V2ZW50IHR5cGVdICE9IE5T
RXZlbnRUeXBlTGVmdE1vdXNlRG93bikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTlNFdmVudCAq
ZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAKKyAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVu
dFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2NhdGlvbjpbaW5pdGlhdGluZ05TRXZlbnQgbG9jYXRpb25JbldpbmRvd10KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRp
bmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBdCkBAIC0x
OTgsMTMgKzE4NywxNCBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51
KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQg
ZXZlbnROdW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
bGlja0NvdW50Oltpbml0aWF0aW5nTlNFdmVudCBjbGlja0NvdW50XQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTpbaW5pdGlhdGluZ05TRXZlbnQg
cHJlc3N1cmVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIFtOU0FwcCBw
b3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKKyAgICBmYWtlRXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3IHdpbmRvd10KICNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFz
ZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZl
cnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCisjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdz
Oltpbml0aWF0aW5nTlNFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ05TRXZlbnQgdGltZXN0YW1wXQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlhdGluZ05TRXZl
bnQgd2luZG93TnVtYmVyXQpAQCAtMjEyLDcgKzIwMiw2IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJv
eHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0
ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrQ291bnQ6MAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9t
YWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IDFmOTkzMGUyZDg5ZmUw
MDEzMzAwYTAxNGE0MmQ2MTM5ODA3OTJhMjYuLmI5MjZkYjA5MDJmNWI4Zjc1MDQ3ZmVhZGMyYzU0
M2M2YWNjMmU1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpAQCAt
NDc1LDEzICs0NzUsMTMgQEAgc3RhdGljIHVpbnQzMl90IG1vZGlmaWVyRmxhZ3MoY29uc3QgV2Vi
RXZlbnQmIGV2ZW50KQogICAgIHVpbnQzMl90IG1vZGlmaWVycyA9IDA7CiAKICAgICBpZiAoZXZl
bnQuc2hpZnRLZXkoKSkKLSAgICAgICAgbW9kaWZpZXJzIHw9IE5TU2hpZnRLZXlNYXNrOworICAg
ICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogICAgIGlmIChldmVu
dC5jb250cm9sS2V5KCkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBOU0NvbnRyb2xLZXlNYXNrOwor
ICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7CiAgICAgaWYg
KGV2ZW50LmFsdEtleSgpKQotICAgICAgICBtb2RpZmllcnMgfD0gTlNBbHRlcm5hdGVLZXlNYXNr
OworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICBp
ZiAoZXZlbnQubWV0YUtleSgpKQotICAgICAgICBtb2RpZmllcnMgfD0gTlNDb21tYW5kS2V5TWFz
azsKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogICAg
IAogICAgIHJldHVybiBtb2RpZmllcnM7CiB9CkBAIC03MDYsMTUgKzcwNiwxNSBAQCBzdGF0aWMg
dW5zaWduZWQgbW9kaWZpZXJGbGFncyhjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2
ZW50KQogICAgIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MgPSAwOwogCiAgICAgaWYgKGtleWJvYXJk
RXZlbnQuY2Fwc0xvY2tLZXkoKSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0FscGhhU2hp
ZnRLZXlNYXNrOworICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdD
YXBzTG9jazsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5zaGlmdEtleSgpKQotICAgICAgICBtb2Rp
ZmllckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5jb250cm9sS2V5
KCkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb250cm9sS2V5TWFzazsKKyAgICAgICAg
bW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKICAgICBpZiAoa2V5
Ym9hcmRFdmVudC5hbHRLZXkoKSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0FsdGVybmF0
ZUtleU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09w
dGlvbjsKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5tZXRhS2V5KCkpCi0gICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gTlNDb21tYW5kS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKIAogICAgIHJldHVybiBtb2RpZmllckZsYWdzOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNh
dGVkUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9E
ZXByZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IDVlZGU1NmVlZTQwYWNmZGI5OTAxMTlkZTdhY2U5
MThlNjc4YmM2NjYuLmY5ZjMzOWE5YjcxMzJlZjBjMTE3YmQ3M2Q3MjEyNDczZmM1NDliMGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRl
ZFBERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTEyNzgsMzMgKzEyNzgsMjggQEAgdm9pZCBQREZQ
bHVnaW46OmRpZEV2YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJpbmcm
KQogICAgIAogc3RhdGljIE5TVUludGVnZXIgbW9kaWZpZXJGbGFnc0Zyb21XZWJFdmVudChjb25z
dCBXZWJFdmVudCYgZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNTaGlmdEtleU1hc2sgOiAwKQotICAg
ICAgICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0NvbnRyb2xLZXlNYXNrIDogMCkKLSAgICAg
ICAgfCAoZXZlbnQuYWx0S2V5KCkgPyBOU0FsdGVybmF0ZUtleU1hc2sgOiAwKQotICAgICAgICB8
IChldmVudC5tZXRhS2V5KCkgPyBOU0NvbW1hbmRLZXlNYXNrIDogMCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNFdmVudE1v
ZGlmaWVyRmxhZ1NoaWZ0IDogMCkKKyAgICAgICAgfCAoZXZlbnQuY29udHJvbEtleSgpID8gTlNF
dmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgOiAwKQorICAgICAgICB8IChldmVudC5hbHRLZXkoKSA/
IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gOiAwKQorICAgICAgICB8IChldmVudC5tZXRhS2V5
KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCA6IDApOwogfQogICAgIAogc3RhdGljIGJv
b2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVu
dFR5cGUmIGV2ZW50VHlwZSkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
ICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUoKSkgewogICAgIGNhc2UgV2ViRXZlbnQ6OktleURvd246
Ci0gICAgICAgIGV2ZW50VHlwZSA9IE5TS2V5RG93bjsKKyAgICAgICAgZXZlbnRUeXBlID0gTlNF
dmVudFR5cGVLZXlEb3duOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIFdlYkV2ZW50
OjpLZXlVcDoKLSAgICAgICAgZXZlbnRUeXBlID0gTlNLZXlVcDsKKyAgICAgICAgZXZlbnRUeXBl
ID0gTlNFdmVudFR5cGVLZXlVcDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBXZWJF
dmVudDo6TW91c2VEb3duOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1v
dXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50
OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEb3duOwor
ICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0
b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEb3duOworICAgICAgICAg
ICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMTMxMiwxMCArMTMwNywxMCBAQCBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZl
bnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGNhc2Ug
V2ViRXZlbnQ6Ok1vdXNlVXA6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2Vi
TW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZl
bnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZVVwOwor
ICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VVcDsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9u
OgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlVXA7CisgICAgICAgICAgICBl
dmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMy
MywxMyArMTMxOCwxMyBAQCBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29u
c3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGNhc2UgV2ViRXZl
bnQ6Ok1vdXNlTW92ZToKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3Vz
ZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6
TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRHJhZ2dlZDsK
KyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0
QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlRHJhZ2dlZDsKKyAg
ICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpOb0J1dHRv
bjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTW91c2VNb3ZlZDsKKyAgICAgICAgICAgIGV2
ZW50VHlwZSA9IE5TRXZlbnRUeXBlTW91c2VNb3ZlZDsKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMzNyw3
ICsxMzMyLDYgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdl
YkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBkZWZhdWx0OgogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQog
ICAgIAogTlNFdmVudCAqUERGUGx1Z2luOjpuc0V2ZW50Rm9yV2ViTW91c2VFdmVudChjb25zdCBX
ZWJNb3VzZUV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggYzRkMjU2YzU1OWZiNzQ2Yzg5NDZmZTE4MDZm
N2E0MzVkYjE1YjU1ZS4uNGE3MmFiNzkzNTI1OWI1NGI4NDVkYWRjOWZhMzZmYmE4Y2E4MzY5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0KQEAgLTk2MywxMCArOTYzLDEwIEBAIHZvaWQgUERGUGx1Z2luOjpkaWRFdmFsdWF0ZUph
dmFTY3JpcHQodWludDY0X3QsIGNvbnN0IFdURjo6U3RyaW5nJikKIAogc3RhdGljIE5TVUludGVn
ZXIgbW9kaWZpZXJGbGFnc0Zyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQpCiB7Ci0g
ICAgcmV0dXJuIChldmVudC5zaGlmdEtleSgpID8gTlNTaGlmdEtleU1hc2sgOiAwKQotICAgICAg
ICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0NvbnRyb2xLZXlNYXNrIDogMCkKLSAgICAgICAg
fCAoZXZlbnQuYWx0S2V5KCkgPyBOU0FsdGVybmF0ZUtleU1hc2sgOiAwKQotICAgICAgICB8IChl
dmVudC5tZXRhS2V5KCkgPyBOU0NvbW1hbmRLZXlNYXNrIDogMCk7CisgICAgcmV0dXJuIChldmVu
dC5zaGlmdEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IDogMCkKKyAgICAgICAgfCAo
ZXZlbnQuY29udHJvbEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgOiAwKQorICAg
ICAgICB8IChldmVudC5hbHRLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gOiAwKQor
ICAgICAgICB8IChldmVudC5tZXRhS2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCA6
IDApOwogfQogICAgIAogc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0
IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHlwZSkKQEAgLTk3NSwxMCArOTc1
LDEwIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVu
dCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VE
b3duOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihl
dmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9u
OgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEb3duOworICAgICAgICAgICAg
ZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAg
ICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEb3duOworICAgICAgICAgICAgZXZlbnRUeXBl
ID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtOTg2LDEwICs5
ODYsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2
ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3Vz
ZVVwOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihl
dmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9u
OgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VVcDsKKyAgICAgICAgICAgIGV2
ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAg
IGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZVVwOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNF
dmVudFR5cGVSaWdodE1vdXNlVXA7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTk5NywxMyArOTk3LDEzIEBA
IHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZl
bnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VNb3ZlOgog
ICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCku
YnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAg
ICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICAgICAgZXZl
bnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAg
ICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEcmFnZ2VkOworICAgICAgICAgICAgZXZlbnRU
eXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOgotICAgICAgICAgICAg
ZXZlbnRUeXBlID0gTlNNb3VzZU1vdmVkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVu
dFR5cGVNb3VzZU1vdmVkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzU2LDExICsxNzU2LDExIEBAIGJv
b2wgUERGUGx1Z2luOjpIVUQ6Om1vdXNlRXZlbnQoUGFnZU92ZXJsYXkmLCBjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmIGV2ZW50KQogCiAgICAgc3dpdGNoIChldmVudC50eXBlKCkpIHsKICAgICBj
YXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ6Ci0gICAgICAgIHJldHVybiBbcGRmTGF5ZXJD
b250cm9sbGVyIG1vdXNlRHJhZ2dlZDpldmVudFdpdGhUeXBlKE5TTGVmdE1vdXNlRHJhZ2dlZCkg
aW5IVURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOworICAgICAgICBy
ZXR1cm4gW3BkZkxheWVyQ29udHJvbGxlciBtb3VzZURyYWdnZWQ6ZXZlbnRXaXRoVHlwZShOU0V2
ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQpIGluSFVEV2l0aEJvdW5kczpIVURSZWN0SW5Sb290Vmll
d0Nvb3JkaW5hdGVzXTsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDoKLSAg
ICAgICAgcmV0dXJuIFtwZGZMYXllckNvbnRyb2xsZXIgbW91c2VEb3duOmV2ZW50V2l0aFR5cGUo
TlNMZWZ0TW91c2VEb3duKSBpbkhVRFdpdGhCb3VuZHM6SFVEUmVjdEluUm9vdFZpZXdDb29yZGlu
YXRlc107CisgICAgICAgIHJldHVybiBbcGRmTGF5ZXJDb250cm9sbGVyIG1vdXNlRG93bjpldmVu
dFdpdGhUeXBlKE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bikgaW5IVURXaXRoQm91bmRzOkhVRFJl
Y3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VS
ZWxlYXNlZDoKLSAgICAgICAgcmV0dXJuIFtwZGZMYXllckNvbnRyb2xsZXIgbW91c2VVcDpldmVu
dFdpdGhUeXBlKE5TTGVmdE1vdXNlVXApIGluSFVEV2l0aEJvdW5kczpIVURSZWN0SW5Sb290Vmll
d0Nvb3JkaW5hdGVzXTsKKyAgICAgICAgcmV0dXJuIFtwZGZMYXllckNvbnRyb2xsZXIgbW91c2VV
cDpldmVudFdpdGhUeXBlKE5TRXZlbnRUeXBlTGVmdE1vdXNlVXApIGluSFVEV2l0aEJvdW5kczpI
VURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVh
azsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQppbmRleCA2YzYwYmRkZTk1
ZmRkMzE3ZjZiNzE0ZTFmNDRmNmVlYjJmMzNkMzBiLi5iY2Y5YzU1ZWEyMzMzMzAyNTZlNjE5ZTVl
ZTViZGFkYjc2NzEyZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KQEAgLTUz
LDIxICs1MywxOCBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgY29uc3Qg
U3RyaW5nIGNzc0FsaWdubWVudFZhbHVlRm9yTlNUZXh0QWxpZ25tZW50KE5TVGV4dEFsaWdubWVu
dCBhbGlnbm1lbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAg
c3dpdGNoIChhbGlnbm1lbnQpIHsKLSAgICBjYXNlIE5TTGVmdFRleHRBbGlnbm1lbnQ6CisgICAg
Y2FzZSBOU1RleHRBbGlnbm1lbnRMZWZ0OgogICAgICAgICByZXR1cm4gImxlZnQiOwotICAgIGNh
c2UgTlNSaWdodFRleHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnRSaWdodDoK
ICAgICAgICAgcmV0dXJuICJyaWdodCI7Ci0gICAgY2FzZSBOU0NlbnRlclRleHRBbGlnbm1lbnQ6
CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnRDZW50ZXI6CiAgICAgICAgIHJldHVybiAiY2VudGVy
IjsKLSAgICBjYXNlIE5TSnVzdGlmaWVkVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFs
aWdubWVudEp1c3RpZmllZDoKICAgICAgICAgcmV0dXJuICJqdXN0aWZ5IjsKLSAgICBjYXNlIE5T
TmF0dXJhbFRleHRBbGlnbm1lbnQ6CisgICAgY2FzZSBOU1RleHRBbGlnbm1lbnROYXR1cmFsOgog
ICAgICAgICByZXR1cm4gIi13ZWJraXQtc3RhcnQiOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gU3RyaW5n
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQppbmRleCBhMzZmM2IzMjNhYjkx
NjUxNDc3YmQzYzdiZTI4YzZhMjNkZTliMTdkLi5hZjI2OTVmNDQ0YmU4MTcxMjI5OThjYTU3NzIz
YjYxOTNkMDEwZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KQEAgLTYzLDEw
ICs2Myw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdl
VG9CaXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEluCiAgICAgUmV0YWluUHRyPE5TR3JhcGhp
Y3NDb250ZXh0PiBzYXZlZENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRl
eHRdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBo
aWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNzQ29udGV4
dC0+cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJp
dG1hcC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpO
U1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MSByZXNw
ZWN0RmxpcHBlZDpZRVMgaGludHM6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndp
ZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJh
dGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RG
bGlwcGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJl
bnRDb250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyYTA3ZDgyMmM4OTY0ZjI4N2M2NjRhOTU3YzQ5
ZDIyZTkzMjI1YmEyLi4xY2U1MzJiZWI1MmY5NTJmNzI5NGQ3NzY1ZDQxMzlkMGEyODA2ODgwIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNzIgQEAKKzIwMTYtMTEtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZh
bHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0
NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgU3RvcCB1
c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbToKKyAgICAgICAgKGV2
ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0aW9uKToKKyAgICAgICAgKG1vZGlmaWVyRmxhZ3Mp
OgorICAgICAgICAoLVtFdmVudFNlbmRpbmdDb250cm9sbGVyIG1vdXNlTW92ZVRvWDpZOl0pOgor
ICAgICAgICAoLVtFdmVudFNlbmRpbmdDb250cm9sbGVyIGNvbnRleHRDbGlja10pOgorICAgICAg
ICAoLVtFdmVudFNlbmRpbmdDb250cm9sbGVyIGtleURvd246d2l0aE1vZGlmaWVyczp3aXRoTG9j
YXRpb246XSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xs
ZXIubToKKyAgICAgICAgKC1bVGV4dElucHV0Q29udHJvbGxlciBpbnRlcnByZXRLZXlFdmVudHM6
d2l0aFNlbmRlcjpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9Db21tYW5kQmFja0ZvcndhcmQubW06CisgICAgICAgIChzaW11bGF0ZUNvbW1hbmRBcnJvdyk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRl
bGVnYXRlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRz
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMu
bW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9Vc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9uLm1tOgorICAgICAg
ICAoVXNlckluaXRpYXRlZEFjdGlvblRlc3Q6OlNldFVwKToKKyAgICAgICAgKFVzZXJJbml0aWF0
ZWRBY3Rpb25UZXN0OjpjbGljayk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
QWNjZXB0c0ZpcnN0TW91c2UubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpBY2NlcHRzRmly
c3RNb3VzZTo6cnVuVGVzdCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29u
dGV4dE1lbnVDYW5Db3B5VVJMLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y29udGV4dE1l
bnVDb3B5TGluayk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZTo6cnVuVGVzdCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVudVR5cGVzRm9yTW91c2VFdmVudHMubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL21h
Yy9QbGF0Zm9ybVV0aWxpdGllc01hYy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6
OmlzS2V5RG93bik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3
TWFjLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3Ojppbml0aWFs
aXplKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVT
cGFjZWJhcktleVByZXNzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmll
dzo6c2ltdWxhdGVSaWdodENsaWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3Jt
V2ViVmlldzo6c2ltdWxhdGVNb3VzZU1vdmUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXZl
bnRUeXBlRm9yQnV0dG9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Om1vZGlmaWVyRmxhZ3NG
b3JXS01vZGlmaWVycyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmll
d01hYy5tbToKKyAgICAgICAgKF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRz
TWFzayk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IF9tb3VzZURvd25BdFBv
aW50OnNpbXVsYXRlUHJlc3N1cmU6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgX3NldFVw
VGVzdFdpbmRvdzpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyB0eXBlQ2hhcmFjdGVyOl0p
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW06Cisg
ICAgICAgIChXVFI6OmV2ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0aW9uKToKKyAgICAgICAg
KFdUUjo6YnVpbGRNb2RpZmllckZsYWdzKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94
eTo6c2VuZE1vdXNlRG93blRvU3RhcnRQcmVzc3VyZUV2ZW50cyk6CisgICAgICAgIChXVFI6OkV2
ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VDbGljayk6CisgICAgICAgIChXVFI6OkV2ZW50U2Vu
ZGVyUHJveHk6OnN0YXJ0QW5kQ2FuY2VsTW91c2VGb3JjZUNsaWNrKToKKyAgICAgICAgKFdUUjo6
RXZlbnRTZW5kZXJQcm94eTo6bW91c2VNb3ZlVG8pOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRl
clByb3h5OjprZXlEb3duKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6c3dpcGVH
ZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1X
ZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFj
L1Rlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAxNi0xMS0wNCAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFdURjo6UGFya2luZ0xvdCBzaG91
bGQgc3RvcCB1c2luZyBzdGQ6OmNocm9ubyBiZWNhdXNlIHN0ZDo6Y2hyb25vOjpkdXJhdGlvbiBj
YXN0cyBhcmUgcHJvbmUgdG8gb3ZlcmZsb3dzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCmluZGV4IGUxYjNlZmE5NjIxMThmOTEzMGFl
ODg3YTEwOTg0ZjYxYzNjOWE4ZTYuLjY1ZTJjMWY1YjU2Y2IzZGRlMzQ1OTdmNTQxMWE1MTQ2NWE3
MDc5MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdD
b250cm9sbGVyLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdD
b250cm9sbGVyLm1tCkBAIC00Myw2ICs0Myw3IEBACiAKICNpZiAhUExBVEZPUk0oSU9TKQogI2lt
cG9ydCA8Q2FyYm9uL0NhcmJvbi5oPiAvLyBmb3IgR2V0Q3VycmVudEV2ZW50VGltZSgpCisjaW1w
b3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMzU1LDMzICszNTYsMzMgQEAgLSAodm9pZCljbGVhcktp
bGxSaW5nCiBzdGF0aWMgTlNFdmVudFR5cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rp
b24oaW50IGJ1dHRvbiwgTW91c2VBY3Rpb24gYWN0aW9uKQogewogICAgIHN3aXRjaCAoYnV0dG9u
KSB7Ci0gICAgICAgIGNhc2UgTGVmdE1vdXNlQnV0dG9uOgotICAgICAgICAgICAgc3dpdGNoIChh
Y3Rpb24pIHsKLSAgICAgICAgICAgICAgICBjYXNlIE1vdXNlRG93bjoKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIE5TTGVmdE1vdXNlRG93bjsKLSAgICAgICAgICAgICAgICBjYXNlIE1vdXNl
VXA6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU0xlZnRNb3VzZVVwOwotICAgICAgICAg
ICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNM
ZWZ0TW91c2VEcmFnZ2VkOwotICAgICAgICAgICAgfQotICAgICAgICBjYXNlIFJpZ2h0TW91c2VC
dXR0b246Ci0gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgICAgICAgICAgICAgIGNh
c2UgTW91c2VEb3duOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNSaWdodE1vdXNlRG93
bjsKLSAgICAgICAgICAgICAgICBjYXNlIE1vdXNlVXA6Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBOU1JpZ2h0TW91c2VVcDsKLSAgICAgICAgICAgICAgICBjYXNlIE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TUmlnaHRNb3VzZURyYWdnZWQ7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikgewot
ICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEb3duOgotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gTlNPdGhlck1vdXNlRG93bjsKLSAgICAgICAgICAgICAgICBjYXNlIE1vdXNlVXA6Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBOU090aGVyTW91c2VVcDsKLSAgICAgICAgICAgICAgICBj
YXNlIE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3RoZXJNb3Vz
ZURyYWdnZWQ7Ci0gICAgICAgICAgICB9CisgICAgY2FzZSBMZWZ0TW91c2VCdXR0b246CisgICAg
ICAgIHN3aXRjaCAoYWN0aW9uKSB7CisgICAgICAgIGNhc2UgTW91c2VEb3duOgorICAgICAgICAg
ICAgcmV0dXJuIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKKyAgICAgICAgY2FzZSBNb3VzZVVw
OgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7CisgICAgICAgIGNh
c2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlTGVmdE1vdXNl
RHJhZ2dlZDsKKyAgICAgICAgfQorICAgIGNhc2UgUmlnaHRNb3VzZUJ1dHRvbjoKKyAgICAgICAg
c3dpdGNoIChhY3Rpb24pIHsKKyAgICAgICAgY2FzZSBNb3VzZURvd246CisgICAgICAgICAgICBy
ZXR1cm4gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKKyAgICAgICAgY2FzZSBNb3VzZVVwOgor
ICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOworICAgICAgICBjYXNl
IE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
cmFnZ2VkOworICAgICAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgc3dpdGNoIChhY3Rpb24p
IHsKKyAgICAgICAgY2FzZSBNb3VzZURvd246CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5
cGVPdGhlck1vdXNlRG93bjsKKyAgICAgICAgY2FzZSBNb3VzZVVwOgorICAgICAgICAgICAgcmV0
dXJuIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOworICAgICAgICBjYXNlIE1vdXNlRHJhZ2dlZDoK
KyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOworICAgICAg
ICB9CiAgICAgfQogICAgIGFzc2VydCgwKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TlNFdmVu
dFR5cGU+KDApOwpAQCAtNDMzLDExICs0MzQsMTEgQEAgLSAodm9pZCl1cGRhdGVDbGlja0NvdW50
Rm9yQnV0dG9uOihpbnQpYnV0dG9uTnVtYmVyCiBzdGF0aWMgaW50IG1vZGlmaWVyRmxhZ3MoY29u
c3QgTlNTdHJpbmcqIG1vZGlmaWVyTmFtZSkKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIGNv
bnN0IGludCBjb250cm9sS2V5TWFzayA9IE5TQ29udHJvbEtleU1hc2s7Ci0gICAgY29uc3QgaW50
IHNoaWZ0S2V5TWFzayA9IE5TU2hpZnRLZXlNYXNrOwotICAgIGNvbnN0IGludCBhbHRlcm5hdGVL
ZXlNYXNrID0gTlNBbHRlcm5hdGVLZXlNYXNrOwotICAgIGNvbnN0IGludCBjb21tYW5kS2V5TWFz
ayA9IE5TQ29tbWFuZEtleU1hc2s7Ci0gICAgY29uc3QgaW50IGNhcHNMb2NrS2V5TWFzayA9IE5T
QWxwaGFTaGlmdEtleU1hc2s7CisgICAgY29uc3QgaW50IGNvbnRyb2xLZXlNYXNrID0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2w7CisgICAgY29uc3QgaW50IHNoaWZ0S2V5TWFzayA9IE5TRXZl
bnRNb2RpZmllckZsYWdTaGlmdDsKKyAgICBjb25zdCBpbnQgYWx0ZXJuYXRlS2V5TWFzayA9IE5T
RXZlbnRNb2RpZmllckZsYWdPcHRpb247CisgICAgY29uc3QgaW50IGNvbW1hbmRLZXlNYXNrID0g
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CisgICAgY29uc3QgaW50IGNhcHNMb2NrS2V5TWFz
ayA9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKICNlbHNlCiAgICAgY29uc3QgaW50IGNv
bnRyb2xLZXlNYXNrID0gV2ViRXZlbnRGbGFnTWFza0NvbnRyb2w7CiAgICAgY29uc3QgaW50IHNo
aWZ0S2V5TWFzayA9IFdlYkV2ZW50RmxhZ01hc2tTaGlmdDsKQEAgLTY0Myw3ICs2NDQsNyBAQCAt
ICh2b2lkKW1vdXNlTW92ZVRvWDooaW50KXggWTooaW50KXkKICAgICBOU1ZpZXcgKnZpZXcgPSBb
bWFpbkZyYW1lIHdlYlZpZXddOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgbGFzdE1vdXNlUG9z
aXRpb24gPSBbdmlldyBjb252ZXJ0UG9pbnQ6TlNNYWtlUG9pbnQoeCwgW3ZpZXcgZnJhbWVdLnNp
emUuaGVpZ2h0IC0geSkgdG9WaWV3Om5pbF07Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6KGxlZnRNb3VzZUJ1dHRvbkRvd24gPyBOU0xlZnRNb3VzZURy
YWdnZWQgOiBOU01vdXNlTW92ZWQpCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6KGxlZnRNb3VzZUJ1dHRvbkRvd24gPyBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURyYWdnZWQgOiBOU0V2ZW50VHlwZU1vdXNlTW92ZWQpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYXRpb246bGFzdE1vdXNlUG9zaXRpb24gCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MCAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbc2VsZiBjdXJyZW50RXZlbnRUaW1l
XQpAQCAtNzc3LDcgKzc3OCw3IEBAIC0gKE5TQXJyYXkgKiljb250ZXh0Q2xpY2sKICAgICBbW1tt
YWluRnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddIGxheW91dF07CiAgICAgW3NlbGYgdXBk
YXRlQ2xpY2tDb3VudEZvckJ1dHRvbjpSaWdodE1vdXNlQnV0dG9uXTsKIAotICAgIE5TRXZlbnQg
KmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24KKyAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9jYXRpb246bGFzdE1vdXNlUG9zaXRpb24gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGlmaWVyRmxhZ3M6MCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWVzdGFtcDpbc2VsZiBjdXJyZW50RXZlbnRUaW1lXQpAQCAtMTAxMyw3ICsxMDE0
LDcgQEAgLSAodm9pZClrZXlEb3duOihOU1N0cmluZyAqKWNoYXJhY3RlciB3aXRoTW9kaWZpZXJz
OihXZWJTY3JpcHRPYmplY3QgKiltb2RpZmllcnMKIAogICAgIGlmIChbY2hhcmFjdGVyIGxlbmd0
aF0gPT0gMSAmJiBbY2hhcmFjdGVyIGNoYXJhY3RlckF0SW5kZXg6MF0gPj0gJ0EnICYmIFtjaGFy
YWN0ZXIgY2hhcmFjdGVyQXRJbmRleDowXSA8PSAnWicpIHsKICNpZiAhUExBVEZPUk0oSU9TKQot
ICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICBtb2RpZmll
ckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICNlbHNlCiAgICAgICAgIG1vZGlm
aWVyRmxhZ3MgfD0gV2ViRXZlbnRGbGFnTWFza0FscGhhU2hpZnQ7CiAjZW5kaWYKQEAgLTEwMjMs
MTIgKzEwMjQsMTIgQEAgLSAodm9pZClrZXlEb3duOihOU1N0cmluZyAqKWNoYXJhY3RlciB3aXRo
TW9kaWZpZXJzOihXZWJTY3JpcHRPYmplY3QgKiltb2RpZmllcnMKICAgICBtb2RpZmllckZsYWdz
IHw9IGJ1aWxkTW9kaWZpZXJGbGFncyhtb2RpZmllcnMpOwogCiAgICAgaWYgKGxvY2F0aW9uID09
IERPTV9LRVlfTE9DQVRJT05fTlVNUEFEKQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TTnVt
ZXJpY1BhZEtleU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ051bWVyaWNQYWQ7CiAKICAgICBbW1ttYWluRnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVudFZp
ZXddIGxheW91dF07CiAKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIE5TRXZlbnQgKmV2ZW50ID0g
W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleURvd24KKyAgICBOU0V2ZW50ICpldmVudCA9
IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KQogICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczptb2RpZmllckZsYWdzCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0aW1lc3RhbXA6W3NlbGYgY3VycmVudEV2ZW50VGltZV0KQEAgLTEwNjAsNyArMTA2MSw3
IEBAIC0gKHZvaWQpa2V5RG93bjooTlNTdHJpbmcgKiljaGFyYWN0ZXIgd2l0aE1vZGlmaWVyczoo
V2ViU2NyaXB0T2JqZWN0ICopbW9kaWZpZXJzCiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5VXAKKyAgICBldmVu
dCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAg
ICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJGbGFncwogICAgICAgICAgICAgICAgICAg
ICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVudFRpbWVdCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXIubQppbmRleCA1ZWMyYTk5NmY5YTRjMTJj
YzM4OTcwYWI1ZDBiMDExZDAwMGI3YmVlLi43NGYxYjExMzRkZjZlOTY4OWQwZmNlMmY0YTUxNzRi
MDUwNjRjMmVhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0
Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250
cm9sbGVyLm0KQEAgLTUxLDYgKzUxLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJTY3JpcHRPYmpl
Y3QuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJUeXBlc0ludGVybmFsLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV2ViVmlldy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgVGV4dElucHV0Q29udHJvbGxlciAoRHVtcFJlbmRlclRy
ZWVJbnB1dE1ldGhvZEhhbmRsZXIpCiAtIChCT09MKWludGVycHJldEtleUV2ZW50czooTlNBcnJh
eSAqKWV2ZW50QXJyYXkgd2l0aFNlbmRlcjooV2ViSFRNTFZpZXcgKilzZW5kZXI7CkBAIC01MDcs
MjEgKzUwOCwyMSBAQCAtIChCT09MKWludGVycHJldEtleUV2ZW50czooTlNBcnJheSAqKWV2ZW50
QXJyYXkgd2l0aFNlbmRlcjooV2ViSFRNTFZpZXcgKilzZW5kZQogICAgIE5TRXZlbnQgKmV2ZW50
ID0gW2V2ZW50QXJyYXkgb2JqZWN0QXRJbmRleDowXTsKICAgICB1bnNpZ25lZCBtb2RpZmllckZs
YWdzID0gW2V2ZW50IG1vZGlmaWVyRmxhZ3NdOyAKICAgICBOU011dGFibGVBcnJheSAqbW9kaWZp
ZXJzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF07Ci0gICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0FscGhhU2hpZnRLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NhcHNMb2NrKQogICAgICAgICBbbW9kaWZpZXJzIGFkZE9iamVjdDpAIk5T
QWxwaGFTaGlmdEtleU1hc2siXTsKLSAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlN
YXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KQog
ICAgICAgICBbbW9kaWZpZXJzIGFkZE9iamVjdDpAIk5TU2hpZnRLZXlNYXNrIl07Ci0gICAgaWYg
KG1vZGlmaWVyRmxhZ3MgJiBOU0NvbnRyb2xLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2Jq
ZWN0OkAiTlNDb250cm9sS2V5TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNBbHRl
cm5hdGVLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxh
Z09wdGlvbikKICAgICAgICAgW21vZGlmaWVycyBhZGRPYmplY3Q6QCJOU0FsdGVybmF0ZUtleU1h
c2siXTsKLSAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spCisgICAgaWYg
KG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkKICAgICAgICAgW21v
ZGlmaWVycyBhZGRPYmplY3Q6QCJOU0NvbW1hbmRLZXlNYXNrIl07Ci0gICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiBOU051bWVyaWNQYWRLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNF
dmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQpCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0
OkAiTlNOdW1lcmljUGFkS2V5TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNIZWxw
S2V5TWFzaykKKyAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdIZWxw
KQogICAgICAgICBbbW9kaWZpZXJzIGFkZE9iamVjdDpAIk5TSGVscEtleU1hc2siXTsKLSAgICBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TRnVuY3Rpb25LZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZs
YWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uKQogICAgICAgICBbbW9kaWZpZXJzIGFk
ZE9iamVjdDpAIk5TRnVuY3Rpb25LZXlNYXNrIl07CiAgICAgCiAgICAgV2ViU2NyaXB0T2JqZWN0
KiBldmVudFBhcmFtID0gW2lucHV0TWV0aG9kSGFuZGxlciBldmFsdWF0ZVdlYlNjcmlwdDpAIm5l
dyBPYmplY3QoKTsiXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbQppbmRleCA2Nzg2NzAwZWQyM2Q3
YWFhODFjMWUxNjAxYjY5ZmQzYTIxZDVlYzUyLi5hZDA0YzVlYzg0ZjhiZjRmNTlmYmQzMTYxMGZm
YzJlODE4YTY5YmVmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9Db21tYW5kQmFja0ZvcndhcmQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1tCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW1wb3J0IDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ZpZXdQ
cml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBDb21tYW5kQmFj
a0ZvcndhcmRPZmZzY3JlZW5XaW5kb3cgOiBOU1dpbmRvdwogQGVuZApAQCAtNjIsOSArNjMsOSBA
QCBzdGF0aWMgdm9pZCBzaW11bGF0ZUNvbW1hbmRBcnJvdyhOU1ZpZXcgKnZpZXcsIEFycm93RGly
ZWN0aW9uIGRpcmVjdGlvbikKICAgICBOU1N0cmluZyAqZXZlbnRDaGFyYWN0ZXIgPSAoZGlyZWN0
aW9uID09IExlZnQpID8gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZsZWZ0IGxlbmd0
aDoxXSA6IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczomcmlnaHQgbGVuZ3RoOjFdOwog
ICAgIHVuc2lnbmVkIHNob3J0IGtleUNvZGUgPSAoZGlyZWN0aW9uID09IExlZnQpID8gMHg3QiA6
IDB4N0M7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6
TlNLZXlEb3duCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBl
Ok5TRXZlbnRUeXBlS2V5RG93bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbW9kaWZpZXJGbGFnczpOU0NvbW1hbmRLZXlNYXNrCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOk5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOkdldEN1cnJlbnRF
dmVudFRpbWUoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJl
cjpbdmlldy53aW5kb3cgd2luZG93TnVtYmVyXQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdCkBA
IC03NSw5ICs3Niw5IEBAIHN0YXRpYyB2b2lkIHNpbXVsYXRlQ29tbWFuZEFycm93KE5TVmlldyAq
dmlldywgQXJyb3dEaXJlY3Rpb24gZGlyZWN0aW9uKQogCiAgICAgW3ZpZXcga2V5RG93bjpldmVu
dF07CiAKLSAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAorICAg
IGV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOk5TQ29tbWFuZEtleU1hc2sKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1h
bmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50
VGltZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOlt2aWV3LndpbmRv
dyB3aW5kb3dOdW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OltO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQpp
bmRleCBlYmU4OGI2YTQyY2UyYTFmNDE1YzM3MDk1M2U3NGFhMjQwZjliN2ZjLi44NGRjYmUyZjIy
NTZjZTllZmRmMjhlY2FhZjQ4MzE1ZmQ0M2U2NTRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1t
CkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgog
I2ltcG9ydCA8V2ViS2l0L19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRp
b25zLmg+CiAKIHN0YXRpYyBib29sIHJlY2VpdmVkTG9hZGVkTWVzc2FnZTsKIHN0YXRpYyBib29s
IHJlY2VpdmVkV2lsbEVudGVyRnVsbHNjcmVlbk1lc3NhZ2U7CkBAIC04MywxNCArODQsMTQgQEAg
VEVTVChGdWxsc2NyZWVuLCBEZWxlZ2F0ZSkKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6
QCJmdWxsc2NyZWVuQ2hhbmdlSGFuZGxlciJdOwogICAgIFt3ZWJWaWV3IF9zZXRGdWxsc2NyZWVu
RGVsZWdhdGU6aGFuZGxlci5nZXQoKV07CiAKLSAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRv
dyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmll
dyBmcmFtZV0gc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5k
b3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZp
ZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpO
U0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAgW1t3aW5kb3cgY29udGVudFZp
ZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJGdWxsc2NyZWVuRGVsZWdhdGUiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkTG9hZGVkTWVzc2FnZSk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwg
NSkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCku
d2luZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3Vy
ZTowXTsKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZp
ZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVt
YmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAg
ICBbd2ViVmlldyBtb3VzZURvd246ZXZlbnRdOwogCiAgICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3
IF9pc0luRnVsbHNjcmVlbl0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRz
Lm1tCmluZGV4IDRkZWEwYmMzZmRlMGExMjA2ZjE3ZjIwZTJhZTlhZmU4YWZmOGQzODUuLmJjMzBi
NjhmNWNjMzUzMGE5ZTFjMDAwZGFhMTNiZjMyNjE1ZGM4OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50
cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2Ny
ZWVuTGF5b3V0Q29uc3RyYWludHMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
Vmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9t
YWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBzdGF0aWMgYm9vbCByZWNl
aXZlZExvYWRlZE1lc3NhZ2U7CiBzdGF0aWMgYm9vbCByZWNlaXZlZEZ1bGxzY3JlZW5DaGFuZ2VN
ZXNzYWdlOwpAQCAtNjAsNyArNjEsNyBAQCBURVNUKEZ1bGxzY3JlZW4sIExheW91dENvbnN0cmFp
bnRzKQogICAgIFJldGFpblB0cjxGdWxsc2NyZWVuU3RhdGVDaGFuZ2VNZXNzYWdlSGFuZGxlcj4g
aGFuZGxlciA9IGFkb3B0TlMoW1tGdWxsc2NyZWVuU3RhdGVDaGFuZ2VNZXNzYWdlSGFuZGxlciBh
bGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJd
IGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAImZ1bGxzY3JlZW5T
dGF0ZUNoYW5nZUhhbmRsZXIiXTsKIAotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0g
YWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZy
YW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0
b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9
IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBm
cmFtZV0gc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICB3ZWJWaWV3LmdldCgpLnRyYW5zbGF0
ZXNBdXRvcmVzaXppbmdNYXNrSW50b0NvbnN0cmFpbnRzID0gTk87CiAgICAgW1t3aW5kb3cgY29u
dGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAgICAgCkBAIC03NCwxNCArNzUs
MTQgQEAgVEVTVChGdWxsc2NyZWVuLCBMYXlvdXRDb25zdHJhaW50cykKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkTG9hZGVkTWVzc2FnZSk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkg
bW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2lu
ZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTow
XTsKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVy
IGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBb
d2ViVmlldyBtb3VzZURvd246ZXZlbnRdOwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlKTsKICAgICAKICAgICByZWNlaXZlZEZ1
bGxzY3JlZW5DaGFuZ2VNZXNzYWdlID0gZmFsc2U7CiAgICAgCi0gICAgTlNFdmVudCAqZXhpdEZT
RXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0
aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dO
dW1iZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBj
bGlja0NvdW50OjAgcHJlc3N1cmU6MF07CisgICAgTlNFdmVudCAqZXhpdEZTRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjAgcHJlc3N1cmU6MF07CiAgICAgW3dlYlZpZXcgbW91c2VEb3duOmV4aXRGU0V2ZW50
XTsKICAgICAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRnVsbHNjcmVl
bkNoYW5nZU1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW0KaW5k
ZXggYmYxZDBjYmMyZjQ1ZTRmZmI1NjJkNGU2NzRhZDBlMGY3YTM3NWE2MS4uMDFmNmU4ODkzYzFm
MzcyNzNmNzk4MDIzNzc4Y2RjNTIxZWViZDM4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuVG9wQ29u
dGVudEluc2V0Lm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3
Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRl
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENv
bXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRMb2FkZWRN
ZXNzYWdlOwogc3RhdGljIGJvb2wgcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdlTWVzc2FnZTsKQEAg
LTYxLDE0ICs2MiwxNCBAQCBURVNUKEZ1bGxzY3JlZW4sIFRvcENvbnRlbnRJbnNldCkKICAgICBS
ZXRhaW5QdHI8RnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHRO
UyhbW0Z1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAImZ1bGxzY3JlZW5DaGFuZ2VIYW5kbGVyIl07CiAKLSAg
ICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TQm9yZGVybGVz
c1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7Cisg
ICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0
eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5P
XSk7CiAgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07
CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJGdWxsc2NyZWVuVG9w
Q29udGVudEluc2V0IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZExvYWRlZE1lc3NhZ2UpOwog
Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0
TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6MCB3aW5kb3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAg
ZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CisgICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3du
IGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3
aW5kb3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1i
ZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CiAgICAgW3dlYlZpZXcgbW91c2VEb3duOmV2
ZW50XTsKIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRGdWxsc2NyZWVu
Q2hhbmdlTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9TaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvU2hvdWxkT3BlbkV4dGVybmFs
VVJMc0luTmV3V2luZG93QWN0aW9ucy5tbQppbmRleCAzYWJhOTcwOGIyM2MxZjQ0MTUwOWIwZTc5
NmM5OTczYzMxYTFmZDgxLi4xYWMzZDkyM2RhMTQ3MTRmN2RhOWY4Mjk1NmNjYmI1ZGM0MDNjNzNj
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TaG91
bGRPcGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dp
bmRvd0FjdGlvbnMubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS05hdmln
YXRpb25BY3Rpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBXS19BUElfRU5BQkxFRAogCkBAIC03Myw3
ICs3NCw3IEBAIFRFU1QoV2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luV2luZG93T3Bl
bikKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CiAKLSAgICBhdXRvIHdpbmRv
dyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmll
dyBmcmFtZV0gc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOworICAgIGF1dG8gd2luZG93ID0gYWRvcHROUyhb
W05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHls
ZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVC
dWZmZXJlZCBkZWZlcjpZRVNdKTsKICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmll
dzp3ZWJWaWV3LmdldCgpXTsKIAogICAgIGF1dG8gY29udHJvbGxlciA9IGFkb3B0TlMoW1tTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zQ29udHJvbGxlciBhbGxvY10gaW5p
dF0pOwpAQCAtODYsOCArODcsOCBAQCBURVNUKFdlYktpdDIsIFNob3VsZE9wZW5FeHRlcm5hbFVS
THNJbldpbmRvd09wZW4pCiAKICAgICBOU1BvaW50IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgx
MDAsIDEwMCk7CiAKLSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlj
a1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3
aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNz
dXJlOjFdXTsKLSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQg
bW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051
bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1d
OworICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNr
UG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdp
bmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1
cmU6MV1dOworICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xp
Y2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cg
d2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVz
c3VyZToxXV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjcmVhdGVkV2ViVmlldyk7
CiAgICAgY3JlYXRlZFdlYlZpZXcgPSBmYWxzZTsKIApAQCAtMTA4LDggKzEwOSw4IEBAIFRFU1Qo
V2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luV2luZG93T3BlbikKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CiAgICAgZmluaXNoZWROYXZp
Z2F0aW9uID0gZmFsc2U7CiAKLSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3Vz
ZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlv
bjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dp
bmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDox
IHByZXNzdXJlOjFdXTsKLSAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVw
OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNr
UG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdp
bmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1
cmU6MV1dOworICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9u
OmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2lu
ZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEg
cHJlc3N1cmU6MV1dOworICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAgbG9jYXRp
b246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3
aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6
MSBwcmVzc3VyZToxXV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjcmVhdGVkV2Vi
Vmlldyk7CiAgICAgY3JlYXRlZFdlYlZpZXcgPSBmYWxzZTsKIApAQCAtMTM0LDcgKzEzNSw3IEBA
IFRFU1QoV2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luVGFyZ2V0ZWRMaW5rKQogewog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKIAotICAgIGF1dG8gd2luZG93ID0gYWRv
cHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1l
XSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6WUVTXSk7CisgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpO
U1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVk
IGRlZmVyOllFU10pOwogICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZp
ZXcuZ2V0KCldOwogCiAgICAgYXV0byBjb250cm9sbGVyID0gYWRvcHROUyhbW1Nob3VsZE9wZW5F
eHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnNDb250cm9sbGVyIGFsbG9jXSBpbml0XSk7CkBA
IC0xNDgsOCArMTQ5LDggQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5U
YXJnZXRlZExpbmspCiAgICAgTlNQb2ludCBjbGlja1BvaW50ID0gTlNNYWtlUG9pbnQoMTAwLCAx
MDApOwogCiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwotICAgIFtbd2ViVmlldyBoaXRUZXN0
OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0
TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDow
IHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1i
ZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNs
aWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNl
VXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93
TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNs
aWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2lu
dF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAg
d2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJl
cjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xp
Y2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVM
ZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6
MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVt
YmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRlY2lkZWRQb2xpY3kpOwogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKIApAQCAt
MTc4LDggKzE3OSw4IEBAIFRFU1QoV2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luVGFy
Z2V0ZWRMaW5rKQogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAgZGVjaWRl
ZFBvbGljeSA9IGZhbHNlOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNl
RG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9u
OmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2lu
ZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEg
cHJlc3N1cmU6MV1dOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQ
b2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2lu
ZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3Vy
ZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246
Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5k
b3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBw
cmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlv
bjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dp
bmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDox
IHByZXNzdXJlOjFdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xp
Y3kpOwogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKIApAQCAtMjEwLDcgKzIxMSw3IEBAIFRF
U1QoV2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luVGFyZ2V0ZWRMaW5rKQogVEVTVChX
ZWJLaXQyLCBSZXN0b3JlU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeUFmdGVyQ3Jhc2gpCiB7
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwotICAgIGF1dG8gd2luZG93ID0gYWRv
cHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1l
XSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6WUVTXSk7CisgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpO
U1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVk
IGRlZmVyOllFU10pOwogICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZp
ZXcuZ2V0KCldOwogICAgIGF1dG8gY29udHJvbGxlciA9IGFkb3B0TlMoW1tTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zQ29udHJvbGxlciBhbGxvY10gaW5pdF0pOwogICAg
IFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1VzZXJJbml0aWF0
ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9Vc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9uLm1tCmlu
ZGV4IDZmZGMwNzVkNTE1MzY2ODU2ZmQyMzViZGI2OWRkM2IyYzU4MmUzYmQuLmM4NDRiMmUyNWJi
Y2ZkZmJlZTViODY0ODNmNmNiNDAzMWQwZjI5OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1VzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25B
Y3Rpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVXNl
ckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbQpAQCAtMzMsNiArMzMsNyBAQAog
I2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tV
c2VySW5pdGlhdGVkQWN0aW9uLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFdLX0FQ
SV9FTkFCTEVECiAKQEAgLTcyLDcgKzczLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCldKTsKIAotICAgICAgICB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpO
U0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZl
cjpZRVNdKTsKKyAgICAgICAgd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1h
c2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsK
ICAgICAgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07
CiAKICAgICAgICAgZGVsZWdhdGUgPSBhZG9wdE5TKFtbVXNlckluaXRpYXRlZEFjdGlvbkluTmF2
aWdhdGlvbkFjdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC05OSw4ICsxMDAsOCBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBOU1BvaW50IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgx
MDAsIDEwMCk7CiAKLSAgICAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VE
b3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246
Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5k
b3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBw
cmVzc3VyZToxXV07Ci0gICAgICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNl
VXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xp
Y2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cg
d2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVz
c3VyZToxXV07CisgICAgICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93
bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxv
Y2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJl
cjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0Nv
dW50OjEgcHJlc3N1cmU6MV1dOworICAgICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50
XSBtb3VzZVVwOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3Vz
ZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRv
d051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBj
bGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0FjY2VwdHNGaXJzdE1vdXNlLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvQWNjZXB0c0ZpcnN0TW91c2UubW0KaW5kZXggZGVjNzg4ODA0
ZjY1YjQxNjYxZTllOWQwZjNmZjBkNmFmZWU0N2IyMi4uN2MzNDQ5NDU1MGY3MjQ1YjEwZTA3M2I0
ODcxOGQxMTlhMGRiNGQ0MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQWNjZXB0c0ZpcnN0TW91c2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvQWNjZXB0c0ZpcnN0TW91c2UubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJL
aXRBZ25vc3RpY1Rlc3QuaCIKIAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFj
ZSBOU0FwcGxpY2F0aW9uIChUZXN0V2ViS2l0QVBJTlNBcHBsaWNhdGlvbkRldGFpbHMpCiAtICh2
b2lkKV9zZXRDdXJyZW50RXZlbnQ6KE5TRXZlbnQgKilldmVudDsKQEAgLTQ3LDE3ICs0OCwxNyBA
QCBwdWJsaWM6CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmlldz4KIHZvaWQgQWNjZXB0c0ZpcnN0TW91
c2U6OnJ1blRlc3QoVmlldyB2aWV3KQogewotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93
ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnZpZXcuZnJh
bWUgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOllFU10pOworICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0g
YWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnZpZXcuZnJhbWUg
c3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0
b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgW1t3aW5kb3cuZ2V0KCkgY29udGVudFZpZXdd
IGFkZFN1YnZpZXc6dmlld107CiAKICAgICBDR0Zsb2F0IHZpZXdIZWlnaHQgPSB2aWV3LmJvdW5k
cy5zaXplLmhlaWdodDsKIAogICAgIE5TUG9pbnQgcG9pbnRJbnNpZGVTZWxlY3Rpb24gPSBOU01h
a2VQb2ludCg1MCwgdmlld0hlaWdodCAtIDUwKTsKLSAgICBOU0V2ZW50ICptb3VzZUV2ZW50SW5z
aWRlU2VsZWN0aW9uID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93
biBsb2NhdGlvbjpwb2ludEluc2lkZVNlbGVjdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAgd2luZG93TnVtYmVyOlt3aW5kb3cuZ2V0KCkgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBl
dmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXTsKKyAgICBOU0V2ZW50ICptb3Vz
ZUV2ZW50SW5zaWRlU2VsZWN0aW9uID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpwb2ludEluc2lkZVNlbGVjdGlvbiBtb2RpZmll
ckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cuZ2V0KCkgd2luZG93TnVt
YmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXTsK
ICAgICBFWFBFQ1RfVFJVRShbW3ZpZXcgaGl0VGVzdDpwb2ludEluc2lkZVNlbGVjdGlvbl0gYWNj
ZXB0c0ZpcnN0TW91c2U6bW91c2VFdmVudEluc2lkZVNlbGVjdGlvbl0pOwogCiAgICAgTlNQb2lu
dCBwb2ludE91dHNpZGVTZWxlY3Rpb24gPSBOU01ha2VQb2ludCg1MCwgdmlld0hlaWdodCAtIDE1
MCk7Ci0gICAgTlNFdmVudCAqbW91c2VFdmVudE91dHNpZGVTZWxlY3Rpb24gPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50T3V0c2lkZVNl
bGVjdGlvbiBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cu
Z2V0KCkgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6
MSBwcmVzc3VyZToxXTsKKyAgICBOU0V2ZW50ICptb3VzZUV2ZW50T3V0c2lkZVNlbGVjdGlvbiA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9j
YXRpb246cG9pbnRPdXRzaWRlU2VsZWN0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3
aW5kb3dOdW1iZXI6W3dpbmRvdy5nZXQoKSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwogICAgIEVYUEVDVF9GQUxTRShbW3Zp
ZXcgaGl0VGVzdDpwb2ludEluc2lkZVNlbGVjdGlvbl0gYWNjZXB0c0ZpcnN0TW91c2U6bW91c2VF
dmVudE91dHNpZGVTZWxlY3Rpb25dKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCmluZGV4IDhkYWI2Mzc4MDg5
Zjc5OTU1MWUxOGJmN2I3NTBlZDhmMzI0Y2ZjYWQuLmQ5NTc2Mzk0NGM2ZjkyZWM1NGYzNzIyM2E5
ZTU2OTg3YzRjNjIxZTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
PFdlYktpdC9ET00uaD4KICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogCiAKIEBpbnRlcmZhY2UgQ29udGV4dE1lbnVDYW5Db3B5VVJMRGVsZWdhdGUgOiBO
U09iamVjdCA8V2ViRnJhbWVMb2FkRGVsZWdhdGU+IHsKQEAgLTYxLDcgKzYyLDcgQEAgc3RhdGlj
IHZvaWQgY29udGV4dE1lbnVDb3B5TGluayhXZWJWaWV3KiB3ZWJWaWV3LCBpbnQgaXRlbUluZGV4
KQogICAgIERPTUhUTUxBbmNob3JFbGVtZW50ICphbmNob3IgPSAoRE9NSFRNTEFuY2hvckVsZW1l
bnQgKilbW2RvY3VtZW50RWxlbWVudCBxdWVyeVNlbGVjdG9yQWxsOkAiYSJdIGl0ZW06aXRlbUlu
ZGV4XTsKIAogICAgIE5TV2luZG93ICp3aW5kb3cgPSBbd2ViVmlldyB3aW5kb3ddOwotICAgIE5T
RXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURv
d24KKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoYW5jaG9yLm9mZnNldExlZnQgKyBhbmNob3Iub2Zm
c2V0V2lkdGggLyAyLCB3aW5kb3cuZnJhbWUuc2l6ZS5oZWlnaHQgLSAoYW5jaG9yLm9mZnNldFRv
cCArIGFuY2hvci5vZmZzZXRIZWlnaHQgLyAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCkBAIC04OSw3ICs5MCw3IEBA
IHN0YXRpYyB2b2lkIGNvbnRleHRNZW51Q29weUxpbmsoV2ViVmlldyogd2ViVmlldywgaW50IGl0
ZW1JbmRleCkKIFRFU1QoV2ViS2l0MSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMKQogewogICAgIFJl
dGFpblB0cjxXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLDAsODAwLDYwMCkgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6
bmlsXSk7Ci0gICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgxMDAsIDEwMCwgODAwLCA2
MDApIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3Rv
cmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9
IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0
KDEwMCwgMTAwLCA4MDAsIDYwMCkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVz
cyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgUmV0YWlu
UHRyPENvbnRleHRNZW51Q2FuQ29weVVSTERlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tD
b250ZXh0TWVudUNhbkNvcHlVUkxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogCiAgICAgW3dpbmRv
dy5nZXQoKS5jb250ZW50VmlldyBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNI
YXZlVGFncy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51RGVm
YXVsdEl0ZW1zSGF2ZVRhZ3MubW0KaW5kZXggOWUwNDdmNmE4NTJiOGU0YWJmMmFjYWRlZTRjZmI0
Yzk4ZmZiNTQ2OC4uNThmMDIxN2JjOGQ2ZjViZjZhNjgwN2Q1MmQ2Zjk5ODJkZjc3NjUwYSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVEZWZhdWx0
SXRlbXNIYXZlVGFncy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250
ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0
ICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURl
Y2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIENvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRh
Z3NEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXZWJGcmFtZUxvYWREZWxlZ2F0ZT4KIEBlbmQKQEAgLTQ5
LDcgKzUwLDcgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogVEVTVChXZWJLaXQxLCBDb250
ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzKQogewogICAgIFJldGFpblB0cjxXZWJWaWV3PiB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCkgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7Ci0gICAgUmV0
YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRX
aXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgxMDAsIDEwMCwgODAwLCA2MDApIHN0eWxlTWFzazpO
U0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZl
cjpZRVNdKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAwLCA4MDAs
IDYwMCkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgUmV0YWluUHRyPENvbnRleHRNZW51
RGVmYXVsdEl0ZW1zSGF2ZVRhZ3NEZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQ29udGV4
dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFnc0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAKICAgICBb
d2luZG93LmdldCgpLmNvbnRlbnRWaWV3IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CkBAIC01
OSw3ICs2MCw3IEBAIFRFU1QoV2ViS2l0MSwgQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFn
cykKIAogICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CiAKLSAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VEb3duIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDQwMCwgMzAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOltOU0RhdGUg
dGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24gbG9jYXRp
b246TlNNYWtlUG9pbnQoNDAwLCAzMDApIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6W05TRGF0
ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpb
d2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENv
bnRleHRdIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogICAgIE5TVmll
dyAqc3ViVmlldyA9IFt3ZWJWaWV3IGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXTsK
ICAgICBOU01lbnUgKm1lbnUgPSBbc3ViVmlldyBtZW51Rm9yRXZlbnQ6ZXZlbnRdOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFs
RnJhbWUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUlu
aXRpYWxGcmFtZS5tbQppbmRleCBkMzJhYWNlMDM1OGQ4MTM0ZGJjODZjNjIyNzhhOGU2ZjIzYTBj
YjRiLi5mZmMwYzZlNzUzNTBlNTFkNmM2MjkyZTk5NjNjYzhlMDAyYzkyZjQ5IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFt
ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUlu
aXRpYWxGcmFtZS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLVmlld1By
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5
RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgTlNXaW5kb3dDb250cm9sbGVyIChXZWJLaXRG
dWxsU2NyZWVuQWRkaXRpb25zKQogLSAoTlNSZWN0KWluaXRpYWxGcmFtZTsKQEAgLTE1MCwxMiAr
MTUxLDEyIEBAIHZvaWQgRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWU6OnNlbmRNb3VzZURvd25F
dmVudChXS1ZpZXcgKndrVmlldywgTlNFdmVudCAqZXZlCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmll
dz4KIHZvaWQgRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWU6OnJ1blRlc3QoVmlldyB2aWV3KQog
ewotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFs
bG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnZpZXcuZnJhbWUgc3R5bGVNYXNrOk5TQm9yZGVybGVz
c1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7Cisg
ICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6dmlldy5mcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1h
c2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwog
ICAgIFt3aW5kb3cuZ2V0KCkuY29udGVudFZpZXcgYWRkU3Vidmlldzp2aWV3XTsKIAogICAgIHNl
dFBhZ2VTY2FsZSh2aWV3LCAyKTsKIAotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1
KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53
aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmll
ckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1i
ZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogCiAg
ICAgaXNXYWl0aW5nRm9yUGFnZVNpZ25hbFRvQ29udGludWUgPSB0cnVlOwogICAgIGRpZEdldFBh
Z2VTaWduYWxUb0NvbnRpbnVlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9NZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL01lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tCmluZGV4IDhlNGI0Zjc5
MWE5YWYwYTdmZTJiNzZmZWU2ZTkwM2I4MTBjMWYwYjYuLjIzMjA3NDBjNWJhNzRlNzdlMzUwZjc1
NmY2ZGZkYTI5M2M4YzhiYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL01lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL01lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tCkBAIC0zMCw2ICszMCw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDx3dGYv
QXV0b2RyYWluZWRQb29sLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3
dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgewogCkBAIC02Myw3NyArNjQsNzcgQEAgc3RhdGljIHZvaWQgYnVpbGRBbmRQ
ZXJmb3JtVGVzdChOU0V2ZW50VHlwZSBidXR0b25FdmVudCwgTlNFdmVudE1vZGlmaWVyRmxhZ3Mg
bW8KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yTm9ybWFsTGVmdENsaWNrKQogewot
ICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNMZWZ0TW91c2VEb3duLCAwLCBXZWJDb3JlOjpMZWZ0
QnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd24sIDAsIFdlYkNvcmU6OkxlZnRCdXR0b24sIE5TTWVudVR5cGVOb25l
KTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yTm9ybWFsUmlnaHRDbGljaykK
IHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TUmlnaHRNb3VzZURvd24sIDAsIFdlYkNvcmU6
OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOworICAgIGJ1aWxkQW5kUGVyZm9y
bVRlc3QoTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biwgMCwgV2ViQ29yZTo6UmlnaHRCdXR0b24s
IE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRv
bkZvck5vcm1hbE1pZGRsZUNsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNPdGhl
ck1vdXNlRG93biwgMCwgV2ViQ29yZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7Cisg
ICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duLCAwLCBXZWJD
b3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKIH0KIAogVEVTVChXZWJLaXQxLCBN
ZW51QW5kQnV0dG9uRm9yQ29udHJvbExlZnRDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1U
ZXN0KE5TTGVmdE1vdXNlRG93biwgTlNDb250cm9sS2V5TWFzaywgV2ViQ29yZTo6TGVmdEJ1dHRv
biwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wsIFdlYkNvcmU6
OkxlZnRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwg
TWVudUFuZEJ1dHRvbkZvckNvbnRyb2xSaWdodENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9y
bVRlc3QoTlNSaWdodE1vdXNlRG93biwgTlNDb250cm9sS2V5TWFzaywgV2ViQ29yZTo6UmlnaHRC
dXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChO
U0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCwgV2Vi
Q29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2Vi
S2l0MSwgTWVudUFuZEJ1dHRvbkZvckNvbnRyb2xNaWRkbGVDbGljaykKIHsKLSAgICBidWlsZEFu
ZFBlcmZvcm1UZXN0KE5TT3RoZXJNb3VzZURvd24sIE5TQ29udHJvbEtleU1hc2ssIFdlYkNvcmU6
Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3Qo
TlNFdmVudFR5cGVPdGhlck1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wsIFdl
YkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogICAgIAogVEVTVChXZWJL
aXQxLCBNZW51QW5kQnV0dG9uRm9yU2hpZnRMZWZ0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJm
b3JtVGVzdChOU0xlZnRNb3VzZURvd24sIE5TU2hpZnRLZXlNYXNrLCBXZWJDb3JlOjpMZWZ0QnV0
dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCwgV2ViQ29yZTo6TGVmdEJ1
dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25G
b3JTaGlmdFJpZ2h0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU1JpZ2h0TW91
c2VEb3duLCBOU1NoaWZ0S2V5TWFzaywgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVD
b250ZXh0TWVudSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQsIFdlYkNvcmU6OlJpZ2h0QnV0dG9uLCBO
U01lbnVUeXBlQ29udGV4dE1lbnUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25G
b3JTaGlmdE1pZGRsZUNsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNPdGhlck1v
dXNlRG93biwgTlNTaGlmdEtleU1hc2ssIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlw
ZU5vbmUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVPdGhlck1vdXNlRG93
biwgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0LCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVu
dVR5cGVOb25lKTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQ29tbWFuZExl
ZnRDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TTGVmdE1vdXNlRG93biwgTlND
b21tYW5kS2V5TWFzaywgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOworICAg
IGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duLCBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29tbWFuZCwgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwog
fQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JDb21tYW5kUmlnaHRDbGljaykKIHsK
LSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TUmlnaHRNb3VzZURvd24sIE5TQ29tbWFuZEtleU1h
c2ssIFdlYkNvcmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOworICAgIGJ1
aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biwgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQsIFdlYkNvcmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1l
bnUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JDb21tYW5kTWlkZGxlQ2xp
Y2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU090aGVyTW91c2VEb3duLCBOU0NvbW1h
bmRLZXlNYXNrLCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBi
dWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24sIE5TRXZlbnRNb2Rp
ZmllckZsYWdDb21tYW5kLCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsK
IH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQWx0TGVmdENsaWNrKQogewotICAg
IGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNMZWZ0TW91c2VEb3duLCBOU0FsdGVybmF0ZUtleU1hc2ss
IFdlYkNvcmU6OkxlZnRCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFuZFBlcmZv
cm1UZXN0KE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
biwgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktp
dDEsIE1lbnVBbmRCdXR0b25Gb3JBbHRSaWdodENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9y
bVRlc3QoTlNSaWdodE1vdXNlRG93biwgTlNBbHRlcm5hdGVLZXlNYXNrLCBXZWJDb3JlOjpSaWdo
dEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0
KE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24sIFdl
YkNvcmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOwogfQogCiBURVNUKFdl
YktpdDEsIE1lbnVBbmRCdXR0b25Gb3JBbHRNaWRkbGVDbGljaykKIHsKLSAgICBidWlsZEFuZFBl
cmZvcm1UZXN0KE5TT3RoZXJNb3VzZURvd24sIE5TQWx0ZXJuYXRlS2V5TWFzaywgV2ViQ29yZTo6
TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChO
U0V2ZW50VHlwZU90aGVyTW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uLCBXZWJD
b3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKIH0KIAogCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVV0aWxpdGllc01hYy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtVXRpbGl0aWVzTWFjLm1tCmluZGV4IDljNjM4ZmY0NDQy
YWI0MDQxNDI4ZjA1YjM3Njg5NmM4YjFkOWM1MjkuLmEwYzQyZTc4OWI0NDBjZDgxM2I2N2ZkMjM2
ZTlhODlhNmVmMjkzMDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRm
b3JtVXRpbGl0aWVzTWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3Jt
VXRpbGl0aWVzTWFjLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJM
UmVzcG9uc2VOUy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIG5hbWVzcGFjZSBVdGls
IHsKQEAgLTYyLDcgKzYzLDcgQEAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IE1JTUVUeXBlRm9y
V0tVUkxSZXNwb25zZShXS1VSTFJlc3BvbnNlUmVmIHdrUmVzcG9uc2UpCiAKIGJvb2wgaXNLZXlE
b3duKFdLTmF0aXZlRXZlbnRQdHIgZXZlbnQpCiB7Ci0gICAgcmV0dXJuIFtldmVudCB0eXBlXSA9
PSBOU0tleURvd247CisgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURv
d247CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFV0aWwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1BsYXRmb3JtV2ViVmlld01hYy5tbQppbmRleCBhZDM1ZjU4NmNmNzIzNTlhM2I3ZTkxMzZmOWVi
ZWJhMTYyMmY3YzdkLi4yZTM5Y2E0YTRjODFhOGFlNjczOGY1MGU3Y2EyMTUzMjM0MDdkNzdmIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tSZXRhaW5QdHIuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ZpZXdQcml2YXRlLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFj
ZSBBY3RpdmVPZmZzY3JlZW5XaW5kb3cgOiBOU1dpbmRvdwogQGVuZApAQCAtNTMsNyArNTQsNyBA
QCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6aW5pdGlhbGl6ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24sIENsYXNzIHdrVgogICAgIFttX3ZpZXcgc2V0V2luZG93T2NjbHVzaW9u
RGV0ZWN0aW9uRW5hYmxlZDpOT107CiAKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IE5TT2Zmc2V0
UmVjdChyZWN0LCAtMTAwMDAsIFsoTlNTY3JlZW4gKilbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVj
dEF0SW5kZXg6MF0gZnJhbWVdLnNpemUuaGVpZ2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAw
KTsKLSAgICBtX3dpbmRvdyA9IFtbQWN0aXZlT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sg
YmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CisgICAgbV93aW5kb3cg
PSBbW0FjdGl2ZU9mZnNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5k
b3dSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CiAgICAgW21fd2luZG93IHNldENvbG9yU3Bh
Y2U6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBjb2xvclNwYWNlXV07CiAgICAgW1ttX3dpbmRvdyBj
b250ZW50Vmlld10gYWRkU3VidmlldzptX3ZpZXddOwogICAgIFttX3dpbmRvdyBvcmRlckJhY2s6
bmlsXTsKQEAgLTEyMSw3ICsxMjIsNyBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQog
CiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKCkKIHsKLSAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlEb3duCisg
ICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
S2V5RG93bgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpO
U01ha2VQb2ludCg1LCA1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZp
ZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1w
OkdldEN1cnJlbnRFdmVudFRpbWUoKQpAQCAtMTM0LDcgKzEzNSw3IEBAIHZvaWQgUGxhdGZvcm1X
ZWJWaWV3OjpzaW11bGF0ZVNwYWNlYmFyS2V5UHJlc3MoKQogCiAgICAgW21fdmlldyBrZXlEb3du
OmV2ZW50XTsKIAotICAgIGV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleVVw
CisgICAgZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTE1MCw3ICsx
NTEsNyBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKCkK
IAogdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlUmlnaHRDbGljayh1bnNpZ25lZCB4LCB1
bnNpZ25lZCB5KQogewotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TUmlnaHRNb3VzZURvd24KKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoeCwgeSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50
VGltZSgpCkBAIC0xNjMsNyArMTY0LDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRl
UmlnaHRDbGljayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQogCiAgICAgW21fdmlldyByaWdodE1v
dXNlRG93bjpldmVudF07CiAKLSAgICBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU1JpZ2h0TW91c2VVcAorICAgIGV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBl
Ok5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9jYXRpb246TlNNYWtlUG9pbnQoeCwgeSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9k
aWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0
Q3VycmVudEV2ZW50VGltZSgpCkBAIC0xNzksNyArMTgwLDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZp
ZXc6OnNpbXVsYXRlUmlnaHRDbGljayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQogICAgIAogdm9p
ZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlTW91c2VNb3ZlKHVuc2lnbmVkIHgsIHVuc2lnbmVk
IHkpCiB7ICAgCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNNb3VzZU1vdmVkCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoeCwgeSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3Rh
bXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCkBAIC0xOTcsMzEgKzE5OCwzMSBAQCBzdGF0aWMgTlNF
dmVudFR5cGUgZXZlbnRUeXBlRm9yQnV0dG9uKFdLRXZlbnRNb3VzZUJ1dHRvbiBidXR0b24pCiB7
CiAgICAgc3dpdGNoIChidXR0b24pIHsKICAgICBjYXNlIGtXS0V2ZW50TW91c2VCdXR0b25MZWZ0
QnV0dG9uOgotICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOworICAgICAgICByZXR1cm4g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwogICAgIGNhc2Uga1dLRXZlbnRNb3VzZUJ1dHRvblJp
Z2h0QnV0dG9uOgotICAgICAgICByZXR1cm4gTlNSaWdodE1vdXNlRG93bjsKKyAgICAgICAgcmV0
dXJuIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd247CiAgICAgY2FzZSBrV0tFdmVudE1vdXNlQnV0
dG9uTWlkZGxlQnV0dG9uOgotICAgICAgICByZXR1cm4gTlNPdGhlck1vdXNlRG93bjsKKyAgICAg
ICAgcmV0dXJuIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd247CiAgICAgY2FzZSBrV0tFdmVudE1v
dXNlQnV0dG9uTm9CdXR0b246Ci0gICAgICAgIHJldHVybiBOU0xlZnRNb3VzZURvd247CisgICAg
ICAgIHJldHVybiBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAgICAgfQogCi0gICAgcmV0dXJu
IE5TTGVmdE1vdXNlRG93bjsKKyAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwog
fQogCiBzdGF0aWMgTlNFdmVudE1vZGlmaWVyRmxhZ3MgbW9kaWZpZXJGbGFnc0ZvcldLTW9kaWZp
ZXJzKFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzKQogewogICAgIE5TRXZlbnRNb2RpZmllckZs
YWdzIHJldHVyblZhbCA9IDA7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJz
U2hpZnRLZXkpCi0gICAgICAgIHJldHVyblZhbCB8PSBOU1NoaWZ0S2V5TWFzazsKKyAgICAgICAg
cmV0dXJuVmFsIHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKICAgICBpZiAobW9kaWZpZXJz
ICYga1dLRXZlbnRNb2RpZmllcnNDb250cm9sS2V5KQotICAgICAgICByZXR1cm5WYWwgfD0gTlND
b250cm9sS2V5TWFzazsKKyAgICAgICAgcmV0dXJuVmFsIHw9IE5TRXZlbnRNb2RpZmllckZsYWdD
b250cm9sOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc0FsdEtleSkKLSAg
ICAgICAgcmV0dXJuVmFsIHw9IE5TQWx0ZXJuYXRlS2V5TWFzazsKKyAgICAgICAgcmV0dXJuVmFs
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb247CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2
ZW50TW9kaWZpZXJzTWV0YUtleSkKLSAgICAgICAgcmV0dXJuVmFsIHw9IE5TQ29tbWFuZEtleU1h
c2s7CisgICAgICAgIHJldHVyblZhbCB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKICAg
ICBpZiAobW9kaWZpZXJzICYga1dLRXZlbnRNb2RpZmllcnNDYXBzTG9ja0tleSkKLSAgICAgICAg
cmV0dXJuVmFsIHw9IE5TQWxwaGFTaGlmdEtleU1hc2s7CisgICAgICAgIHJldHVyblZhbCB8PSBO
U0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2s7CiAKICAgICByZXR1cm4gcmV0dXJuVmFsOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0KaW5kZXggMWE2NjY1
YmYyYmI4NjBlMWU4ZDJkYWVkOTZjOTllOWM2OWE2YzYyYi4uODkzYjFiYzJmYjcyYzJiZmIyOWU3
OWYyNTA0ODAyZjExNjVhYWRmOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMv
VGVzdFdLV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tX
ZWJWaWV3TWFjLm1tCkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0UHJp
dmF0ZS5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
IAogQGltcGxlbWVudGF0aW9uIFRlc3RNZXNzYWdlSGFuZGxlciB7CiAgICAgTlNNdXRhYmxlRGlj
dGlvbmFyeTxOU1N0cmluZyAqLCBkaXNwYXRjaF9ibG9ja190PiAqX21lc3NhZ2VIYW5kbGVyczsK
QEAgLTcwLDIxICs3MSwxMyBAQCBzdGF0aWMgaW50IGdFdmVudE51bWJlciA9IDE7CiAjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDMKIE5TRXZlbnRNYXNrIF9fc2lt
dWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayhpZCBzZWxmLCBTRUwgX2NtZCkK
IHsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIHJl
dHVybiBOU0V2ZW50TWFza1ByZXNzdXJlIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEb3duIHwgTlNF
dmVudE1hc2tMZWZ0TW91c2VVcCB8IE5TRXZlbnRNYXNrTGVmdE1vdXNlRHJhZ2dlZDsKLSNlbHNl
Ci0gICAgcmV0dXJuIE5TRXZlbnRNYXNrUHJlc3N1cmUgfCAoMSA8PCBOU0xlZnRNb3VzZURvd24p
IHwgKDEgPDwgTlNMZWZ0TW91c2VVcCkgfCAoMSA8PCBOU0xlZnRNb3VzZURyYWdnZWQpOwotI2Vu
ZGlmCiB9CiAjZW5kaWYKIAogLSAodm9pZClfbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2lu
dCBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUKIHsKLSNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIE5TRXZlbnRUeXBlIG1vdXNl
RXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwotI2Vsc2UKLSAgICBOU0V2ZW50
VHlwZSBtb3VzZUV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93bjsKLSNlbmRpZgogCiAgICAgTlNF
dmVudE1hc2sgbW9kaWZpZXJGbGFncyA9IDA7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEwMDMKQEAgLTE1Nyw3ICsxNTAsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3Vy
YXRpbwogCiAtICh2b2lkKV9zZXRVcFRlc3RXaW5kb3c6KE5TUmVjdClmcmFtZQogewotICAgIF9o
b3N0V2luZG93ID0gW1tUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250
ZW50UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOworICAgIF9ob3N0V2luZG93ID0gW1tUZXN0
V0tXZWJWaWV3SG9zdFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBzdHls
ZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVC
dWZmZXJlZCBkZWZlcjpOT107CiAgICAgW19ob3N0V2luZG93IHNldEZyYW1lT3JpZ2luOk5TTWFr
ZVBvaW50KDAsIDApXTsKICAgICBbW19ob3N0V2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3
OnNlbGZdOwogICAgIFtfaG9zdFdpbmRvdyBzZXRJc1Zpc2libGU6WUVTXTsKQEAgLTE5MywxMyAr
MTg2LDggQEAgLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5n
ICopcGFnZU5hbWUKIAogLSAodm9pZCl0eXBlQ2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlciB7CiAg
ICAgTlNTdHJpbmcgKmNoYXJhY3RlckFzU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCIlYyIgLCBjaGFyYWN0ZXJdOwotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMjAwCiAgICAgTlNFdmVudFR5cGUga2V5RG93bkV2ZW50VHlwZSA9IE5TRXZlbnRU
eXBlS2V5RG93bjsKICAgICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBl
S2V5VXA7Ci0jZWxzZQotICAgIE5TRXZlbnRUeXBlIGtleURvd25FdmVudFR5cGUgPSBOU0tleURv
d247Ci0gICAgTlNFdmVudFR5cGUga2V5VXBFdmVudFR5cGUgPSBOU0tleVVwOwotI2VuZGlmCiAg
ICAgW3NlbGYga2V5RG93bjpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleURvd25FdmVudFR5
cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJy
ZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOl9ob3N0V2luZG93LndpbmRvd051bWJlciBjb250
ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01v
ZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJd
XTsKICAgICBbc2VsZiBrZXlVcDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleVVwRXZlbnRU
eXBlIGxvY2F0aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3Vy
cmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjpfaG9zdFdpbmRvdy53aW5kb3dOdW1iZXIgY29u
dGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdN
b2RpZmllcnM6Y2hhcmFjdGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVy
XV07CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRl
clByb3h5Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5t
bQppbmRleCBjYWZjM2VkZGE5YmY4NWVlMTA2NWFmZGUwODlmMTY0OTM1NjQxZTZiLi5kNWJjZGQ3
OWRiNWNjNTA1Njg0NzNhZWU5N2RhZTIzMzhkNDQwMzE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBv
cnQgPFdlYktpdC9XS1BhZ2VQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBh
dGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChEZXRh
aWxzKQogLSAodm9pZClfc2V0Q3VycmVudEV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CkBAIC0yMDcs
MzMgKzIwOCwzMyBAQCBzdHJ1Y3QgS2V5TWFwcGluZ0VudHJ5IHsKIHN0YXRpYyBOU0V2ZW50VHlw
ZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlv
biBhY3Rpb24pCiB7CiAgICAgc3dpdGNoIChidXR0b24pIHsKLSAgICAgICAgY2FzZSBMZWZ0TW91
c2VCdXR0b246Ci0gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgICAgICAgICAgICAg
IGNhc2UgTW91c2VEb3duOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VE
b3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIE5TTGVmdE1vdXNlVXA7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU0xlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgUmlnaHRNb3VzZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRj
aCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBOU1JpZ2h0TW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2Ug
TW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TUmlnaHRNb3VzZVVwOwotICAg
ICAgICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gTlNSaWdodE1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3Vz
ZURvd246Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU090aGVyTW91c2VEb3duOwotICAg
ICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5T
T3RoZXJNb3VzZVVwOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gTlNPdGhlck1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0K
KyAgICBjYXNlIExlZnRNb3VzZUJ1dHRvbjoKKyAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAg
ICAgICAgY2FzZSBNb3VzZURvd246CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNF
dmVudFR5cGVMZWZ0TW91c2VVcDsKKyAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAg
ICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICB9CisgICAg
Y2FzZSBSaWdodE1vdXNlQnV0dG9uOgorICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAg
ICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVu
dFR5cGVSaWdodE1vdXNlVXA7CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAg
ICAgcmV0dXJuIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KKyAgICBk
ZWZhdWx0OgorICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93
bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOworICAgICAg
ICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNl
VXA7CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZl
bnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KICAgICB9CiAgICAgYXNzZXJ0KDAp
OwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0V2ZW50VHlwZT4oMCk7CkBAIC0yNDMsMTUgKzI0
NCwxNSBAQCBzdGF0aWMgaW50IGJ1aWxkTW9kaWZpZXJGbGFncyhXS0V2ZW50TW9kaWZpZXJzIG1v
ZGlmaWVycykKIHsKICAgICBpbnQgZmxhZ3MgPSAwOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tF
dmVudE1vZGlmaWVyc0NvbnRyb2xLZXkpCi0gICAgICAgIGZsYWdzIHw9IE5TQ29udHJvbEtleU1h
c2s7CisgICAgICAgIGZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwogICAgIGlm
IChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc1NoaWZ0S2V5KQotICAgICAgICBmbGFncyB8
PSBOU1NoaWZ0S2V5TWFzazsKKyAgICAgICAgZmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1No
aWZ0OwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc0FsdEtleSkKLSAgICAg
ICAgZmxhZ3MgfD0gTlNBbHRlcm5hdGVLZXlNYXNrOworICAgICAgICBmbGFncyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnT3B0aW9uOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVy
c01ldGFLZXkpCi0gICAgICAgIGZsYWdzIHw9IE5TQ29tbWFuZEtleU1hc2s7CisgICAgICAgIGZs
YWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogICAgIGlmIChtb2RpZmllcnMgJiBr
V0tFdmVudE1vZGlmaWVyc0NhcHNMb2NrS2V5KQotICAgICAgICBmbGFncyB8PSBOU0FscGhhU2hp
ZnRLZXlNYXNrOworICAgICAgICBmbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2s7
CiAgICAgcmV0dXJuIGZsYWdzOwogfQogCkBAIC0zNTEsNyArMzUyLDcgQEAgdm9pZCBFdmVudFNl
bmRlclByb3h5OjpzZW5kTW91c2VEb3duVG9TdGFydFByZXNzdXJlRXZlbnRzKCkKIHsKICAgICB1
cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uKDApOwogCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duCisgICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3du
CiAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55
KQogICAgICAgICBtb2RpZmllckZsYWdzOk5TRXZlbnRNYXNrUHJlc3N1cmUKICAgICAgICAgdGlt
ZXN0YW1wOmFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC00
MTUsNyArNDE2LDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZUZvcmNlQ2xpY2soKQog
ICAgIFJldGFpblB0cjxOU0V2ZW50PiBwcmVGb3JjZUNsaWNrID0gcHJlc3N1cmVDaGFuZ2VFdmVu
dCgxLCBQcmVzc3VyZUNoYW5nZURpcmVjdGlvbjo6SW5jcmVhc2luZyk7CiAgICAgUmV0YWluUHRy
PE5TRXZlbnQ+IGZvcmNlQ2xpY2sgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDIsIFByZXNzdXJlQ2hh
bmdlRGlyZWN0aW9uOjpJbmNyZWFzaW5nKTsKICAgICBSZXRhaW5QdHI8TlNFdmVudD4gcmVsZWFz
aW5nUHJlc3N1cmUgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDEsIFByZXNzdXJlQ2hhbmdlRGlyZWN0
aW9uOjpEZWNyZWFzaW5nKTsKLSAgICBOU0V2ZW50ICptb3VzZVVwID0gW05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAKKyAgICBOU0V2ZW50ICptb3VzZVVwID0gW05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAgICAgbG9j
YXRpb246TlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpCiAgICAgICAgIG1v
ZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1l
KGN1cnJlbnRFdmVudFRpbWUoKSkKQEAgLTQ1Miw3ICs0NTMsNyBAQCB2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OnN0YXJ0QW5kQ2FuY2VsTW91c2VGb3JjZUNsaWNrKCkKICAgICBSZXRhaW5QdHI8TlNF
dmVudD4gYmVnaW5QcmVzc3VyZSA9IGJlZ2luUHJlc3N1cmVFdmVudCgxKTsKICAgICBSZXRhaW5Q
dHI8TlNFdmVudD4gaW5jcmVhc2luZ1ByZXNzdXJlID0gcHJlc3N1cmVDaGFuZ2VFdmVudCgxLCBQ
cmVzc3VyZUNoYW5nZURpcmVjdGlvbjo6SW5jcmVhc2luZyk7CiAgICAgUmV0YWluUHRyPE5TRXZl
bnQ+IHJlbGVhc2luZ1ByZXNzdXJlID0gcHJlc3N1cmVDaGFuZ2VFdmVudCgxLCBQcmVzc3VyZUNo
YW5nZURpcmVjdGlvbjo6RGVjcmVhc2luZyk7Ci0gICAgTlNFdmVudCAqbW91c2VVcCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgTlNFdmVudCAqbW91c2VV
cCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAg
ICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55KQog
ICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgdGltZXN0YW1wOmFic29sdXRlVGltZUZv
ckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC02MDIsNyArNjAzLDcgQEAgdm9pZCBF
dmVudFNlbmRlclByb3h5Ojptb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkpCiAgICAgTlNQ
b2ludCBwb3NpdGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDpOU01ha2VQb2ludCh4LCB5KSB0b1Zp
ZXc6bmlsXTsKICAgICBtX3Bvc2l0aW9uLnggPSBwb3NpdGlvbi54OwogICAgIG1fcG9zaXRpb24u
eSA9IHBvc2l0aW9uLnk7Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6KG1fbGVmdE1vdXNlQnV0dG9uRG93biA/IE5TTGVmdE1vdXNlRHJhZ2dlZCA6IE5T
TW91c2VNb3ZlZCkKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZToobV9sZWZ0TW91c2VCdXR0b25Eb3duID8gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2Vk
IDogTlNFdmVudFR5cGVNb3VzZU1vdmVkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxvY2F0aW9uOnBvc2l0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGlmaWVyRmxhZ3M6MCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWVzdGFtcDphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGlt
ZSgpKQpAQCAtNzk4LDE2ICs3OTksMTYgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3du
KFdLU3RyaW5nUmVmIGtleSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIHVuc2kKICAgICBp
bnQgbW9kaWZpZXJGbGFncyA9IDA7CiAKICAgICBpZiAoW2NoYXJhY3RlciBsZW5ndGhdID09IDEg
JiYgW2NoYXJhY3RlciBjaGFyYWN0ZXJBdEluZGV4OjBdID49ICdBJyAmJiBbY2hhcmFjdGVyIGNo
YXJhY3RlckF0SW5kZXg6MF0gPD0gJ1onKSB7Ci0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNT
aGlmdEtleU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z1NoaWZ0OwogICAgICAgICBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnMgPSBbY2hhcmFjdGVy
IGxvd2VyY2FzZVN0cmluZ107CiAgICAgfQogCiAgICAgbW9kaWZpZXJGbGFncyB8PSBidWlsZE1v
ZGlmaWVyRmxhZ3MobW9kaWZpZXJzKTsKIAogICAgIGlmIChrZXlMb2NhdGlvbiA9PSAweDAzIC8q
RE9NX0tFWV9MT0NBVElPTl9OVU1QQUQqLykKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU051
bWVyaWNQYWRLZXlNYXNrOworICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdOdW1lcmljUGFkOwogCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVu
dFdpdGhUeXBlOk5TS2V5RG93bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQga2V5RXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmll
ckZsYWdzOm1vZGlmaWVyRmxhZ3MKICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDph
YnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQpAQCAtODIyLDcgKzgy
Myw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiBrZXksIFdL
RXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCB1bnNpCiAgICAgW1ttX3Rlc3RDb250cm9sbGVyLT5t
YWluV2ViVmlldygpLT5wbGF0Zm9ybVdpbmRvdygpIGZpcnN0UmVzcG9uZGVyXSBrZXlEb3duOmV2
ZW50XTsKICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpuaWxdOwogCi0gICAgZXZlbnQgPSBb
TlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5VXAKKyAgICBldmVudCA9IFtOU0V2ZW50IGtl
eUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAg
bG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlm
aWVyRmxhZ3M6bW9kaWZpZXJGbGFncwogICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1w
OmFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC05MTgsNyAr
OTE5LDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGludAogICAgIFJldGFpblB0cjxFdmVudFNlbmRl
clN5bnRoZXRpY0V2ZW50PiBldmVudCA9IGFkb3B0TlMoW1tFdmVudFNlbmRlclN5bnRoZXRpY0V2
ZW50IGFsbG9jXSBpbml0XSk7CiAKICAgICAvLyAibWF5QmVnaW4iIGEgc3dpcGUgaXMgYWN0dWFs
bHkgYSBzY3JvbGwgd2hlZWwgZXZlbnQuCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl90eXBlID0g
KHBoYXNlID09IDEyOCkgPyBOU1Njcm9sbFdoZWVsIDogTlNFdmVudFR5cGVHZXN0dXJlOworICAg
IGV2ZW50LT5fZXZlbnRTZW5kZXJfdHlwZSA9IChwaGFzZSA9PSAxMjgpID8gTlNFdmVudFR5cGVT
Y3JvbGxXaGVlbCA6IE5TRXZlbnRUeXBlR2VzdHVyZTsKICAgICBldmVudC0+X2V2ZW50U2VuZGVy
X3N1YnR5cGUgPSA2OyAvLyBrSU9ISURFdmVudFR5cGVTY3JvbGwKICAgICBldmVudC0+X2V2ZW50
U2VuZGVyX2xvY2F0aW9uSW5XaW5kb3cgPSBOU01ha2VQb2ludChtX3Bvc2l0aW9uLngsIG1fcG9z
aXRpb24ueSk7CiAgICAgZXZlbnQtPl9ldmVudFNlbmRlcl9sb2NhdGlvbiA9IChbbV90ZXN0Q29u
dHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSBjb252ZXJ0UmVjdFRvU2Ny
ZWVuOk5TTWFrZVJlY3QobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnksIDEsIDEpXS5vcmlnaW4p
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3
TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1t
CmluZGV4IGZiN2NkODVmZjcxN2MzMzNjNzEwYjNhMDU5MDQ1MmY5ZjA0YTJjYmUuLjgzMzg1MDJk
NDhiYzgwYTMyMDc3OGExY2IxMGFkZWJlY2FiZDZmNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKICNpZiBXS19BUElf
RU5BQkxFRAogQGludGVyZmFjZSBXS1dlYlZpZXcgKERldGFpbHMpCkBAIC0xNDUsNyArMTQ2LDcg
QEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tXZWJWaWV3Q29uZmlndXJhdGlv
biogY29uZmlndXJhdGlvbiwgY29uc3QgVGUKIAogICAgIE5TU2NyZWVuICpmaXJzdFNjcmVlbiA9
IFtbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXTsKICAgICBOU1JlY3Qgd2luZG93
UmVjdCA9IG1fb3B0aW9ucy5zaG91bGRTaG93V2ViVmlldyA/IE5TT2Zmc2V0UmVjdChyZWN0LCAx
MDAsIDEwMCkgOiBOU09mZnNldFJlY3QocmVjdCwgLTEwMDAwLCBbZmlyc3RTY3JlZW4gZnJhbWVd
LnNpemUuaGVpZ2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKLSAgICBtX3dpbmRvdyA9
IFtbV2ViS2l0VGVzdFJ1bm5lcldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5k
b3dSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6KE5TQmFja2lu
Z1N0b3JlVHlwZSlfTlNCYWNraW5nU3RvcmVVbmJ1ZmZlcmVkIGRlZmVyOllFU107CisgICAgbV93
aW5kb3cgPSBbW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6d2luZG93UmVjdCBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tp
bmc6KE5TQmFja2luZ1N0b3JlVHlwZSlfTlNCYWNraW5nU3RvcmVVbmJ1ZmZlcmVkIGRlZmVyOllF
U107CiAgICAgbV93aW5kb3cucGxhdGZvcm1XZWJWaWV3ID0gdGhpczsKICAgICBbbV93aW5kb3cg
c2V0Q29sb3JTcGFjZTpbZmlyc3RTY3JlZW4gY29sb3JTcGFjZV1dOwogICAgIFttX3dpbmRvdyBz
ZXRDb2xsZWN0aW9uQmVoYXZpb3I6TlNXaW5kb3dDb2xsZWN0aW9uQmVoYXZpb3JTdGF0aW9uYXJ5
XTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVy
TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0K
aW5kZXggY2Y4N2U2OWVjYTg4NzhmODQ1ZGIwMjBhMjUzOWVjMDhkNThlNTQ4ZS4uNWQxZGQxZTgy
Nzg3MzQxODRhMTMyMzJmYmFhM2E4ODJmNDk2ZmE2MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbXBv
cnQgPFdlYktpdC9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oPgogI2ltcG9y
dCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRl
cmZhY2UgTlNTb3VuZCAoKQogKyAodm9pZClfc2V0QWxlcnRUeXBlOihOU1VJbnRlZ2VyKWFsZXJ0
VHlwZTsKQEAgLTEwMyw3ICsxMDQsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoKQogewogICAgIGNvY29hUmVzZXRTdGF0ZVRvQ29u
c2lzdGVudFZhbHVlcygpOwogCi0gICAgd2hpbGUgKFtOU0FwcCBuZXh0RXZlbnRNYXRjaGluZ01h
c2s6TlNFdmVudE1hc2tHZXN0dXJlIHwgTlNTY3JvbGxXaGVlbE1hc2sgdW50aWxEYXRlOm5pbCBp
bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgZGVxdWV1ZTpZRVNdKSB7CisgICAgd2hpbGUgKFtO
U0FwcCBuZXh0RXZlbnRNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tHZXN0dXJlIHwgTlNFdmVudFR5
cGVTY3JvbGxXaGVlbCB1bnRpbERhdGU6bmlsIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBk
ZXF1ZXVlOllFU10pIHsKICAgICAgICAgLy8gQ2xlYXIgb3V0IChhbmQgaWdub3JlKSBhbnkgcGVu
ZGluZyBnZXN0dXJlIGFuZCBzY3JvbGwgd2hlZWwgZXZlbnRzLgogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294167</attachid>
            <date>2016-11-08 09:56:11 -0800</date>
            <delta_ts>2016-11-09 10:18:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161108095202.patch</filename>
            <type>text/plain</type>
            <size>231269</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLjA3NTY1OTA0MGU4Nzg3YjA0ZjkxZjBlNTdkM2VmYWE2OGZmY2U2
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMu
CisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaDoK
KwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAK
ICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDhjZWVkYzZhMDZjYTIwMWRjNjE2ZGRlNzk3M2UxMTU3MTgzYWFmNjYuLmE3ZTk1Y2M4OTcx
ZGYwODFjZmNkZGZhZmRmMTQ5YjQ0MTk0MmY1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBA
QAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTdG9wIHVzaW5nIGRl
cHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVkaXRpbmcv
Y29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNvbXB1dGVk
QXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NF
bGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0KToKKyAg
ICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVudElzTW91
c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50
VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdldERpZEhh
bmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kRmFr
ZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1RleHRJbmRp
Y2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93Ojpz
ZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9tQ3Vyc29y
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2ZW50TG9v
cE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6bW91
c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlwZUZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NLZXlDb2Rl
Rm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5Ym9hcmRF
dmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXpl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgtW1dlYkNv
cmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6ZUZvckZv
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpzdGVwcGVy
Q29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbToK
KyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29udGVudFJl
Y3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNj
cmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1bV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgtW1dlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2FkXSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAgICAgKFdl
YldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA3ICBSeWFuIEhhZGRh
ZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyMDgzODIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQwNzc5Y2E1
NjAyNzcxNTkwM2Q1OGU3MS4uMzIxM2Q0ZWI3NDc3OGNkYzVjYjliZjk2NjcwZDE1YTE5YzhhNDg3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2luZyBkZXBy
ZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVy
YXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW06
CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6
dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAgICAgICgtW0Nh
cmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICogUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21tYW5kTW9kaWZp
ZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmll
dy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRyYXdSZWN0Ol0p
OgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5t
bToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OnN5bnRoZXRp
Y0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Q
b3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKToKKyAgICAg
ICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVudDo6c2hvd0Nv
bnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0aW9uYXJ5KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06CisgICAgICAg
IChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAgICAgKC1bV2Vi
SW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBXZWJJbnNwZWN0
b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hsaWdodCBpbml0
V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURvd246a2V5RG93
bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tOgorICAg
ICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAgIChjcmVhdGVC
YWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmll
dy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9y
RmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9zZXRNb3VzZURv
d25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91
cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNrTG9va0V2ZW50
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcg
X3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50SXNQYXJ0T2ZD
bGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRo
RXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG1v
dXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6XSk6CisgICAg
ICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21tYW5kczpdKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dlYlBERlZpZXcg
aGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5r
OndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVudFdpdGhGdW5j
dGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9idWlsZFVJXSk6
CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQb3B1cFdpbmRv
dzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcg
YXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1pdCBjb21wb3Np
dGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCA0NjJkOTc4YTdhY2JmNGU0MDMzOGNmNGIxYmE5NWQzOWZjN2UxZTdiLi5hZjI4MzIwNTQ1
MDMyYjRmYzZlMTFlNzM3YjJhOWZjNjBhY2RiYTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NDk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgU3RvcCB1c2luZyBk
ZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAgICAgKiBTaGFyZWQv
bWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpz
dG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5t
bToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJL
aXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpjbGlja0NvdW50
Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OnRleHRGcm9tRXZl
bnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojppc0tleVVwRXZlbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZl
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpYyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFu
Z2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNjcmVl
bldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNl
RXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VF
bnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0ZvckRyYWcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFuZHNGb3JFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1vZGFsKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVudVdpdGhJdGVtcyk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0Ojpt
b2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6Z2V0RXZlbnRUeXBl
RnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
blRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGlnbm1lbnRWYWx1ZUZv
ck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29udmVydEltYWdlVG9C
aXRtYXApOgorCiAyMDE2LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTGF5b3V0IHRlc3QgaHR0cC90ZXN0cy9taXNjL2F1
dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10by1yZWRpcmVjdC1z
YW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgZmFpbHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oCmlu
ZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2RiY2NhOWI0YmNlZWZhN2I1NjYuLjk0ZDNkZWU5MjRk
OTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgKKysrIGIvU291cmNlL1dURi93
dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaApAQCAtNTcsNiArNTcsMTAg
QEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRpbmdPcGVyYXRpb24gTlNDb21wb3NpdGluZ09wZXJh
dGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kKIAogc3RhdGljIGNvbnN0IE5TQ29udHJvbFNpemUg
TlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKIHN0YXRpYyBjb25z
dCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVTbWFsbCA9IE5TU21hbGxDb250cm9sU2l6ZTsK
K3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNpemVNaW5pID0gTlNNaW5pQ29u
dHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBOU1NsaWRlclR5cGUgTlNTbGlkZXJUeXBlTGluZWFy
ID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMgY29uc3QgTlNTbGlkZXJUeXBlIE5TU2xpZGVyVHlw
ZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRlcjsKIAogc3RhdGljIGNvbnN0IE5TRXZlbnRNYXNr
IE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVudE1hc2s7CiBzdGF0aWMgY29uc3QgTlNFdmVudE1h
c2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgPSBOU0ZsYWdzQ2hhbmdlZE1hc2s7CkBAIC04Mywx
MiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5TRXZlbnRNb2RpZmllckZsYWdzIE5TRXZlbnRNb2Rp
ZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1lcmljUGFkS2UKIHN0YXRpYyBjb25zdCBOU0V2ZW50
TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgPSBOU1NoaWZ0S2V5TWFzazsK
IHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnSGVs
cCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBwbGljYXRpb25EZWZpbmVkOwogc3RhdGljIGNvbnN0
IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkID0gTlNGbGFnc0NoYW5nZWQ7CiBz
dGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVLZXlEb3duID0gTlNLZXlEb3duOwog
c3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlS2V5VXAgPSBOU0tleVVwOwogc3Rh
dGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biA9IE5TTGVmdE1v
dXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURy
YWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNF
dmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVmdE1vdXNlVXA7CitzdGF0aWMgY29uc3QgTlNFdmVu
dFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQgPSBOU01vdXNlRW50ZXJlZDsKK3N0YXRpYyBj
b25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkID0gTlNNb3VzZUV4aXRlZDsK
IHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQgPSBOU01vdXNl
TW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93
biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5
cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3RoZXJNb3VzZURyYWdnZWQ7CkBAIC0xMDUsNiArMTEy
LDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50UmlnaHQg
PSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNU
ZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owogc3RhdGljIGNvbnN0
IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0VGV4dEFsaWdubWVu
dDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50TmF0dXJhbCA9
IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7CitzdGF0aWMgY29uc3QgTlNUZXh0QWxpZ25tZW50IE5T
VGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdubWVudDsKKwordHlw
ZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsKK3N0YXRpYyBjb25z
dCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92
ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVkZGluZyA9IE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7CiAjZW5kaWYKIAogdHlwZWRlZiBOU1VJbnRlZ2Vy
IE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVBy
ZWZpeC5oIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCmluZGV4IGQ1NDkzZGU3M2Ix
OWZkY2JhMzM5YWNhZTU1YjBiNzczZDFkYmIwZGQuLjkxNTc1NjZhZDIzOTlmYzFjNWUyMzM2Yjg3
ZDg3MWJjMjdmYjJhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKQEAgLTE2Myw3ICsxNjMsMTAg
QEAKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
ICNlbHNlCisjaWYgVVNFKEFQUEtJVCkKICNpbXBvcnQgPENvY29hL0NvY29hLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNlbmRpZgogI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggOTRmYzdlZDk5NWNjNDBkODZmNGMwMjgyMzJm
NDEzNDIwYmMwODhkZS4uOTZjYzBmNTQ3ZWE2YmU4ZDEzYzMzNmQ5NjQ1ZWRkNDBjMDljMDY0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAt
MTEzLDEwICsxMTMsNiBAQCBTT0ZUX0xJTktfQ0xBU1MoVUlGb3VuZGF0aW9uLCBOU1RleHRUYWIp
CiAjZGVmaW5lIFBsYXRmb3JtRm9udCAgICAgICAgICAgICAgICBOU0ZvbnQKICNkZWZpbmUgUGxh
dGZvcm1Gb250Q2xhc3MgICAgICAgICAgIE5TRm9udAogCi0jZGVmaW5lIE5TVGV4dEFsaWdubWVu
dExlZnQgICAgICAgICBOU0xlZnRUZXh0QWxpZ25tZW50Ci0jZGVmaW5lIE5TVGV4dEFsaWdubWVu
dFJpZ2h0ICAgICAgICBOU1JpZ2h0VGV4dEFsaWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1l
bnRDZW50ZXIgICAgICAgTlNDZW50ZXJUZXh0QWxpZ25tZW50Ci0jZGVmaW5lIE5TVGV4dEFsaWdu
bWVudEp1c3RpZmllZCAgICBOU0p1c3RpZmllZFRleHRBbGlnbm1lbnQKICNlbmRpZgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE4NCwxMCArMTgwLDEwIEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIE5TV3JpdGluZ0RpcmVjdGlvbikgewogICAgIE5TV3JpdGluZ0RpcmVjdGlv
blJpZ2h0VG9MZWZ0ICAgPSAgMSAgICAgLy8gUmlnaHQgdG8gbGVmdCB3cml0aW5nIGRpcmVjdGlv
bgogfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoNl8wKTsKIAotdHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgTlNUZXh0V3JpdGluZ0RpcmVjdGlvbikgewotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rp
b25FbWJlZGRpbmcgICAgID0gKDAgPDwgMSksCi0gICAgTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92
ZXJyaWRlICAgICAgPSAoMSA8PCAxKQotfSBOU19FTlVNX0FWQUlMQUJMRV9JT1MoN18wKTsKK3R5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TV3JpdGluZ0RpcmVjdGlvbkZvcm1hdFR5cGUpIHsK
KyAgICBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmcgICAgID0gKDAgPDwgMSksCisgICAgTlNX
cml0aW5nRGlyZWN0aW9uT3ZlcnJpZGUgICAgICA9ICgxIDw8IDEpCit9IE5TX0VOVU1fQVZBSUxB
QkxFX0lPUyg5XzApOwogCiBlbnVtIHsKICAgICBOU0VudGVyQ2hhcmFjdGVyICAgICAgICAgICAg
ICAgID0gMHgwMDAzLApAQCAtMTIxMCw4ICsxMjA2LDYgQEAgTlNEaWN0aW9uYXJ5ICpIVE1MQ29u
dmVydGVyOjpjb21wdXRlZEF0dHJpYnV0ZXNGb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAg
ICAgICAgIFN0cmluZyB0ZXh0QWxpZ24gPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShj
b3JlQmxvY2tFbGVtZW50LCBDU1NQcm9wZXJ0eVRleHRBbGlnbik7CiAgICAgICAgIGlmICh0ZXh0
QWxpZ24ubGVuZ3RoKCkpIHsKICAgICAgICAgICAgIC8vIFdlYktpdCBjYW4gcmV0dXJuIC1raHRt
bC1sZWZ0LCAta2h0bWwtcmlnaHQsIC1raHRtbC1jZW50ZXIKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICAgICAgICAgICAgIGlmICh0ZXh0QWxpZ24uZW5kc1dpdGgoImxlZnQi
KSkKICAgICAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Ok5TVGV4dEFs
aWdubWVudExlZnRdOwogICAgICAgICAgICAgZWxzZSBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJy
aWdodCIpKQpAQCAtMTIyMCw3ICsxMjE0LDYgQEAgTlNEaWN0aW9uYXJ5ICpIVE1MQ29udmVydGVy
Ojpjb21wdXRlZEF0dHJpYnV0ZXNGb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgICAg
ICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRDZW50
ZXJdOwogICAgICAgICAgICAgZWxzZSBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJqdXN0aWZ5Iikp
CiAgICAgICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGln
bm1lbnRKdXN0aWZpZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9
CiAKICAgICAgICAgU3RyaW5nIGRpcmVjdGlvbiA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JO
b2RlKGNvcmVCbG9ja0VsZW1lbnQsIENTU1Byb3BlcnR5RGlyZWN0aW9uKTsKQEAgLTE4NTEsMTgg
KzE4NDQsMTIgQEAgQk9PTCBIVE1MQ29udmVydGVyOjpfcHJvY2Vzc0VsZW1lbnQoRWxlbWVudCYg
ZWxlbWVudCwgTlNJbnRlZ2VyIGRlcHRoKQogICAgIGVsc2UgewogICAgICAgICBTdHJpbmcgYmlk
aSA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQsIENTU1Byb3BlcnR5VW5p
Y29kZUJpZGkpOwogICAgICAgICBpZiAoYmlkaSA9PSAiZW1iZWQiKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TVGV4
dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVkZGlu
ZzsKICAgICAgICAgICAgIGlmIChfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50
LCBDU1NQcm9wZXJ0eURpcmVjdGlvbikgPT0gInJ0bCIpCiAgICAgICAgICAgICAgICAgdmFsIHw9
IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICAgICAgW193cml0aW5nRGly
ZWN0aW9uQXJyYXkgYWRkT2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnRlZ2Vy
OnZhbF1dOwogICAgICAgICB9IGVsc2UgaWYgKGJpZGkgPT0gImJpZGktb3ZlcnJpZGUiKSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBOU1VJbnRlZ2Vy
IHZhbCA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25PdmVycmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgICAgIE5TVUludGVnZXIgdmFsID0gTlNXcml0aW5nRGlyZWN0
aW9uT3ZlcnJpZGU7CiAgICAgICAgICAgICBpZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5v
ZGUoZWxlbWVudCwgQ1NTUHJvcGVydHlEaXJlY3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAg
ICAgIHZhbCB8PSBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtf
d3JpdGluZ0RpcmVjdGlvbkFycmF5IGFkZE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2ln
bmVkSW50ZWdlcjp2YWxdXTsKQEAgLTIwNjMsMTQgKzIwNTAsNyBAQCB2b2lkIEhUTUxDb252ZXJ0
ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0KE5TVGV4dExpc3QgKmxpc3QsIE5TUmFuZ2UgcmFuZ2UpCiAg
ICAgICAgICAgICAgICAgICAgIHRhYiA9IFtbUGxhdGZvcm1OU1RleHRUYWIgYWxsb2NdIGluaXRX
aXRoVHlwZTpOU0xlZnRUYWJTdG9wVHlwZSBsb2NhdGlvbjptYXJrZXJMb2NhdGlvbl07CiAgICAg
ICAgICAgICAgICAgICAgIFtuZXdTdHlsZSBhZGRUYWJTdG9wOnRhYl07CiAgICAgICAgICAgICAg
ICAgICAgIFt0YWIgcmVsZWFzZV07Ci0jaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAgICAgICAg
ICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1l
bnQ6TlNUZXh0QWxpZ25tZW50TmF0dXJhbCBsb2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpA
eyB9XTsKLSNlbHNlCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAg
ICAgICAgICAgICAgIHRhYiA9IFtbUGxhdGZvcm1OU1RleHRUYWIgYWxsb2NdIGluaXRXaXRoVGV4
dEFsaWdubWVudDpOU05hdHVyYWxUZXh0QWxpZ25tZW50IGxvY2F0aW9uOmxpc3RMb2NhdGlvbiBv
cHRpb25zOkB7IH1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCiAgICAg
ICAgICAgICAgICAgICAgIFtuZXdTdHlsZSBhZGRUYWJTdG9wOnRhYl07CiAgICAgICAgICAgICAg
ICAgICAgIFt0YWIgcmVsZWFzZV07CiAgICAgICAgICAgICAgICAgICAgIFtfYXR0clN0ciBhZGRB
dHRyaWJ1dGU6TlNQYXJhZ3JhcGhTdHlsZUF0dHJpYnV0ZU5hbWUgdmFsdWU6bmV3U3R5bGUgcmFu
Z2U6cGFyYWdyYXBoUmFuZ2VdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVy
TWFjLm1tCmluZGV4IDMzNWU2MjYxNDhlOTMyOWY1ZGFjZjMzM2MzYzE4Y2M2ODYyNDU2MWQuLmIw
MzUyNzA4OTFkMGMyNjg5OTAzNjNjNGZkMGY2ZDE2YTI3MWUzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTE1MCwxMCArMTUwLDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmtleUV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIEFTU0VSVChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBO
U0tleVVwKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBU1NFUlQoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5
cGVLZXlVcCk7CiAKICAgICBDdXJyZW50RXZlbnRTY29wZSBzY29wZShldmVudCwgbmlsKTsKICAg
ICByZXR1cm4ga2V5RXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5
Ym9hcmRFdmVudChldmVudCkpOwpAQCAtMjA2LDEyICsyMDMsOSBAQCBzdGF0aWMgYm9vbCBsYXN0
RXZlbnRJc01vdXNlVXAoKQogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAg
IE5TRXZlbnQgKmN1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gPSBbTlNBcHAgY3Vy
cmVudEV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICByZXR1
cm4gRXZlbnRIYW5kbGVyOjpjdXJyZW50TlNFdmVudCgpICE9IGN1cnJlbnRFdmVudEFmdGVySGFu
ZGxpbmdNb3VzZURvd24KLSAgICAgICAgJiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3Vz
ZURvd24gdHlwZV0gPT0gTlNMZWZ0TW91c2VVcAorICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0
ZXJIYW5kbGluZ01vdXNlRG93biB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAg
ICAgICYmIFtjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duIHRpbWVzdGFtcF0gPj0g
W0V2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZlbnQoKSB0aW1lc3RhbXBdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0zNzUsNTggKzM2OSw1NSBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFz
c1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2
ZQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0p
IHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhl
ck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAg
ICAgICAgLy8gVGhpcyBjaGVjayBpcyBib2d1cyBhbmQgcmVzdWx0cyBpbiA8cmRhcjovLzY4MTM4
MzA+LCBidXQgcmVtb3ZpbmcgaXQgYnJlYWtzIGEgbnVtYmVyIG9mCi0gICAgICAgICAgICAvLyBs
YXlvdXQgdGVzdHMuCi0gICAgICAgICAgICBpZiAoIW1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAg
IGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgLy8gVGhpcyBjaGVj
ayBpcyBib2d1cyBhbmQgcmVzdWx0cyBpbiA8cmRhcjovLzY4MTM4MzA+LCBidXQgcmVtb3Zpbmcg
aXQgYnJlYWtzIGEgbnVtYmVyIG9mCisgICAgICAgIC8vIGxheW91dCB0ZXN0cy4KKyAgICAgICAg
aWYgKCFtX21vdXNlRG93bldhc0luU3ViZnJhbWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAgICAgICAgIGlmIChzdWJmcmFtZS0+cGFn
ZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZEluaXRpYXRlRHJhZygpKQotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHN1YmZyYW1lLT5wYWdlKCktPmRyYWdDb250cm9s
bGVyKCkuZGlkSW5pdGlhdGVEcmFnKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5k
aWYKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgICAgICAvLyBTaW5jZSB3ZSdy
ZSBwYXNzaW5nIGluIGN1cnJlbnROU0V2ZW50KCkgaGVyZSwgd2UgY2FuIGNhbGwKLSAgICAgICAg
ICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50KCkgZGlyZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jl
c3RvcmUgb2YKLSAgICAgICAgICAgIC8vIGN1cnJlbnROU0V2ZW50KCkgdGhhdCBtb3VzZU1vdmVk
KCkgZG9lcyB3b3VsZCBoYXZlIG5vIGVmZmVjdC4KLSAgICAgICAgICAgIEFTU0VSVCghbV9zZW5k
aW5nRXZlbnRUb1N1YnZpZXcpOwotICAgICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcg
PSB0cnVlOwotICAgICAgICAgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNl
TW92ZUV2ZW50KGN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSwgaG92ZXJlZE5vZGUpOwotICAg
ICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgICAgICAvLyBT
aW5jZSB3ZSdyZSBwYXNzaW5nIGluIGN1cnJlbnROU0V2ZW50KCkgaGVyZSwgd2UgY2FuIGNhbGwK
KyAgICAgICAgLy8gaGFuZGxlTW91c2VNb3ZlRXZlbnQoKSBkaXJlY3RseSwgc2luY2UgdGhlIHNh
dmUvcmVzdG9yZSBvZgorICAgICAgICAvLyBjdXJyZW50TlNFdmVudCgpIHRoYXQgbW91c2VNb3Zl
ZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZlY3QuCisgICAgICAgIEFTU0VSVCghbV9zZW5kaW5n
RXZlbnRUb1N1YnZpZXcpOworICAgICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7
CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChj
dXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCksIGhvdmVyZWROb2RlKTsKKyAgICAgICAgbV9zZW5k
aW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IAotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjogewotICAgICAgICAgICAgTm9kZSogbm9k
ZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsKLSAgICAgICAgICAgIGlmICghbm9kZSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUt
PnJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBpZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIp
KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIFdpZGdldCogd2lk
Z2V0ID0gZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqcmVuZGVyZXIpLndpZGdldCgpOwotICAgICAg
ICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIXBhc3NXaWRnZXRNb3VzZURvd25F
dmVudFRvV2lkZ2V0KGRvd25jYXN0PFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBtX21vdXNlRG93bldhc0luU3ViZnJh
bWUgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAg
Y2FzZSBOU0xlZnRNb3VzZVVwOiB7Ci0gICAgICAgICAgICBpZiAoIW1fbW91c2VEb3duV2FzSW5T
dWJmcmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBBU1NF
UlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50
VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5o
YW5kbGVNb3VzZVJlbGVhc2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOwotICAg
ICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd246IHsKKyAgICAgICAgTm9kZSogbm9kZSA9IGV2ZW50LnRhcmdldE5v
ZGUoKTsKKyAgICAgICAgaWYgKCFub2RlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgICAgIGlmICghaXM8
UmVuZGVyV2lkZ2V0PihyZW5kZXJlcikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIFdpZGdldCogd2lkZ2V0ID0gZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqcmVuZGVyZXIpLndp
ZGdldCgpOworICAgICAgICBpZiAoIXdpZGdldCB8fCAhd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXBhc3NXaWRnZXRNb3VzZURv
d25FdmVudFRvV2lkZ2V0KGRvd25jYXN0PFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbV9tb3VzZURvd25XYXNJblN1YmZyYW1lID0g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDogeworICAgICAgICBpZiAoIW1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRv
U3Vidmlldyk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKKyAgICAg
ICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KGN1cnJl
bnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSk7CisgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3
ID0gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC00
NzksMTEgKzQ3MCw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVuCiAgICAgICAgIHJldHVybiBk
b3duY2FzdDxGcmFtZVZpZXc+KHdpZGdldCkuZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVX
aGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogICAgIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbY3VycmVudE5TRXZlbnQoKSB0eXBlXSAhPSBOU1Njcm9sbFdo
ZWVsIHx8IG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KQorICAgIGlmIChbY3VycmVudE5TRXZlbnQo
KSB0eXBlXSAhPSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsIHx8IG1fc2VuZGluZ0V2ZW50VG9TdWJ2
aWV3KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAKICAgICBBU1NFUlQobm9kZVZpZXcpOwogICAgIEFTU0VSVChbbm9kZVZpZXcgc3VwZXJ2aWV3
XSk7CkBAIC01ODYsMTIgKzU3NCwxMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVu
dHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKIAogICAgIG1f
c2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CiAgICAgaW50IGV2ZW50VHlwZSA9IFtpbml0
aWF0aW5nRXZlbnQgdHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKGV2ZW50VHlwZSA9PSBOU0xlZnRNb3VzZURvd24gfHwgZXZlbnRUeXBlID09IE5TS2V5
RG93bikgeworICAgIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIHx8
IGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZUtleURvd24pIHsKICAgICAgICAgTlNFdmVudCAqZmFr
ZUV2ZW50ID0gbmlsOwotICAgICAgICBpZiAoZXZlbnRUeXBlID09IE5TTGVmdE1vdXNlRG93bikg
ewotICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
TGVmdE1vdXNlVXAKKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURvd24pIHsKKyAgICAgICAgICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbG9jYXRpb246W2luaXRpYXRpbmdFdmVudCBsb2NhdGlvbkluV2luZG93
XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltp
bml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ0V2ZW50IHRpbWVzdGFtcF0KQEAg
LTYwMiw4ICs1ODgsOCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVudHNBZnRlcldp
ZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTpbaW5pdGlhdGluZ0V2ZW50IHByZXNz
dXJlXV07CiAgICAgICAgIAogICAgICAgICAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQg
YXRTdGFydDpZRVNdOwotICAgICAgICB9IGVsc2UgeyAvLyBldmVudFR5cGUgPT0gTlNLZXlEb3du
Ci0gICAgICAgICAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5
VXAKKyAgICAgICAgfSBlbHNlIHsgLy8gZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlS2V5RG93bgor
ICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZUtleVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0
aW9uOltpbml0aWF0aW5nRXZlbnQgbG9jYXRpb25JbldpbmRvd10KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmll
ckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFt
cDpbaW5pdGlhdGluZ0V2ZW50IHRpbWVzdGFtcF0KQEAgLTYxOSw4ICs2MDUsMTIgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICpp
bml0aWF0aW5nRXZlbnQpCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVhbGx5IGdldCB0
aGUgY3VycmVudCBtb2RpZmllckZsYWdzIGhlcmUsIGJ1dCB0aGVyZSdzIG5vIHdheSB0byBwb2xs
CiAgICAgICAgIC8vIHRoZW0gaW4gQ29jb2EsIGFuZCBiZWNhdXNlIHRoZSBldmVudCBzdHJlYW0g
d2FzIHN0b2xlbiBieSB0aGUgQ2FyYm9uIG1lbnUgY29kZSB3ZSBoYXZlCiAgICAgICAgIC8vIG5v
IHVwLXRvLWRhdGUgY2FjaGUgb2YgdGhlbSBhbnl3aGVyZS4KLSAgICAgICAgZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1t2aWV3LT5wbGF0Zm9ybVdpZGdldCgp
IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAg
ICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TW91c2VNb3ZlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRp
b246W1t2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10KKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0
U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlhdGlu
Z0V2ZW50IHdpbmRvd051bWJlcl0KQEAgLTYyOCw3ICs2MTgsNiBAQCB2b2lkIEV2ZW50SGFuZGxl
cjo6c2VuZEZha2VFdmVudHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdF
dmVudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlja0NvdW50OjAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlOjBdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBh
dFN0YXJ0OllFU107CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0KaW5kZXggYTc0ZGE4NWFjZWNhM2M2Njk4ZGQxNTZhYjMxYTZj
OTcxYTM1NGU2ZS4uZTRlMjBkMjI3NjhjODgyZTkwMGIxMmI0MWZlMDJlY2RmYjQ4ZjYyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC00
NTcsMTMgKzQ1NywxMCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0
b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUgogICAgIHZlcnRpY2FsTWFy
Z2luID0gQ0dDZWlsaW5nKHZlcnRpY2FsTWFyZ2luKTsKIAogICAgIENHUmVjdCBjb250ZW50UmVj
dCA9IENHUmVjdEluc2V0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCAtaG9y
aXpvbnRhbE1hcmdpbiwgLXZlcnRpY2FsTWFyZ2luKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU1JlY3Qgd2luZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29u
dGVudFJlY3RGb3JGcmFtZVJlY3Q6TlNSZWN0RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVN
YXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2tdOworICAgIE5TUmVjdCB3aW5kb3dDb250ZW50UmVj
dCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1lUmVjdDpOU1JlY3RGcm9tQ0dSZWN0KGNv
bnRlbnRSZWN0KSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzXTsKICAgICBO
U1JlY3QgaW50ZWdyYWxXaW5kb3dDb250ZW50UmVjdCA9IE5TSW50ZWdyYWxSZWN0KHdpbmRvd0Nv
bnRlbnRSZWN0KTsKICAgICBOU1BvaW50IGZyYWN0aW9uYWxUZXh0T2Zmc2V0ID0gTlNNYWtlUG9p
bnQod2luZG93Q29udGVudFJlY3Qub3JpZ2luLnggLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0
Lm9yaWdpbi54LCB3aW5kb3dDb250ZW50UmVjdC5vcmlnaW4ueSAtIGludGVncmFsV2luZG93Q29u
dGVudFJlY3Qub3JpZ2luLnkpOwotICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IGFkb3B0TlMo
W1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDppbnRlZ3JhbFdpbmRvd0NvbnRl
bnRSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5p
dFdpdGhDb250ZW50UmVjdDppbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dp
bmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRl
ZmVyOk5PXSk7CiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6
W05TQ29sb3IgY2xlYXJDb2xvcl1dOwogICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0T3Bh
cXVlOk5PXTsKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNldElnbm9yZXNNb3VzZUV2ZW50
czpZRVNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ljb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1h
Yy5tbQppbmRleCA1YTQ5ZjNhYjNiZDBlNGIyYTIyZTQ0ZmI1YzEyYzZjYjg3YjQ1Y2UzLi4yMTFm
YzgzMGU3ZGUzZmVjNWNmNTdhYzUxYmY0NjExZDMyZTk5ZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQpAQCAtMjgsNyArMjgsNyBAQAog
I2ltcG9ydCAiTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJVVElVdGls
aXRpZXMuaCIKICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTk4LDEwICs5OCw3IEBAIHZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAKICAgICBMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50R0MoY29udGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbbV9uc0ltYWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9t
UmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25zSW1hZ2Ugc2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ug
c2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEu
MGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFttX25zSW1hZ2UgZHJhd0lu
UmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW21fbnNJbWFnZSBzaXplXS53aWR0
aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0
aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBmXTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVicy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBLaXRTdHVicy5oCmluZGV4IDExNjYxODkwMjY0YjU3
Nzk5OTNiZDM3YWVjMzU0M2JhMTMwZDE0MDQuLjQyOGQ2OTM4NjVhZDViN2QyM2VjNmI4YTJhNjk2
ZDU5ODUxZjE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsv
V0FLQXBwS2l0U3R1YnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dB
S0FwcEtpdFN0dWJzLmgKQEAgLTE1NCwxNSArMTU0LDE1IEBAIHR5cGVkZWYgTlNVSW50ZWdlciBO
U1JlY3RFZGdlOwogCiAvKiBEZXZpY2UtaW5kZXBlbmRlbnQgYml0cyBmb3VuZCBpbiBldmVudCBt
b2RpZmllciBmbGFncyAqLwogZW51bSB7Ci0gICAgTlNBbHBoYVNoaWZ0S2V5TWFzayA9IDEgPDwg
MTYsCi0gICAgTlNTaGlmdEtleU1hc2sgPSAgICAgIDEgPDwgMTcsCi0gICAgTlNDb250cm9sS2V5
TWFzayA9ICAgIDEgPDwgMTgsCi0gICAgTlNBbHRlcm5hdGVLZXlNYXNrID0gIDEgPDwgMTksCi0g
ICAgTlNDb21tYW5kS2V5TWFzayA9ICAgIDEgPDwgMjAsCi0gICAgTlNOdW1lcmljUGFkS2V5TWFz
ayA9IDEgPDwgMjEsCi0gICAgTlNIZWxwS2V5TWFzayA9ICAgICAgIDEgPDwgMjIsCi0gICAgTlNG
dW5jdGlvbktleU1hc2sgPSAgIDEgPDwgMjMsCi0gICAgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlm
aWVyRmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKKyAgICBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xv
Y2sgPSAxIDw8IDE2LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCA9IDEgPDwgMTcsCisg
ICAgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgPSAxIDw8IDE4LAorICAgIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24gPSAxIDw8IDE5LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5k
ID0gMSA8PCAyMCwKKyAgICBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCA9IDEgPDwgMjEs
CisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgPSAxIDw8IDIyLAorICAgIE5TRXZlbnRNb2Rp
ZmllckZsYWdGdW5jdGlvbiA9IDEgPDwgMjMsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0Rldmlj
ZUluZGVwZW5kZW50RmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUKIH07CiAKIHR5cGVkZWYgZW51bSBf
V0tXcml0aW5nRGlyZWN0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFj
Lm1tCmluZGV4IGE2ZDc4MzI4ZTlmZTYyN2VmMTRhZmM5YzBiZDBmNjY5ZWIyNTRkMGMuLjg1Y2M3
YzVmZGQyYzE2MDYyY2Y4YTAxODY0YTI5ZmMzNDQ1YTdlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtNjQsMTAgKzY0LDcgQEAgc3RhdGljIFJldGFpblB0
cjxOU0N1cnNvcj4gY3JlYXRlQ3VzdG9tQ3Vyc29yKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UG9p
bnQmIGhvdFMKICAgICAgICAgTlNSZWN0IGZyb21SZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBpbWFn
ZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpKTsKIAogICAgICAgICBbZXhwYW5kZWRJbWFnZSBs
b2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBb
bnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBbbnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVj
dCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07
CiAgICAgICAgIFtleHBhbmRlZEltYWdlIHVubG9ja0ZvY3VzXTsKIAogICAgICAgICByZXR1cm4g
YWRvcHROUyhbW05TQ3Vyc29yIGFsbG9jXSBpbml0V2l0aEltYWdlOmV4cGFuZGVkSW1hZ2UuZ2V0
KCkgaG90U3BvdDpob3RTcG90XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQppbmRleCA2ODI0NmJlZmE1MjNlZGZmM2I2MDVjNjAxMTg3MTlkNDcyOThkMDli
Li5kMmY4ZjcwODAzY2NkZjljNTJiZGI2YTE3YmQ4MDE4NTUxZGMzYzM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTc1LDEwICs3NSw3IEBAIFJl
dGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oUmV0YWluUHRyPE5T
SW1hZ2U+IGltYWdlLCBmbG9hdCBkCiAgICAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZlZElt
YWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTpbaW1hZ2UuZ2V0KCkg
c2l6ZV1dKTsKICAgICAKICAgICBbZGlzc29sdmVkSW1hZ2UuZ2V0KCkgbG9ja0ZvY3VzXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbaW1hZ2UuZ2V0KCkgZHJhd0F0
UG9pbnQ6TlNaZXJvUG9pbnQgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBbaW1hZ2Ugc2l6ZV0u
d2lkdGgsIFtpbWFnZSBzaXplXS5oZWlnaHQpIG9wZXJhdGlvbjpOU0NvbXBvc2l0ZUNvcHkgZnJh
Y3Rpb246ZGVsdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtpbWFnZS5n
ZXQoKSBkcmF3QXRQb2ludDpOU1plcm9Qb2ludCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFtp
bWFnZSBzaXplXS53aWR0aCwgW2ltYWdlIHNpemVdLmhlaWdodCkgb3BlcmF0aW9uOk5TQ29tcG9z
aXRpbmdPcGVyYXRpb25Db3B5IGZyYWN0aW9uOmRlbHRhXTsKICAgICBbZGlzc29sdmVkSW1hZ2Uu
Z2V0KCkgdW5sb2NrRm9jdXNdOwogCiAgICAgcmV0dXJuIGRpc3NvbHZlZEltYWdlOwpAQCAtMTE5
LDEwICsxMTYsOCBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdl
KEltYWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaQogICAgICAgICAgICAgW2NvY29h
VHJhbnNmb3JtLmdldCgpIHNldFRyYW5zZm9ybVN0cnVjdDoqKE5TQWZmaW5lVHJhbnNmb3JtU3Ry
dWN0KikmdHJhbnNmb3JtXTsKICAgICAgICAgICAgIFtjb2NvYVRyYW5zZm9ybS5nZXQoKSBjb25j
YXRdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBb
aW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6ZGVzdFJlY3QgZnJvbVJlY3Q6TlNN
YWtlUmVjdCgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIG9wZXJhdGlvbjpOU0Nv
bXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDpk
ZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWln
aHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9u
OjEuMF07CisKICAgICAgICAgICAgIFtyb3RhdGVkRHJhZ0ltYWdlLmdldCgpIHVubG9ja0ZvY3Vz
XTsKIAogICAgICAgICAgICAgcmV0dXJuIHJvdGF0ZWREcmFnSW1hZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1hYy5tbQppbmRleCBhZjBhMzk5MmI2NmU5ZDZmZmMw
MTc3MTI0ODU3NjI2YTAwNWE1ZTkwLi4zNmM0NmNjOGYyMDljY2I5NmQzODAxZjM2MjA1ZjE5OWEw
MWU0MmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29w
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0K
QEAgLTMxLDEwICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgRXZlbnRMb29wOjpj
eWNsZSgpCiB7CiAgICAgW05TQXBwIHNldFdpbmRvd3NOZWVkVXBkYXRlOllFU107Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW05TQXBwIHNlbmRFdmVudDpbTlNBcHAg
bmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRh
dGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BN
b2RlIGRlcXVldWU6WUVTXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW05T
QXBwIHNlbmRFdmVudDpbTlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrQW55
IHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5N
b2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXV07CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0
ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMu
bW0KaW5kZXggYTVkZjM0NzRjMzExYzZhNzU2MWQ3ZjRkNDQ1NTMxNGFhMDRkMDA3MC4uOTI5YmIz
MGYzMjk4OTVhNDQ4ZTdkOWJkNTEzMDBkYTkwYmFhYjQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KQEAgLTY1MywxMSArNjUzLDggQEAgdm9pZCBQ
YXN0ZWJvYXJkOjpzZXREcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRQb2lu
dCYgbG9jYXRpb24pCiAgICAgLy8gSGFjazogV2UgbXVzdCBwb3N0IGFuIGV2ZW50IHRvIHdha2Ug
dXAgdGhlIE5TRHJhZ01hbmFnZXIsIHdoaWNoIGlzIHNpdHRpbmcgaW4gYSBuZXh0RXZlbnQgY2Fs
bAogICAgIC8vIHVwIHRoZSBzdGFjayBmcm9tIHVzIGJlY2F1c2UgdGhlIENvcmVGb3VuZGF0aW9u
IGRyYWcgbWFuYWdlciBkb2VzIG5vdCB1c2UgdGhlIHJ1biBsb29wIGJ5IGl0c2VsZi4KICAgICAv
LyBUaGlzIGlzIHRoZSBtb3N0IGlubm9jdW91cyBldmVudCB0byB1c2UsIHBlciBLcmlzdGVuIEZv
cnN0ZXIuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCog
ZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9u
Ok5TWmVyb1BvaW50CisgICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkIGxvY2F0aW9uOk5TWmVyb1BvaW50CiAgICAgICAg
IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBl
dmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6WUVTXTsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IGQzNGQ2ZWFlOTQ4ZjdhZmNiYWIzMzAzMTRmZGNiYTc4
ZTllNDAwYjguLjc3MDVkMTZiNGM0N2U5ZjMwM2MyNDY0MmMwM2M5ODFjYTU4NmJlZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMubW0KQEAgLTM2LDcgKzM2LDYgQEAKICNpbXBvcnQgPEhJVG9vbGJveC9FdmVudHMuaD4K
ICNpbXBvcnQgPG1hY2gvbWFjaF90aW1lLmg+CiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgot
I2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTIsMjcgKzUxLDI0IEBAIHN0YXRpYyBOU1BvaW50IGds
b2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQg
dHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFY
X0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNh
c2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAg
ICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAg
ICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoK
LSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNS
aWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAg
Y2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAg
ICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50
IHdpbmRvd10pOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIHsgMCwgMCB9
OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRlcmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3Vz
ZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFn
Z2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5
cGVTY3JvbGxXaGVlbDoKKyAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlv
bkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biB7IDAsIDAgfTsKICAgICB9CiB9CiAKQEAgLTgwLDMzICs3NiwzMCBAQCBzdGF0aWMgSW50UG9p
bnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KQogewog
ICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAwMwotICAgICAgICBjYXNlIE5TRXZl
bnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBO
U0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNl
IE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3du
OgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNTY3JvbGxXaGVlbDogewotICAgICAgICAgICAgLy8g
Tm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2YgdGhl
IHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgotICAgICAgICAgICAgLy8gSW4g
dGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5hdGUgZ2V0cyBmbGlwcGVkIGJ5IFdpZGdldDo6Y29u
dmVydEZyb21Db250YWluaW5nV2luZG93LgotICAgICAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9
IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsKLSAgICAgICAgICAgIGlmICh3aW5kb3dWaWV3KQot
ICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gW3dpbmRvd1ZpZXcgY29udmVydFBvaW50OmxvY2F0
aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQobG9jYXRpb24p
OwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICByZXR1cm4gSW50UG9pbnQoKTsKKyAgICBjYXNlIE5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNl
RW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6IHsKKyAgICAg
ICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQg
b2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgorICAgICAgICAvLyBJ
biB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpj
b252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCisgICAgICAgIE5TUG9pbnQgbG9jYXRpb24gPSBb
ZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIGlmICh3aW5kb3dWaWV3KQorICAgICAg
ICAgICAgbG9jYXRpb24gPSBbd2luZG93VmlldyBjb252ZXJ0UG9pbnQ6bG9jYXRpb24gZnJvbVZp
ZXc6bmlsXTsKKyAgICAgICAgcmV0dXJuIEludFBvaW50KGxvY2F0aW9uKTsKKyAgICB9CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CiAgICAgfQogfQogCkBAIC0xMTQs
NzIgKzEwNyw2MyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChOU0V2
ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewogI2lmIGRlZmluZWQo
X19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEwMDMKLSAg
ICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVz
c3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBMZWZ0QnV0
dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdo
dE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAg
IHJldHVybiBSaWdodEJ1dHRvbjsKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdn
ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE5vQnV0dG9u
OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAg
ICAgICAgcmV0dXJuIExlZnRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gUmlnaHRCdXR0b247CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAg
ICByZXR1cm4gTWlkZGxlQnV0dG9uOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBOb0J1
dHRvbjsKICAgICB9CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1vdXNlRXZlbnRU
eXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0p
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xl
ZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNh
c2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNh
c2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2Vk
OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7Ci0gICAgICAg
IGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9y
bUV2ZW50OjpNb3VzZVByZXNzZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAg
ICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAg
ICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJu
IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
TW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93
bjoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VV
cDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgICAgICByZXR1cm4gUGxh
dGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
UGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tD
b3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVd
KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNM
ZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dl
ZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJN
b3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOwot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBbZXZlbnQgY2xp
Y2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogfQogCkBA
IC00OTcsMjggKzQ4MSwyOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktleUV2ZW50KE5TRXZl
bnQqIGV2ZW50KQogewogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0No
YW5nZWQpIHsKICAgICAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgICAg
IGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgICAgIGNhc2UgNTU6IC8vIExlZnQg
Q29tbWFuZAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIk1ldGEiKTsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2siKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQKLSAgICAgICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0
IFNoaWZ0Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAgICAgICAgICBj
YXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJBbHQi
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAot
ICAgICAgICAgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAotICAgICAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoIkNvbnRyb2wiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1h
bmQKKyAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAgICAgICByZXR1cm4g
U3RyaW5nKCJNZXRhIik7CisKKyAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAgICAg
ICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2NrIik7CisKKyAgICAgICAgY2FzZSA1NjogLy8gTGVm
dCBTaGlmdAorICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAorICAgICAgICAgICAgcmV0
dXJuIFN0cmluZygiU2hpZnQiKTsKKworICAgICAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAorICAg
ICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkFs
dCIpOworCisgICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgICAgICBjYXNlIDYyOiAv
LyBSaWdodCBDdHJsCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJDb250cm9sIik7CisKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC01
MzQsNDQgKzUxOCwzOCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50
KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhh
cyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNh
c2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSAgICAgICAgICAgIGJy
ZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAg
IGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2Vk
OgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TTnVtZXJpY1BhZEtleU1hc2spCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdOdW1lcmljUGFkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHN3aXRjaCAo
W2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNzE6IC8vIENsZWFyCi0gICAgICAgIGNh
c2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3NTogLy8gLwotICAgICAgICBjYXNlIDY3OiAvLyAq
Ci0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAgICAgICAgY2FzZSA2OTogLy8gKwotICAgICAgICBj
YXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBjYXNlIDY1OiAvLyAuCi0gICAgICAgIGNhc2UgODI6
IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8gMQotICAgICAgICBjYXNlIDg0OiAvLyAyCi0gICAg
ICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAgY2FzZSA4NjogLy8gNAotICAgICAgICBjYXNlIDg3
OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8vIDYKLSAgICAgICAgY2FzZSA4OTogLy8gNwotICAg
ICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAgIGNhc2UgOTI6IC8vIDkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICB9CisgICAgY2FzZSA3MTogLy8gQ2xlYXIKKyAgICBjYXNlIDgxOiAv
LyA9CisgICAgY2FzZSA3NTogLy8gLworICAgIGNhc2UgNjc6IC8vICoKKyAgICBjYXNlIDc4OiAv
LyAtCisgICAgY2FzZSA2OTogLy8gKworICAgIGNhc2UgNzY6IC8vIEVudGVyCisgICAgY2FzZSA2
NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAKKyAgICBjYXNlIDgzOiAvLyAxCisgICAgY2FzZSA4
NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMKKyAgICBjYXNlIDg2OiAvLyA0CisgICAgY2FzZSA4
NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYKKyAgICBjYXNlIDg5OiAvLyA3CisgICAgY2FzZSA5
MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQog
ICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNTg1LDEwICs1NjMsNyBAQCBpbnQgd2lu
ZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAvLyAyLiBLZXlzIGZv
ciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29kZXMsIGxpa2UgUHJp
bnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlzLiBPbiBXaW5kb3dz
LCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVudCBrZXlib2FyZCBs
YXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NLZXlDb2RlRm9yQ2hh
ckNvZGUoKS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoIWlz
S2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVu
dCB0eXBlXSA9PSBOU0tleVVwKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlw
ZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5VXApKSB7CiAgICAgICAg
IC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdFUlRZIGxheW91dCwg
c28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5TU3RyaW5nKiBzID0g
W2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3RoXSA+IDAgPyB3aW5k
b3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pIDogMDsKQEAgLTY0
NiwzNSArNjIxLDMyIEBAIGRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBl
dmVudCkKIAogc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5
cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5T
S2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkK
KyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleVVwOwogICAgIC8v
IEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlmIHRoZSB1c2VyIHByZXNzZXMgYm90aCBTaGlmdCBr
ZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgogICAgIC8vIHdlIHRyZWF0IHJlbGVhc2luZyBvbmUg
b2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAg
ICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKLSAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBD
b21tYW5kCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29t
bWFuZEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1NzogLy8gQ2Fw
c2xvY2sKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBo
YVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU2OiAvLyBM
ZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICBy
ZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKSA9PSAwOwotICAg
ICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0Ci0gICAgICAgIGNhc2UgNjE6
IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1
OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAgICAg
ICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgPT0g
MDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgotICAgICAgICAg
ICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Z1bmN0aW9uS2V5TWFzaykgPT0g
MDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIDU0OiAvLyBSaWdodCBD
b21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCisgICAgICAgIHJldHVybiAhKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKTsKKworICAg
IGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jayk7CisKKyAgICBjYXNlIDU2OiAvLyBM
ZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8gUmlnaHQgU2hpZnQKKyAgICAgICAgcmV0dXJuICEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0KTsKKworICAg
IGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAgY2FzZSA2MTogLy8gUmlnaHQgQWx0CisgICAgICAg
IHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24pOworCisgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCisgICAgY2FzZSA2MjogLy8gUmlnaHQg
Q3RybAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBjYXNlIDYzOiAvLyBGdW5jdGlvbgorICAgICAgICBy
ZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b24pOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC04MTgsMTAgKzc5MCw3IEBAIHB1
YmxpYzoKICAgICAgICAgbV9rZXkgPSBrZXlGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1f
Y29kZSA9IGNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fd2luZG93c1ZpcnR1YWxL
ZXlDb2RlID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIG1fYXV0b1JlcGVhdCA9IFtldmVudCB0eXBl
XSAhPSBOU0ZsYWdzQ2hhbmdlZCAmJiBbZXZlbnQgaXNBUmVwZWF0XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbV9hdXRvUmVwZWF0ID0gW2V2ZW50IHR5cGVdICE9IE5T
RXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtldmVudCBpc0FSZXBlYXRdOwogICAgICAgICBtX2lz
S2V5cGFkID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgICAgIG1faXNTeXN0ZW1LZXkgPSBm
YWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KaW5kZXggOTFj
YmVkZDBjZGEwNzA2NWIzYmYzZjE3MDE1OGYxZDYyNzczMTgzZi4uMTUwZmFiZThlMzc3NGYwNjI1
Zjg1OTY2NGNhZjc4NzRjYzdjNjVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtMTM5LDE4ICsxMzksMTUgQEAgc3RhdGljIFNj
cm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRv
bnNEb3VibGVFbmQ7CiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXpl
VG9OU0NvbnRyb2xTaXplKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoY29udHJvbFNpemUp
IHsKICAgICBjYXNlIFJlZ3VsYXJTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJD
b250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGNh
c2UgU21hbGxTY3JvbGxiYXI6Ci0gICAgICAgIHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7Cisg
ICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIH0K
IAogdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFy
JiBzY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXgg
MDI0NzJjOWE2OTA4YzZmZGIwMzgyODFmYWFhODM4ZGZiNTE1ZTRkNS4uMmJjMjYyZDgwNmVlOWNm
M2FjN2U1NDFmNjhhYzMwMmI2MmQwODY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9U
aGVtZU1hYy5tbQpAQCAtNjcsMTEgKzY3LDggQEAgLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsKICAg
ICAvLyBVc2luZyBkZWZlcjpZRVMgcHJldmVudHMgdXMgZnJvbSB3YXN0aW5nIGFueSB3aW5kb3cg
c2VydmVyIHJlc291cmNlcyBmb3IgdGhpcyB3aW5kb3csIHNpbmNlIHdlJ3JlIG5vdCBhY3R1YWxs
eQogICAgIC8vIGdvaW5nIHRvIGRyYXcgaW50byBpdC4gVGhlIG90aGVyIGFyZ3VtZW50cyBtYXRj
aCB3aGF0IHlvdSBnZXQgd2hlbiBjYWxsaW5nIC1bTlNXaW5kb3cgaW5pdF0uCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgc3RhdGljIFdlYkNvcmVUaGVtZVdpbmRvdyAq
d2luZG93ID0gW1tXZWJDb3JlVGhlbWVXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
TlNNYWtlUmVjdCgxMDAsIDEwMCwgMTAwLCAxMDApCi0gICAgICAgIHN0eWxlTWFzazpOU1RpdGxl
ZFdpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIHN0eWxlTWFzazpOU1dpbmRvd1N0
eWxlTWFza1RpdGxlZCBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsK
ICAgICByZXR1cm4gd2luZG93OwogfQogCkBAIC0xNDQsMTUgKzE0MSwxMiBAQCBUaGVtZSogcGxh
dGZvcm1UaGVtZSgpCiAKIHN0YXRpYyBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplRm9yRm9udChj
b25zdCBGb250Q2FzY2FkZSYgZm9udCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKICAgICBpbnQgZm9udFNpemUgPSBmb250LnBpeGVsU2l6ZSgpOwogICAgIGlmIChmb250
U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAg
ICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZvbnRTaXplID49IDExKQot
ICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250
cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgcmV0dXJuIE5T
Q29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0
YXRpYyBMZW5ndGhTaXplIHNpemVGcm9tTlNDb250cm9sU2l6ZShOU0NvbnRyb2xTaXplIG5zQ29u
dHJvbFNpemUsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3Is
IGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzKQpAQCAtMTc1LDE2ICsxNjksMTMg
QEAgc3RhdGljIExlbmd0aFNpemUgc2l6ZUZyb21Gb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250
LCBjb25zdCBMZW5ndGhTaXplJiB6b29tZWQKIAogc3RhdGljIENvbnRyb2xTaXplIGNvbnRyb2xT
aXplRnJvbVBpeGVsU2l6ZShjb25zdCBzdGQ6OmFycmF5PEludFNpemUsIDM+JiBzaXplcywgY29u
c3QgSW50U2l6ZSYgbWluWm9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgp
ID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLndpZHRoKCkg
KiB6b29tRmFjdG9yKSAmJgotICAgICAgICBtaW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRp
Y19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUZh
Y3RvcikpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAobWlu
Wm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRy
b2xTaXplXS53aWR0aCgpICogem9vbUZhY3RvcikgJiYKLSAgICAgICAgbWluWm9vbWVkU2l6ZS5o
ZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0uaGVp
Z2h0KCkgKiB6b29tRmFjdG9yKSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsK
LSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNp
emVzW05TQ29udHJvbFNpemVSZWd1bGFyXS53aWR0aCgpICogem9vbUZhY3RvcikKKyAgICAgICAg
JiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29u
dHJvbFNpemVSZWd1bGFyXS5oZWlnaHQoKSAqIHpvb21GYWN0b3IpKQorICAgICAgICByZXR1cm4g
TlNDb250cm9sU2l6ZVJlZ3VsYXI7CisgICAgaWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVTbWFsbF0ud2lkdGgoKSAqIHpvb21G
YWN0b3IpCisgICAgICAgICYmIG1pblpvb21lZFNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8
aW50PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisg
ICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNp
emVNaW5pOwogfQogCiBzdGF0aWMgdm9pZCBzZXRDb250cm9sU2l6ZShOU0NlbGwqIGNlbGwsIGNv
bnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29t
ZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQpAQCAtNDgwLDEwICs0NzEsNyBAQCBzdGF0aWMgdm9p
ZCBzZXRVcEJ1dHRvbkNlbGwoTlNCdXR0b25DZWxsICpjZWxsLCBDb250cm9sUGFydCBwYXJ0LCBj
b25zdCBDb250cm9sUwogewogICAgIC8vIFNldCB0aGUgY29udHJvbCBzaXplIGJhc2VkIG9mZiB0
aGUgcmVjdGFuZ2xlIHdlJ3JlIHBhaW50aW5nIGludG8uCiAgICAgY29uc3Qgc3RkOjphcnJheTxJ
bnRTaXplLCAzPiYgc2l6ZXMgPSBidXR0b25TaXplcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIGlmIChwYXJ0ID09IFNxdWFyZUJ1dHRvblBhcnQgfHwgem9vbWVk
U2l6ZS5oZWlnaHQoKSA+IGJ1dHRvblNpemVzKClbTlNSZWd1bGFyQ29udHJvbFNpemVdLmhlaWdo
dCgpICogem9vbUZhY3RvcikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChwYXJ0ID09IFNxdWFyZUJ1dHRvblBhcnQgfHwgem9vbWVkU2l6ZS5oZWlnaHQoKSA+IGJ1dHRv
blNpemVzKClbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUZhY3Rvcikgewog
ICAgICAgICAvLyBVc2UgdGhlIHNxdWFyZSBidXR0b24KICAgICAgICAgaWYgKFtjZWxsIGJlemVs
U3R5bGVdICE9IE5TU2hhZG93bGVzc1NxdWFyZUJlemVsU3R5bGUpCiAgICAgICAgICAgICBbY2Vs
bCBzZXRCZXplbFN0eWxlOk5TU2hhZG93bGVzc1NxdWFyZUJlemVsU3R5bGVdOwpAQCAtNTc5LDE1
ICs1NjcsMTIgQEAgc3RhdGljIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHN0ZXBwZXJT
aXplcygpCiAvLyBzaG91bGQgYmUgZXF1YWwgdG8gb3IgbGVzcyB0aGFuIHRoZSBjb3JyZXNwb25k
aW5nIHRleHQgZmllbGQgaGVpZ2h0LAogc3RhdGljIE5TQ29udHJvbFNpemUgc3RlcHBlckNvbnRy
b2xTaXplRm9yRm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCkKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpbnQgZm9udFNpemUgPSBmb250LnBpeGVsU2l6ZSgp
OwogICAgIGlmIChmb250U2l6ZSA+PSAxOCkKLSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRy
b2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZv
bnRTaXplID49IDEzKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJl
dHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6
ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHBhaW50U3RlcHBlcihDb250cm9sU3RhdGVzJiBzdGF0
ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0
LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KikKQEAgLTYwMCwxNSArNTg1LDEyIEBAIHN0
YXRpYyB2b2lkIHBhaW50U3RlcHBlcihDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QKICAgICBkcmF3SW5mby5zdGF0ZSA9IGNvbnZlcnRDb250cm9s
U3RhdGVzVG9UaGVtZURyYXdTdGF0ZShrVGhlbWVJbmNEZWNCdXR0b24sIHN0YXRlcyk7CiAgICAg
ZHJhd0luZm8uYWRvcm5tZW50ID0ga1RoZW1lQWRvcm5tZW50RGVmYXVsdDsKICAgICBDb250cm9s
U2l6ZSBjb250cm9sU2l6ZSA9IGNvbnRyb2xTaXplRnJvbVBpeGVsU2l6ZShzdGVwcGVyU2l6ZXMo
KSwgSW50U2l6ZSh6b29tZWRSZWN0LnNpemUoKSksIHpvb21GYWN0b3IpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChjb250cm9sU2l6ZSA9PSBOU1NtYWxsQ29u
dHJvbFNpemUpCisgICAgaWYgKGNvbnRyb2xTaXplID09IE5TQ29udHJvbFNpemVTbWFsbCkKICAg
ICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVtZUluY0RlY0J1dHRvblNtYWxsOwotICAgIGVsc2Ug
aWYgKGNvbnRyb2xTaXplID09IE5TTWluaUNvbnRyb2xTaXplKQorICAgIGVsc2UgaWYgKGNvbnRy
b2xTaXplID09IE5TQ29udHJvbFNpemVNaW5pKQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1Ro
ZW1lSW5jRGVjQnV0dG9uTWluaTsKICAgICBlbHNlCiAgICAgICAgIGRyYXdJbmZvLmtpbmQgPSBr
VGhlbWVJbmNEZWNCdXR0b247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBJ
bnRSZWN0IHJlY3Qoem9vbWVkUmVjdCk7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBz
dGF0ZVNhdmVyKGNvbnRleHQpOwpAQCAtNzQ5LDEyICs3MzEsOSBAQCBMZW5ndGhTaXplIFRoZW1l
TWFjOjptaW5pbXVtQ29udHJvbFNpemUoQ29udHJvbFBhcnQgcGFydCwgY29uc3QgRm9udENhc2Nh
ZGUmIGZvbgogICAgICAgICBjYXNlIEJ1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gTGVu
Z3RoU2l6ZShMZW5ndGgoMCwgRml4ZWQpLCBMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PigxNSAqIHpv
b21GYWN0b3IpLCBGaXhlZCkpOwogICAgICAgICBjYXNlIElubmVyU3BpbkJ1dHRvblBhcnQ6ewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgSW50U2l6ZSBi
YXNlID0gc3RlcHBlclNpemVzKClbTlNNaW5pQ29udHJvbFNpemVdOworICAgICAgICAgICAgSW50
U2l6ZSBiYXNlID0gc3RlcHBlclNpemVzKClbTlNDb250cm9sU2l6ZU1pbmldOwogICAgICAgICAg
ICAgcmV0dXJuIExlbmd0aFNpemUoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oYmFzZS53aWR0aCgp
ICogem9vbUZhY3RvciksIEZpeGVkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExl
bmd0aChzdGF0aWNfY2FzdDxpbnQ+KGJhc2UuaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSwgRml4ZWQp
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgfQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgcmV0dXJuIFRoZW1lOjptaW5pbXVtQ29udHJvbFNpemUocGFydCwg
Zm9udCwgem9vbUZhY3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1t
CmluZGV4IGQzYjllZTk4ZGY5NDIwY2NkNzExNmIwNDAzNTYzODNjZmM3NDZmOTAuLmNkNWI4YjUw
MzUxMDA3ZWMwMWVkNzMyYWM3ZDM2YjVlNDk3MTdjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURX
aW5kb3dDb250cm9sbGVyLm1tCkBAIC03MywxMCArNzMsNyBAQCBAaW1wbGVtZW50YXRpb24gV2Vi
VmlkZW9GdWxsc2NyZWVuSFVEV2luZG93CiAtIChpZClpbml0V2l0aENvbnRlbnRSZWN0OihOU1Jl
Y3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihOU1VJbnRlZ2VyKWFTdHlsZSBiYWNraW5nOihOU0Jh
Y2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlwZSBkZWZlcjooQk9PTClmbGFnCiB7CiAgICAgVU5V
U0VEX1BBUkFNKGFTdHlsZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFz
azpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6YnVmZmVyaW5nVHlwZSBkZWZlcjpmbGFn
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBzZWxmID0gW3N1cGVyIGluaXRX
aXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9y
ZGVybGVzcyBiYWNraW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZmxhZ107CiAgICAgaWYgKCFzZWxm
KQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC0xMjIsMTUgKzExOSwxMiBAQCAtIChCT09MKXJl
c2lnbkZpcnN0UmVzcG9uZGVyCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZl
bnQgKilldmVudAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8v
IEJsb2NrIGFsbCBjb21tYW5kIGtleSBldmVudHMgd2hpbGUgdGhlIGZ1bGxzY3JlZW4gd2luZG93
IGlzIHVwLgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZl
bnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1cm4gTk87CiAgICAg
Ci0gICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykpCisg
ICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1h
bmQpKQogICAgICAgICByZXR1cm4gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAg
ICAgcmV0dXJuIFlFUzsKIH0KIApAQCAtMTQ1LDExICsxMzksNyBAQCBAaW1wbGVtZW50YXRpb24g
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlcgogCiAtIChpZClpbml0CiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNXaW5kb3cgKndpbmRvdyA9
IFtbV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
Ok5TTWFrZVJlY3QoMCwgMCwgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIHdpbmRvd1dp
ZHRoLCB3aW5kb3dIZWlnaHQpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3Mg
YmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBzZWxmID0gW3N1
cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dpbmRvdyBzZXREZWxlZ2F0ZTpzZWxm
XTsKICAgICBbd2luZG93IHJlbGVhc2VdOwpAQCAtMTg4LDIwICsxNzgsMTcgQEAgLSAodm9pZClr
ZXlEb3duOihOU0V2ZW50ICopZXZlbnQKICAgICAgICAgICAgIGNhc2UgJyAnOgogICAgICAgICAg
ICAgICAgIFtzZWxmIHRvZ2dsZVBsYXlpbmc6bmlsXTsKICAgICAgICAgICAgICAgICByZXR1cm47
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgICAgICBjYXNlIE5T
VXBBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAgaWYgKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgICAgICAg
ICAgICAgIFtzZWxmIHNldFZvbHVtZTpbc2VsZiBtYXhWb2x1bWVdXTsKICAgICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIGluY3JlbWVudFZvbHVtZV07CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2FzZSBOU0Rvd25BcnJvd0Z1bmN0aW9u
S2V5OgotICAgICAgICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVy
bmF0ZUtleU1hc2spCisgICAgICAgICAgICAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNl
dFZvbHVtZTowXTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFtz
ZWxmIGRlY3JlbWVudFZvbHVtZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAg
ICBicmVhazsKQEAgLTM3OCwxNyArMzY1LDExIEBAIC0gKHZvaWQpd2luZG93RGlkTG9hZAogICAg
IFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Ol90aW1lbGluZV07CiAKICAgICBfZWxhcHNlZFRpbWVU
ZXh0ID0gY3JlYXRlVGltZVRleHRGaWVsZChOU01ha2VSZWN0KHRpbWVUZXh0RmllbGRIb3Jpem9u
dGFsTWFyZ2luLCB0aW1lbGluZUJvdHRvbU1hcmdpbiwgdGltZVRleHRGaWVsZFdpZHRoLCB0aW1l
VGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgW19lbGFwc2VkVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TTGVmdFRleHRBbGlnbm1lbnRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtfZWxhcHNlZFRpbWVUZXh0IHNldEFs
aWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0XTsKICAgICBbY29udGVudFZpZXcgYWRkU3Vidmll
dzpfZWxhcHNlZFRpbWVUZXh0XTsKIAogICAgIF9yZW1haW5pbmdUaW1lVGV4dCA9IGNyZWF0ZVRp
bWVUZXh0RmllbGQoTlNNYWtlUmVjdCh3aW5kb3dXaWR0aCAtIHRpbWVUZXh0RmllbGRIb3Jpem9u
dGFsTWFyZ2luIC0gdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lbGluZUJvdHRvbU1hcmdpbiwgdGlt
ZVRleHRGaWVsZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW19yZW1haW5pbmdUaW1lVGV4dCBzZXRBbGlnbm1lbnQ6
TlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVudFJpZ2h0XTsK
ICAgICBbY29udGVudFZpZXcgYWRkU3VidmlldzpfcmVtYWluaW5nVGltZVRleHRdOwogCiAgICAg
W3dpbmRvdyByZWNhbGN1bGF0ZUtleVZpZXdMb29wXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0aW9uLm1tCmluZGV4IDQ1OThhMDNlZDJmYTMyMTUw
ZTY0YWY5Y2JiNjQ1OTk0NjlmZGRmNzcuLjhhYmM4NDBiNzNjYzY0NWM4YWM0MDZkZWFmYWU5NDIy
Y2RjMzUzZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5k
b3dBbmltYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYldpbmRv
d0FuaW1hdGlvbi5tbQpAQCAtMzgsMTAgKzM4LDcgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQgc2xv
d01vdGlvbkZhY3RvciA9IDEwOwogCiBzdGF0aWMgTlNUaW1lSW50ZXJ2YWwgV2ViV2luZG93QW5p
bWF0aW9uRHVyYXRpb25Gcm9tRHVyYXRpb24oTlNUaW1lSW50ZXJ2YWwgZHVyYXRpb24pCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIChbW05TQXBwIGN1
cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10gJiBOU1NoaWZ0S2V5TWFzaykgPyBkdXJhdGlvbiAq
IHNsb3dNb3Rpb25GYWN0b3IgOiBkdXJhdGlvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICByZXR1cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdCkgPyBkdXJhdGlvbiAqIHNsb3dNb3Rpb25GYWN0b3IgOiBk
dXJhdGlvbjsKIH0KIAogc3RhdGljIE5TUmVjdCBzY2FsZWRSZWN0KE5TUmVjdCBfaW5pdGlhbEZy
YW1lLCBOU1JlY3QgX2ZpbmFsRnJhbWUsIENHRmxvYXQgZmFjdG9yKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDNlZGRjMDNlNGQ4ZTlmNjM1MTdjNTI3
MWYyMDFiNTY3ODIyYjkwMjguLmRiZjQ3OGY0OWM5NDM2MTEwOTk5YmNjMWM5MDc1ZTc3NmU5ZDBj
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTM3
OSwyMiArMzc5LDEzIEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OnVwZGF0ZUNhY2hlZFN5c3RlbUZv
bnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIGNzc1ZhbHVlSWQsIEZvCiAgICAgICAgICAgICBmb250
TmFtZSA9IEF0b21pY1N0cmluZygiLWFwcGxlLXN0YXR1cy1iYXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENT
U1ZhbHVlV2Via2l0TWluaUNvbnRyb2w6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQg
c3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU01pbmlDb250cm9sU2l6ZV1dOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVt
Rm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9s
U2l6ZU1pbmldXTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1ZhbHVlV2Vi
a2l0U21hbGxDb250cm9sOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZv
bnRTaXplRm9yQ29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZT
aXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplU21h
bGxdXTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Q29u
dHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIGZv
bnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNv
bnRyb2xTaXplOk5TUmVndWxhckNvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0Zv
bnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplUmVndWxhcl1dOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVdXTsKQEAgLTc3
NywzMCArNzY4LDI0IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTdXBwb3J0c1RpbnRz
KGNvbnN0IFJlbmRlck9iamVjdCYgbykgY29uc3QKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVN
YWM6OmNvbnRyb2xTaXplRm9yRm9udChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7
CiAgICAgaW50IGZvbnRTaXplID0gc3R5bGUuZm9udFNpemUoKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKICAgICBpZiAoZm9udFNpemUgPj0gMTYpCi0gICAgICAgIHJldHVy
biBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1
bGFyOwogICAgIGlmIChmb250U2l6ZSA+PSAxMSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250
cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0
dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1lTWFj
Ojpjb250cm9sU2l6ZUZvckNlbGwoTlNDZWxsKiwgY29uc3QgSW50U2l6ZSogc2l6ZXMsIGNvbnN0
IEludFNpemUmIG1pblNpemUsIGZsb2F0IHpvb21MZXZlbCkgY29uc3QKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRp
Y19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFyQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tTGV2
ZWwpCi0gICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXpl
c1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQotICAgICAgICBy
ZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBz
dGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVSZWd1bGFyXS53aWR0aCgpICogem9v
bUxldmVsKQorICAgICAgICAmJiBtaW5TaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4o
c2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJdLmhlaWdodCgpICogem9vbUxldmVsKSkKKyAgICAg
ICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogCi0gICAgaWYgKG1pblNpemUud2lkdGgo
KSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0ud2lkdGgoKSAq
IHpvb21MZXZlbCkKLSAgICAgICAgJiYgbWluU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQotICAg
ICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOworICAgIGlmIChtaW5TaXplLndpZHRoKCkg
Pj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxdLndpZHRoKCkgKiB6
b29tTGV2ZWwpCisgICAgICAgICYmIG1pblNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50
PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxdLmhlaWdodCgpICogem9vbUxldmVsKSkKKyAgICAg
ICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKIAotICAgIHJldHVybiBOU01pbmlDb250cm9s
U2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gTlNDb250cm9s
U2l6ZU1pbmk7CiB9CiAKIHZvaWQgUmVuZGVyVGhlbWVNYWM6OnNldENvbnRyb2xTaXplKE5TQ2Vs
bCogY2VsbCwgY29uc3QgSW50U2l6ZSogc2l6ZXMsIGNvbnN0IEludFNpemUmIG1pblNpemUsIGZs
b2F0IHpvb21MZXZlbCkKQEAgLTg1NywxNSArODQyLDEyIEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6
OnNldEZvbnRGcm9tQ29udHJvbFNpemUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiBzdHls
ZSwKIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1G
b250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKICAgICBpbnQgZm9udFNpemUgPSBzdHlsZS5mb250U2l6ZSgpOwot
ICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6
TlNSZWd1bGFyQ29udHJvbFNpemVdKQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNp
emU7Ci0gICAgaWYgKGZvbnRTaXplID49IFtOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xT
aXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBpZiAoZm9udFNpemUgPj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNv
bnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1bGFyXSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJv
bFNpemVSZWd1bGFyOworICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXpl
Rm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZVNtYWxsXSkKKyAgICAgICAgcmV0dXJuIE5TQ29u
dHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50VGV4dEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYgbywgY29u
c3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcikKQEAgLTExNDcsMTAg
KzExMjksNyBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKGNvbnN0IFJl
bmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYQogICAgIGNvbnN0IGF1dG8mIHJlbmRl
clByb2dyZXNzID0gZG93bmNhc3Q8UmVuZGVyUHJvZ3Jlc3M+KHJlbmRlck9iamVjdCk7CiAgICAg
SElUaGVtZVRyYWNrRHJhd0luZm8gdHJhY2tJbmZvOwogICAgIHRyYWNrSW5mby52ZXJzaW9uID0g
MDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoY29udHJvbFNp
emUgPT0gTlNSZWd1bGFyQ29udHJvbFNpemUpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgaWYgKGNvbnRyb2xTaXplID09IE5TQ29udHJvbFNpemVSZWd1bGFyKQogICAgICAgICB0
cmFja0luZm8ua2luZCA9IHJlbmRlclByb2dyZXNzLnBvc2l0aW9uKCkgPCAwID8ga1RoZW1lTGFy
Z2VJbmRldGVybWluYXRlQmFyIDoga1RoZW1lTGFyZ2VQcm9ncmVzc0JhcjsKICAgICBlbHNlCiAg
ICAgICAgIHRyYWNrSW5mby5raW5kID0gcmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBr
VGhlbWVNZWRpdW1JbmRldGVybWluYXRlQmFyIDoga1RoZW1lTWVkaXVtUHJvZ3Jlc3NCYXI7CkBA
IC0xNDM4LDE1ICsxNDE3LDEyIEBAIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplIFJlbmRl
clRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKGNvbnN0IFJlbmRlclN0eWxlJiBzCiAgICAgTlNQb3BV
cEJ1dHRvbkNlbGwqIHBvcHVwQnV0dG9uID0gdGhpcy0+cG9wdXBCdXR0b24oKTsKICAgICBOU0Nv
bnRyb2xTaXplIHNpemUgPSBjb250cm9sU2l6ZUZvckNlbGwocG9wdXBCdXR0b24sIHBvcHVwQnV0
dG9uU2l6ZXMoKSwgcmVjdC5zaXplKCksIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSk7CiAgICAgc3dp
dGNoIChzaXplKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2Fz
ZSBOU1JlZ3VsYXJDb250cm9sU2l6ZToKKyAgICBjYXNlIE5TQ29udHJvbFNpemVSZWd1bGFyOgog
ICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw7Ci0gICAg
Y2FzZSBOU1NtYWxsQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplU21hbGw6CiAg
ICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZVNtYWxsOwotICAgIGNh
c2UgTlNNaW5pQ29udHJvbFNpemU6CisgICAgY2FzZSBOU0NvbnRyb2xTaXplTWluaToKICAgICAg
ICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gUG9wdXBNZW51
U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw7CiAgICAgfQpAQCAtMjA1NSwxMiArMjAzMSw5IEBA
IE5TU2xpZGVyQ2VsbCogUmVuZGVyVGhlbWVNYWM6OnNsaWRlclRodW1iSG9yaXpvbnRhbCgpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX3NsaWRlclRodW1iSG9yaXpvbnRhbCkgewogICAgICAgICBtX3Ns
aWRlclRodW1iSG9yaXpvbnRhbCA9IGFkb3B0TlMoW1tOU1NsaWRlckNlbGwgYWxsb2NdIGluaXRd
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgW21fc2xpZGVy
VGh1bWJIb3Jpem9udGFsLmdldCgpIHNldFNsaWRlclR5cGU6TlNMaW5lYXJTbGlkZXJdOwotICAg
ICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFs
bENvbnRyb2xTaXplXTsKKyAgICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNl
dFNsaWRlclR5cGU6TlNTbGlkZXJUeXBlTGluZWFyXTsKKyAgICAgICAgW21fc2xpZGVyVGh1bWJI
b3Jpem9udGFsLmdldCgpIHNldENvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF07CiAgICAg
ICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRhbC5nZXQoKSBzZXRGb2N1c1JpbmdUeXBlOk5TRm9j
dXNSaW5nVHlwZUV4dGVyaW9yXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9
CiAKICAgICByZXR1cm4gbV9zbGlkZXJUaHVtYkhvcml6b250YWwuZ2V0KCk7CkBAIC0yMDcwLDEx
ICsyMDQzLDggQEAgTlNTbGlkZXJDZWxsKiBSZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJWZXJ0
aWNhbCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NsaWRlclRodW1iVmVydGljYWwpIHsKICAgICAg
ICAgbV9zbGlkZXJUaHVtYlZlcnRpY2FsID0gYWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxvY10g
aW5pdF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbV9z
bGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldFNsaWRlclR5cGU6TlNMaW5lYXJTbGlkZXJdOwot
ICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldENvbnRyb2xTaXplOk5TU21h
bGxDb250cm9sU2l6ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIFtt
X3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0U2xpZGVyVHlwZTpOU1NsaWRlclR5cGVMaW5l
YXJdOworICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNldENvbnRyb2xTaXpl
Ok5TQ29udHJvbFNpemVTbWFsbF07CiAgICAgICAgIFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0
KCkgc2V0Rm9jdXNSaW5nVHlwZTpOU0ZvY3VzUmluZ1R5cGVFeHRlcmlvcl07CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCmluZGV4
IGYyYTM1OTczYTcxZTA2ODI2MGE5MWM5NjdkMjkwNTBkMmVkZTc2MGQuLjk2ZjY0OWE0YWYzMGVm
ZWRjYmE3OTZiNWY3MjY1OWQyZjRiNGJjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0Nh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCkBAIC0xNzMsMTMgKzE3MywxNCBAQCAtIChpZClp
bml0V2l0aENhcmJvbldpbmRvd1JlZjooV2luZG93UmVmKWluV2luZG93UmVmIHRha2luZ093bmVy
c2hpcDooQk9PTClpbldpbgogCiAgICAgLy8gRmlndXJlIG91dCB0aGUgd2luZG93J3Mgc3R5bGUg
bWFzay4KICAgICBzdHlsZU1hc2sgPSBXS0NhcmJvbldpbmRvd01hc2soKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5k
b3dDbG9zZUJveEF0dHJpYnV0ZSkgc3R5bGVNYXNrIHw9IE5TQ2xvc2FibGVXaW5kb3dNYXNrOwot
ICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd1Jlc2l6YWJsZUF0dHJpYnV0ZSkgc3R5
bGVNYXNrIHw9IE5TUmVzaXphYmxlV2luZG93TWFzazsKLSAgICBpZiAod2luZG93RmVhdHVyZXMg
JiBrV2luZG93Q2FuQ29sbGFwc2UpIHN0eWxlTWFzayB8PSBOU01pbmlhdHVyaXphYmxlV2luZG93
TWFzazsKLSAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpIHN0eWxl
TWFzayB8PSBOU1RpdGxlZFdpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMgJiBrV2luZG93Q2xvc2VCb3hBdHRyaWJ1dGUpCisg
ICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlOworICAgIGlmICh3
aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd1Jlc2l6YWJsZUF0dHJpYnV0ZSkKKyAgICAgICAgc3R5
bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlOworICAgIGlmICh3aW5kb3dGZWF0
dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBzZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93
U3R5bGVNYXNrTWluaWF0dXJpemFibGU7CisgICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRv
d0hhc1RpdGxlQmFyKQorICAgICAgICBzdHlsZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tUaXRs
ZWQ7CiAKICAgICBvc1N0YXR1cyA9IEdldFdpbmRvd01vZGFsaXR5KF93aW5kb3dSZWYsICZ3aW5k
b3dNb2RhbGl0eSwgTlVMTCk7CiAgICAgaWYgKG9zU3RhdHVzICE9IG5vRXJyKSB7CkBAIC0zOTMs
MTggKzM5NCwxMiBAQCAtICh2b2lkKXNlbmRTdXBlckV2ZW50OihOU0V2ZW50ICopaW5FdmVudCB7
CiAgICAgLy8gSWdub3JlIHNvbWUgdW5rbm93biBldmVudCB0aGF0IGdldHMgc2VudCB3aGVuIE5T
VGV4dFZpZXdzIGluIHByaW50aW5nIGFjY2Vzc29yeSB2aWV3cyBhcmUgZm9jdXNlZC4gIE0uUC4g
Tm90aWNlIC0gMTIvNy8wMAogICAgIEJPT0wgaWdub3JlRXZlbnQgPSBOTzsKICAgICBOU0V2ZW50
VHlwZSBldmVudFR5cGUgPSBbaW5FdmVudCB0eXBlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBpZiAoZXZlbnRUeXBlPT1OU1N5c3RlbURlZmluZWQpIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRUeXBl
U3lzdGVtRGVmaW5lZCkgewogICAgICAgICBzaG9ydCBldmVudFN1YnR5cGUgPSBbaW5FdmVudCBz
dWJ0eXBlXTsKLSAgICAgICAgaWYgKGV2ZW50U3VidHlwZT09NykgeworICAgICAgICBpZiAoZXZl
bnRTdWJ0eXBlID09IDcpIHsKICAgICAgICAgICAgIGlnbm9yZUV2ZW50ID0gWUVTOwogICAgICAg
ICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgfSBlbHNlIGlmIChl
dmVudFR5cGUgPT0gTlNLZXlEb3duKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gTlNFdmVudFR5cGVLZXlEb3duKSB7CiAgICAgICAg
IC8vIEhhbmRsZSBjb21tYW5kLXNwYWNlIGFzIFtOU0FwcCBzZW5kRXZlbnQ6XSBkb2VzLgogICAg
ICAgICBpZiAoW05TSW5wdXRDb250ZXh0IHByb2Nlc3NJbnB1dEtleUJpbmRpbmdzOmluRXZlbnRd
KSB7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
YXJib24vSElXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvQ2FyYm9uL0hJV2ViVmlldy5t
bQppbmRleCBkMWM1NTBmMWZjZTc0ZGRlZTEyNzE0ZWJhMzNkODczZDBmYzYzMjkyLi4wYWUwMTQ3
MDJmZDM5MWNjZTU4MjZhNGEwMWEwOGZmZjJjMDRiZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJv
bi9ISVdlYlZpZXcubW0KQEAgLTUzOSw3ICs1MzksNyBAQCBDb250ZXh0TWVudUNsaWNrKCBISVdl
YlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5FdmVudCApCiAgICAgTlNQb2ludCBsb2NhdGlvbiA9
IE5TTWFrZVBvaW50KHBvaW50LngsIFt3aW5kb3cgZnJhbWVdLnNpemUuaGVpZ2h0IC0gcG9pbnQu
eSk7CiAgICAgCiAgICAgLy8gTWFrZSB1cCBhbiBldmVudCB3aXRoIHRoZSBwb2ludCBhbmQgc2Vu
ZCBpdCB0byB0aGUgd2luZG93LgotICAgIE5TRXZlbnQgKmtpdEV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZURvd24KKyAgICBOU0V2ZW50ICpraXRFdmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246bG9jYXRp
b24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczow
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0
RXZlbnRUaW1lKGluRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
Yk5TRXZlbnRFeHRyYXMubSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNFdmVudEV4dHJh
cy5tCmluZGV4IGVlYjhjOTIxZDk0YjU4YmU0YmZjZmJmMTM1NGM4YWMwNWU1NGZjMGYuLmQ4ZmIy
YTFmNjE5YTkzNDVjOGQ2MzA3YzUzMzBlODVlYjBmMDY5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCkBAIC0yOSwxNiArMjksMTQgQEAKICNpZiAhUExBVEZP
Uk0oSU9TKQogCiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViTlNFdmVudEV4dHJhcy5oPgorI2lt
cG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbXBs
ZW1lbnRhdGlvbiBOU0V2ZW50IChXZWJFeHRyYXMpCiAKIC0oQk9PTClfd2ViX2lzS2V5RXZlbnQ6
KHVuaWNoYXIpa2V5CiB7CiAgICAgaW50IHR5cGUgPSBbc2VsZiB0eXBlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAodHlwZSAhPSBOU0tleURvd24gJiYgdHlw
ZSAhPSBOU0tleVVwKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICh0eXBl
ICE9IE5TRXZlbnRUeXBlS2V5RG93biAmJiB0eXBlICE9IE5TRXZlbnRUeXBlS2V5VXApCiAgICAg
ICAgIHJldHVybiBOTzsKICAgICAKICAgICBOU1N0cmluZyAqY2hhcnMgPSBbc2VsZiBjaGFyYWN0
ZXJzSWdub3JpbmdNb2RpZmllcnNdOwpAQCAtNjcsMTAgKzY1LDcgQEAgLSAoQk9PTClfd2ViX2lz
RXNjYXBlS2V5RXZlbnQKIAogLSAoQk9PTClfd2ViX2lzT3B0aW9uVGFiS2V5RXZlbnQKIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gKFtzZWxmIG1vZGlm
aWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSAmJiBbc2VsZiBfd2ViX2lzVGFiS2V5RXZl
bnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJldHVybiAoW3NlbGYgbW9k
aWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSAmJiBbc2VsZiBfd2ViX2lz
VGFiS2V5RXZlbnRdOwogfQogCiAtIChCT09MKV93ZWJfaXNSZXR1cm5PckVudGVyS2V5RXZlbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0gYi9T
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TVmlld0V4dHJhcy5tCmluZGV4IDNkYzhmN2Y3YzFm
YTQ2NmUxYzdiYjY2MzUwNzEyMDJiMGJmODAyZTcuLjc0ODkwZDVlMjdkZTY5NmExNGI5NjgxZmQ5
ZGIyNmZmYThmYmViNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNW
aWV3RXh0cmFzLm0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1ZpZXdFeHRyYXMu
bQpAQCAtMzgsNiArMzgsNyBAQAogCiAjaWYgIVBMQVRGT1JNKElPUykKICNpbXBvcnQgPFdlYktp
dExlZ2FjeS9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Mp
CkBAIC04MiwxMiArODMsOSBAQCAtIChCT09MKV93ZWJfZHJhZ1Nob3VsZEJlZ2luRnJvbU1vdXNl
RG93bjooTlNFdmVudCAqKW1vdXNlRG93bkV2ZW50CiAgICAgTlNFdmVudCAqbmV4dEV2ZW50LCAq
Zmlyc3RFdmVudCwgKmRyYWdFdmVudCwgKm1vdXNlVXA7CiAgICAgQk9PTCBkcmFnSXQ7CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW21vdXNlRG93bkV2ZW50
IHR5cGVdICE9IE5TTGVmdE1vdXNlRG93bikgeworICAgIGlmIChbbW91c2VEb3duRXZlbnQgdHlw
ZV0gIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSB7CiAgICAgICAgIHJldHVybiBOTzsKICAg
ICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBuZXh0RXZlbnQgPSBuaWw7
CiAgICAgZmlyc3RFdmVudCA9IG5pbDsKQEAgLTk1LDkgKzkzLDcgQEAgLSAoQk9PTClfd2ViX2Ry
YWdTaG91bGRCZWdpbkZyb21Nb3VzZURvd246KE5TRXZlbnQgKiltb3VzZURvd25FdmVudAogICAg
IG1vdXNlVXAgPSBuaWw7CiAgICAgZHJhZ0l0ID0gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICB3aGlsZSAoKG5leHRFdmVudCA9IFtbc2VsZiB3aW5kb3ddIG5l
eHRFdmVudE1hdGNoaW5nTWFzazooTlNMZWZ0TW91c2VVcE1hc2sgfCBOU0xlZnRNb3VzZURyYWdn
ZWRNYXNrKQorICAgIHdoaWxlICgobmV4dEV2ZW50ID0gW1tzZWxmIHdpbmRvd10gbmV4dEV2ZW50
TWF0Y2hpbmdNYXNrOihOU0V2ZW50TWFza0xlZnRNb3VzZVVwIHwgTlNFdmVudE1hc2tMZWZ0TW91
c2VEcmFnZ2VkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW50aWxEYXRlOmV4cGlyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluTW9kZTpOU0V2ZW50VHJhY2tpbmdSdW5Mb29wTW9k
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXF1ZXVlOllFU10pICE9IG5pbCkgewpAQCAtMTA1LDcgKzEwMSw3IEBAIC0gKEJPT0wpX3dlYl9k
cmFnU2hvdWxkQmVnaW5Gcm9tTW91c2VEb3duOihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAg
ICAgICAgICAgIGZpcnN0RXZlbnQgPSBuZXh0RXZlbnQ7CiAgICAgICAgIH0KIAotICAgICAgICBp
ZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZURyYWdnZWQpIHsKKyAgICAgICAgaWYg
KFtuZXh0RXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkKSB7CiAgICAg
ICAgICAgICBmbG9hdCBkZWx0YXggPSBBQlMoW25leHRFdmVudCBsb2NhdGlvbkluV2luZG93XS54
IC0gW21vdXNlRG93bkV2ZW50IGxvY2F0aW9uSW5XaW5kb3ddLngpOwogICAgICAgICAgICAgZmxv
YXQgZGVsdGF5ID0gQUJTKFtuZXh0RXZlbnQgbG9jYXRpb25JbldpbmRvd10ueSAtIFttb3VzZURv
d25FdmVudCBsb2NhdGlvbkluV2luZG93XS55KTsKICAgICAgICAgICAgIGRyYWdFdmVudCA9IG5l
eHRFdmVudDsKQEAgLTExOSwxMiArMTE1LDExIEBAIC0gKEJPT0wpX3dlYl9kcmFnU2hvdWxkQmVn
aW5Gcm9tTW91c2VEb3duOihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAgICAgICAgICAgICAg
ICBkcmFnSXQgPSBZRVM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0xlZnRNb3VzZVVwKSB7Cisg
ICAgICAgIH0gZWxzZSBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZVVwKSB7CiAgICAgICAgICAgICBtb3VzZVVwID0gbmV4dEV2ZW50OwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAg
ICAvLyBTaW5jZSB3ZSd2ZSBiZWVuIGRlcXVldWluZyB0aGUgZXZlbnRzIChJZiB3ZSBkb24ndCwg
d2UnbGwgbmV2ZXIgc2VlIHRoZSBtb3VzZSB1cC4uLiksCiAgICAgLy8gd2UgbmVlZCB0byBwdXNo
IHNvbWUgb2YgdGhlIGV2ZW50cyBiYWNrIG9uLiAgSXQgbWFrZXMgc2Vuc2UgdG8gcHV0IHRoZSBm
aXJzdCBhbmQgbGFzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYWQ1OTM2OTZkNGI5YTk3
NjZhM2NiY2UwM2VhZDZlYWZkMDc5NTc5Li4yYTQyYzczM2Q3ZGViN2JlYjA3MTQ1MDk2MGJkZWIx
MTVjN2VhODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtMjMwLDEwICsyMzAsNyBAQCB2
b2lkIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1f
cGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwog
ICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xk
ZXJXaW5kb3cgPSBhZG9wdE5TKFtbV2ViUGxhY2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5p
dFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRl
cmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNd
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93
ID0gYWRvcHROUyhbW1dlYlBsYWNlaG9sZGVyTW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAxLCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1h
c2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsK
IAogICAgIG1fYWN0aXZhdGlvbk9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVBY3Rp
dmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwIHF1ZXVlOm5pbAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVz
aW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUo
KTsgfV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlhZTdh
MTc3ZTQ1MTJmNDU2NDFkYWEyNDM3ZDRjOS4uMzZkYmJlYzYyNGVlYjA1NGYwNjJhMDI4NDEwMDI5
YmYwOGU0MjlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtNDY1LDE1ICs0
NjUsMTIgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnN5bnRoZXRpY0tleURv
d25XaXRoQ29tbWFuZE1vZGlmaWVyKGludCBrZXlDb2QKIHsKICAgICBOU0RhdGEgKmNoYXJhY3Rl
cnNEYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiZjaGFyYWN0ZXIgbGVuZ3RoOjFdOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgX1dLUEhQbHVnaW5JbnN0YW5j
ZUtleWJvYXJkRXZlbnQobV9wbHVnaW5Ib3N0UHJveHktPnBvcnQoKSwgbV9wbHVnaW5JRCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTlNEYXRlIHRpbWVJbnRlcnZhbFNp
bmNlUmVmZXJlbmNlRGF0ZV0sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5QQ29jb2FFdmVudEtleURvd24sIE5TQ29tbWFuZEtleU1hc2ssCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTlBDb2NvYUV2ZW50S2V5RG93biwgTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rf
Y2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRh
IGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3Ro
XSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIGtleUNvZGUs
IGNoYXJhY3Rlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHZvaWQgTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRz
Y2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJI
b3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggMzc2NjcyYjY4NjczN2M3NzNlZGM2ZGY2
ODRiMjg3OTgyOTY0ZjU0MS4uZjYxYjcyMzEwZDI0MDlkYTBiODMwMjU1Y2IwODQ2OWU5M2Y2ZGEy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVk
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNDQzLDEwICs0NDMsNyBAQCAt
ICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVjdAogewogICAgIGlmIChfY2FjaGVkU25hcHNob3Qp
IHsKICAgICAgICAgTlNSZWN0IHNvdXJjZVJlY3QgPSB7IE5TWmVyb1BvaW50LCBbX2NhY2hlZFNu
YXBzaG90LmdldCgpIHNpemVdIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgIFtfY2FjaGVkU25hcHNob3QuZ2V0KCkgZHJhd0luUmVjdDpbc2VsZiBib3VuZHNd
IGZyb21SZWN0OnNvdXJjZVJlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFj
dGlvbjoxXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW19jYWNoZWRT
bmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0OltzZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVj
dCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLm1t
CmluZGV4IGYyZDdlOWY0MWY2ZWJkNWI5Y2I4MzVlZDYyZGMxM2ExZmFhMmQ4N2EuLjY4NTY3YjMz
OTRkZDgxYWU5ZjUxOTc0MTg5OTRkYmQyOGYzZWIyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxl
ckNhcmJvbi5tbQpAQCAtNjIsMjIgKzYyLDIyIEBAIHN0YXRpYyBFdmVudE1vZGlmaWVycyBtb2Rp
ZmllcnNGb3JFdmVudChOU0V2ZW50ICpldmVudCkKICAgICAKICAgICBtb2RpZmllcnMgPSAwOwog
ICAgIAotICAgIGlmIChldmVudFR5cGUgIT0gTlNMZWZ0TW91c2VEb3duICYmIGV2ZW50VHlwZSAh
PSBOU1JpZ2h0TW91c2VEb3duKQorICAgIGlmIChldmVudFR5cGUgIT0gTlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duICYmIGV2ZW50VHlwZSAhPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duKQogICAg
ICAgICBtb2RpZmllcnMgfD0gYnRuU3RhdGU7CiAgICAgCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiBOU0NvbW1hbmRLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbW1hbmQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBjbWRLZXk7CiAgICAgCi0gICAg
aWYgKG1vZGlmaWVyRmxhZ3MgJiBOU1NoaWZ0S2V5TWFzaykKKyAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkKICAgICAgICAgbW9kaWZpZXJzIHw9IHNoaWZ0
S2V5OwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FscGhhU2hpZnRLZXlNYXNrKQorICAg
IGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrKQogICAgICAg
ICBtb2RpZmllcnMgfD0gYWxwaGFMb2NrOwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0Fs
dGVybmF0ZUtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJG
bGFnT3B0aW9uKQogICAgICAgICBtb2RpZmllcnMgfD0gb3B0aW9uS2V5OwogCi0gICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0NvbnRyb2xLZXlNYXNrIHx8IGV2ZW50VHlwZSA9PSBOU1JpZ2h0TW91
c2VEb3duKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRy
b2wgfHwgZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24pCiAgICAgICAgIG1v
ZGlmaWVycyB8PSBjb250cm9sS2V5OwogICAgIAogICAgIHJldHVybiBtb2RpZmllcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRI
YW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1
Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KaW5kZXggYTFkMTU5YWY5NGUxNDg5YTQ4YjA5OTIxMDhk
MDNmMzk4MDVmMjk5Ni4uZGUyMDE4OWEzN2RjMDkyODc4MmU4NjFiMmE2OWEwM2M3NjA4ZTE3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2
ZW50SGFuZGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0
c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5tbQpAQCAtMTYxLDEwICsxNjEsNyBAQCB2b2lk
IFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OnN5bnRoZXRpY0tleURvd25XaXRo
Q29tbWFuZE1vZGlmaWVyKGludAogICAgIAogICAgIE5QQ29jb2FFdmVudCBldmVudDsKICAgICBp
bml0aWFsaXplRXZlbnQoJmV2ZW50LCBOUENvY29hRXZlbnRLZXlEb3duKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBldmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdz
ID0gTlNDb21tYW5kS2V5TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBl
dmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdzID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7
CiAgICAgZXZlbnQuZGF0YS5rZXkua2V5Q29kZSA9IGtleUNvZGU7CiAgICAgZXZlbnQuZGF0YS5r
ZXkuaXNBUmVwZWF0ID0gZmFsc2U7CiAgICAgZXZlbnQuZGF0YS5rZXkuY2hhcmFjdGVycyA9IChO
UE5TU3RyaW5nICopY2hhcmFjdGVycy5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQppbmRleCBjNDY2NzBiNGQ3OWQ4Y2U4NGZiZDQx
MTU4ZmI3MzA4MGFlODA0NzliLi42MzBhZDg1ZjA2NDRhNDZjMWQxYTk3ZTdlODZhMThjNjVlY2Ix
NWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1l
bnVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51
TWFjLm1tCkBAIC05MCwxNyArOTAsMTEgQEAgdm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkK
ICAgICAgICAgfQogCiAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4g
cGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtbTlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdy
YXBoU3R5bGVdIG11dGFibGVDb3B5XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgICAgIFtwYXJhZ3JhcGhTdHlsZSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rp
b24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdubWVudCA6IE5TUmlnaHRUZXh0QWxpZ25tZW50XTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNl
dEFsaWdubWVudDptZW51VGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1RleHRBbGlnbm1lbnRMZWZ0
IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwogICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3Jp
dGluZ0RpcmVjdGlvbiA9IHN0eWxlLnRleHREaXJlY3Rpb24oKSA9PSBMVFIgPyBOU1dyaXRpbmdE
aXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAg
ICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246d3JpdGluZ0RpcmVj
dGlvbl07CiAgICAgICAgIGlmIChzdHlsZS5oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgUmV0YWluUHRy
PE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9uVmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxs
b2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5nRGlyZWN0aW9uICsgTlNUZXh0V3JpdGluZ0RpcmVj
dGlvbk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAg
ICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tO
U051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1dyaXRp
bmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IHdy
aXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0TlMoW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9i
amVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVlLmdldCgpLCBuaWxdKTsKICAgICAgICAgICAgIFth
dHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5nRGlyZWN0aW9uQXJyYXkuZ2V0KCkgZm9yS2V5Ok5T
V3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5hbWVdOwogICAgICAgICB9CkBAIC0yMDYsMTggKzIw
MCwxNSBAQCB2b2lkIFBvcHVwTWVudU1hYzo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZp
ZXcqIHYsIGludCBpbmRleCkKIAogICAgIE5TQ29udHJvbFNpemUgY29udHJvbFNpemU7CiAgICAg
c3dpdGNoIChtX2NsaWVudC0+bWVudVN0eWxlKCkubWVudVNpemUoKSkgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVu
dVNpemVOb3JtYWw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNSZWd1bGFyQ29udHJvbFNpemU7
CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVTbWFsbDoKLSAgICAg
ICAgY29udHJvbFNpemUgPSBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXpl
ID0gTlNDb250cm9sU2l6ZVNtYWxsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvcHVwTWVu
dVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaToKLSAgICAgICAgY29udHJvbFNpemUgPSBOU01pbmlD
b250cm9sU2l6ZTsKKyAgICAgICAgY29udHJvbFNpemUgPSBOU0NvbnRyb2xTaXplTWluaTsKICAg
ICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAgICAg
V0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24sIHJvdW5kZihOU1dpZHRoKHIpKSwgZHVtbXlWaWV3
LmdldCgpLCBpbmRleCwgdG9OU0ZvbnQoZm9udCksIGNvbnRyb2xTaXplLCAhbV9jbGllbnQtPm1l
bnVTdHlsZSgpLmhhc0RlZmF1bHRBcHBlYXJhbmNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQppbmRleCA5
MTRkOGUwNjNlOGViMGZjYTllYWU5ZDdiYmJjODFmNjFiN2I4OGQ2Li4yNGU4MDQxMDMxNzIwNzVl
MWM2NmE5OTljNDQ2NjM4MTk0YjdhMzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbQpAQCAtMjY5LDEwICsy
NjksNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50OjpzaG93Q29udGV4dE1lbnUoKQogCiAg
ICAgTlNWaWV3KiB2aWV3ID0gZnJhbWVWaWV3LT5kb2N1bWVudFZpZXcoKTsKICAgICBJbnRQb2lu
dCBwb2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1dpbmRvdyhwYWdlLT5jb250ZXh0TWVudUNv
bnRyb2xsZXIoKS5oaXRUZXN0UmVzdWx0KCkucm91bmRlZFBvaW50SW5Jbm5lck5vZGVGcmFtZSgp
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU1JpZ2h0TW91c2VEb3duIGxvY2F0aW9u
OnBvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W1t2aWV3IHdp
bmRvd10gd2luZG93TnVtYmVyXSBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEg
cHJlc3N1cmU6MV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCog
ZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNl
RG93biBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVt
YmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051bWJlcl0gY29udGV4dDowIGV2ZW50TnVtYmVyOjAg
Y2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwogCiAgICAgLy8gU2hvdyB0aGUgY29udGV4dHVhbCBt
ZW51IGZvciB0aGlzIGV2ZW50LgogICAgIGJvb2wgaXNTZXJ2aWNlc01lbnU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCmluZGV4IDExNDc2YTAzMjc2ZWRkOTRlNzU1NTEzOTMwYWI0NjE5YmNlZGY5NTMuLmYwYjMx
MmZiZDMwYzFmMjcxYjkwM2Q3MDQzNzc1MmIzMGY1M2IzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBA
IC0xNTYxLDE3ICsxNTYxLDE0IEBAIE5TRGljdGlvbmFyeSAqV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmFjdGlvbkRpY3Rpb25hcnkoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0CiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICBjb25zdCBVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0g
ZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0X2Nhc3Q8RXZlbnQqPihldmVudCkpOwogICAgIGlm
IChrZXlTdGF0ZUV2ZW50ICYmIGtleVN0YXRlRXZlbnQtPmlzVHJ1c3RlZCgpKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5j
dHJsS2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29udHJvbEtleU1hc2s7
CisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9s
OwogICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+YWx0S2V5KCkpCi0gICAgICAgICAgICBtb2Rp
ZmllckZsYWdzIHw9IE5TQWx0ZXJuYXRlS2V5TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAgICAgICAgaWYgKGtleVN0YXRlRXZl
bnQtPnNoaWZ0S2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlN
YXNrOworICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hp
ZnQ7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5tZXRhS2V5KCkpCi0gICAgICAgICAgICBt
b2RpZmllckZsYWdzIHw9IE5TQ29tbWFuZEtleU1hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdD
b21tYW5kOwogICAgIH0KICNlbHNlCiAgICAgLy8gTm8gbW9kaWZpZXIgZmxhZ3Mgb24gaU9TIHJp
Z2h0IG5vdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDkwNzg3ZDYyMGIzODFlNTM4YzdiMWFkZGM3NmYyZDI5
YzU5MzIyMDkuLmIzY2I2YjlhNzc0NTBiMjFmYzljN2U2ZGFiZjQyZGNjOTFmOTY0MWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQubW0KQEAgLTE5MSwxMCArMTkxLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudDo6YXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2YWlsYWJsZSkKIAogYm9vbCBX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKCkKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW1ttX2Zyb250ZW5kV2luZG93Q29udHJvbGxl
ciB3aW5kb3ddIHN0eWxlTWFza10gJiBOU0Z1bGxTY3JlZW5XaW5kb3dNYXNrKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbW21fZnJvbnRlbmRXaW5kb3dDb250cm9sbGVy
IHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TV2luZG93U3R5bGVNYXNrRnVsbFNjcmVlbikKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIGNhbkF0dGFjaFdpbmRvdygpOwpAQCAtNDY1
LDEwICs0NjIsNyBAQCAtIChOU1dpbmRvdyAqKXdpbmRvdwogICAgIGlmICh3aW5kb3cpCiAgICAg
ICAgIHJldHVybiB3aW5kb3c7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBOU1VJbnRlZ2VyIHN0eWxlTWFzayA9IE5TVGl0bGVkV2luZG93TWFzayB8IE5TQ2xvc2Fi
bGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdp
bmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNXaW5kb3dTdHls
ZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHlsZU1h
c2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5kb3dT
dHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogICAgIHdpbmRvdyA9IFtbTlNXaW5kb3cgYWxs
b2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBpbml0aWFsV2luZG93V2lk
dGgsIGluaXRpYWxXaW5kb3dIZWlnaHQpIHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbd2luZG93IHNldERlbGVnYXRlOnNl
bGZdOwogICAgIFt3aW5kb3cgc2V0TWluU2l6ZTpOU01ha2VTaXplKG1pbmltdW1XaW5kb3dXaWR0
aCwgbWluaW11bVdpbmRvd0hlaWdodCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJ
bnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQppbmRleCAwMmE3NTZmNzY3NzMxNWM2MjJkZDgx
ZDk5YTI5ZmFjM2ZiNWJmOWUyLi42MWM2YWViODZiZDhkOWU0MThmMDMyNGJmYTY2ZGQxM2Y5N2Fk
NzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhp
Z2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhp
Z2hsaWdodC5tbQpAQCAtOTEsMTAgKzkxLDcgQEAgLSAoaWQpaW5pdFdpdGhUYXJnZXRWaWV3OihO
U1ZpZXcgKil0YXJnZXRWaWV3IGluc3BlY3RvckNvbnRyb2xsZXI6KEluc3BlY3RvckNvbnQKICAg
ICBfaW5zcGVjdG9yQ29udHJvbGxlciA9IGluc3BlY3RvckNvbnRyb2xsZXI7CiAKICNpZiAhUExB
VEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGludCBz
dHlsZU1hc2sgPSBOU0JvcmRlcmxlc3NXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIGludCBzdHlsZU1hc2sgPSBOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3M7
CiAgICAgTlNSZWN0IGNvbnRlbnRSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVS
ZWN0OltzZWxmIF9jb21wdXRlSGlnaGxpZ2h0V2luZG93RnJhbWVdIHN0eWxlTWFzazpzdHlsZU1h
c2tdOwogICAgIF9oaWdobGlnaHRXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENv
bnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbX2hpZ2hsaWdodFdpbmRvdyBzZXRCYWNr
Z3JvdW5kQ29sb3I6W05TQ29sb3IgY2xlYXJDb2xvcl1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0UHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXRQcmVmaXgu
aAppbmRleCA2NmE1ZmNmZDk3YWYwZWE0NmM0YmI1N2Q2YTc0NmM4MDVmYzBjN2MzLi4wZWRkODJk
MmJjNTlmZThkNDVjZGE4YTQ0OGNmZDM4ZGU3YWFkMDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJLaXRQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXRQcmVm
aXguaApAQCAtNzcsNiArNzcsNyBAQCB0eXBlZGVmIGZsb2F0IENHRmxvYXQ7CiAjaWZkZWYgX19P
QkpDX18KICNpZiAhVEFSR0VUX09TX0lQSE9ORQogI2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2Vsc2UK
ICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCmluZGV4IDVlYzE5Nzg1ZGE3Mjk3YjFhMjQ0YzU3
NjMyMDcwYzRiZGU5NDZiMDUuLmQ3MjBjN2EwZjVkMWI1NDg4NDhkMTQyZmEwNzFiNDdlYjU3OTQ5
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC05MTUs
OSArOTE1LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgQk9PTCBj
YWxsU3VwZXIgPSBZRVM7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVd
OwogICAgIEJPT0wgbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0ID0gY29yZUZyYW1lICYmIHN0YXRp
Y19jYXN0PEJhY2tGb3J3YXJkTGlzdCo+KGNvcmVGcmFtZS0+cGFnZSgpLT5iYWNrRm9yd2FyZCgp
LmNsaWVudCgpKS0+ZW5hYmxlZCgpID8gWUVTIDogTk87Ci0gICAgCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisKICAgICBjb3VudCA9IFtjaGFyYWN0ZXJzIGxlbmd0aF07CiAg
ICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgc3dp
dGNoIChbY2hhcmFjdGVycyBjaGFyYWN0ZXJBdEluZGV4OmluZGV4XSkgewpAQCAtOTI4LDcgKzky
Niw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAvLyBUaGlzIG9kZCBiZWhhdmlvciBtYXRjaGVzIHNvbWUgZXhp
c3RpbmcgYnJvd3NlcnMsCiAgICAgICAgICAgICAgICAgLy8gaW5jbHVkaW5nIFdpbmRvd3MgSUUK
LSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hp
ZnQpIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX2dvRm9yd2FyZF07CiAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgX2dvQmFja107CkBAIC05
NDMsNyArOTQxLDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAg
ICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYg
TlNTaGlmdEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3Jv
bGxQYWdlVXA6bmlsXTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICBbc2VsZiBzY3JvbGxQYWdlRG93bjpuaWxdOwpAQCAtOTg0LDcgKzk4Miw3IEBAIC0gKHZv
aWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBOU1VwQXJyb3dGdW5jdGlvbktleToKICAgICAgICAgICAgICAgICAvLyBX
ZSBkb24ndCBoYW5kbGUgc2hpZnRlZCBvciBjb250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0
IHN1cGVyIGhhdmUgYSBjaGFuY2UuCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiAoTlNTaGlmdEtleU1hc2sgfCBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAg
IGlmIChtb2RpZmllckZsYWdzICYgKE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRN
b2RpZmllckZsYWdDb250cm9sKSkgewogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZ
RVM7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTk5
OCw5ICs5OTYsOSBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAg
ICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAg
ICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewog
ICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQ6bmls
XTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0
ZUtleU1hc2spIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNj
cm9sbFBhZ2VVcDpuaWxdOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgICAgIFtzZWxmIHNjcm9sbExpbmVVcDpuaWxdOwpAQCAtMTAwOSw3ICsxMDA3LDcgQEAgLSAo
dm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIE5TRG93bkFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAg
Ly8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNv
IGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZs
YWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAg
ICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVy
ID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBA
IC0xMDIzLDkgKzEwMjEsOSBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAg
ICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFu
ZCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxUb0VuZE9mRG9jdW1lbnQ6bmls
XTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0
ZUtleU1hc2spIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNj
cm9sbFBhZ2VEb3duOm5pbF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgW3NlbGYgc2Nyb2xsTGluZURvd246bmlsXTsKQEAgLTEwMzQsMTIgKzEwMzIsMTIg
QEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlIE5TTGVmdEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAg
ICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhl
cmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAg
ICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQg
fCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2Fs
bFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgYmFjay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4K
LSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsK
KyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdD
b21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbWFpbnRhaW5zQmFja0ZvcndhcmRM
aXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEwNTIsNyArMTA1MCw3IEBAIC0gKHZvaWQpa2V5
RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJG
bGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9k
aWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIFtzZWxmIF9wYWdlSG9yaXpvbnRhbGx5OllFU107CiAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBfc2Nyb2xsTGluZUhv
cml6b250YWxseTpZRVNdOwpAQCAtMTA2MiwxMiArMTA2MCwxMiBAQCAtICh2b2lkKWtleURvd246
KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgTlNSaWdodEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3Qg
aGFuZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBo
YXZlIGEgY2hhbmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hp
ZnRLZXlNYXNrIHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9k
aWZpZXJGbGFncyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29udHJvbCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgLy8gQ2hlY2sgYmFjay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGlmICghbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTEwODAsNyArMTA3OCw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKill
dmVudAogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRl
S2V5TWFzaykgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZl
bnRNb2RpZmllckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9w
YWdlSG9yaXpvbnRhbGx5Ok5PXTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIFtzZWxmIF9zY3JvbGxMaW5lSG9yaXpvbnRhbGx5Ok5PXTsKQEAg
LTEwOTAsNyArMTA4OCw2IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgIGlmIChjYWxsU3VwZXIpIHsKICAgICAgICAgW3N1cGVyIGtleURvd246
ZXZlbnRdOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQppbmRleCA5ZmQ5NTY2MTdmMDdjNmNmNmY0ODU3
Y2M5ZTIyMTQwYjIxODhiMmU0Li43NzQ1OWIzZWUyMDgxMzU5ZDU2NGYzODEyNjBiNDcxMDUxZDBk
MWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5D
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVl
bkNvbnRyb2xsZXIubW0KQEAgLTg2LDExICs4Niw4IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJGdWxs
U2NyZWVuQ29udHJvbGxlcgogI3ByYWdtYSBtYXJrIEluaXRpYWxpemF0aW9uCiAtIChpZClpbml0
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgLy8gRG8gbm90IGRl
ZmVyIHdpbmRvdyBjcmVhdGlvbiwgdG8gbWFrZSBzdXJlIC13aW5kb3dOdW1iZXIgaXMgY3JlYXRl
ZCAobmVlZGVkIGJ5IFdlYldpbmRvd1NjYWxlQW5pbWF0aW9uKS4KLSAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpOU1plcm9SZWN0IHN0eWxlTWFzazpOU0Nsb3NhYmxlV2luZG93TWFzayBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9j
XSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVN
YXNrQ2xvc2FibGUgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAgICAgW3dpbmRvdyByZWxl
YXNlXTsKICAgICBpZiAoIXNlbGYpCkBAIC00NjIsMTAgKzQ1OSw3IEBAIC0gKHZvaWQpX3N3YXBW
aWV3OihOU1ZpZXcqKXZpZXcgd2l0aDooTlNWaWV3KilvdGhlclZpZXcKIAogc3RhdGljIFJldGFp
blB0cjxOU1dpbmRvdz4gY3JlYXRlQmFja2dyb3VuZEZ1bGxzY3JlZW5XaW5kb3coTlNSZWN0IGZy
YW1lKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93
ICp3aW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0
eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZm
ZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNXaW5k
b3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6ZnJhbWUg
c3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0
b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0T3BhcXVlOllFU107CiAgICAg
W3dpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgYmxhY2tDb2xvcl1dOwogICAgIFt3
aW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDU1ZjFhZTJkNDU4ZjU2MTM5NWZjMzI2YWFjYmM2MGY0ZGIz
MjEzYzQuLmU0MjMwMTgyODMzYWZlN2U0NDU5ODY1NGNjMzFlYzIzZDAxZTZiYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTQwLDEyICsxNDAsMTIgQEAK
ICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiAhUExBVEZPUk0oSU9TKQorI2ltcG9ydCAi
V2ViTlNFdmVudEV4dHJhcy5oIgorI2ltcG9ydCAiV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmgiCiAj
aW1wb3J0IDxBcHBLaXQvTlNBY2Nlc3NpYmlsaXR5Lmg+CiAjaW1wb3J0IDxBcHBsaWNhdGlvblNl
cnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNNZW51U1BJ
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+Ci0jaW1wb3J0
ICJXZWJOU0V2ZW50RXh0cmFzLmgiCi0jaW1wb3J0ICJXZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaCIK
ICNlbmRpZgogCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KQEAgLTEzNTEsMTIg
KzEzNTEsOSBAQCAtICh2b2lkKV9wYXN0ZUFzUGxhaW5UZXh0V2l0aFBhc3RlYm9hcmQ6KE5TUGFz
dGVib2FyZCAqKXBhc3RlYm9hcmQKIAogLSAodm9pZClfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRG
b3JGbGFnc0NoYW5nZWRFdmVudDooTlNFdmVudCAqKWZsYWdzQ2hhbmdlZEV2ZW50CiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0No
YW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCisgICAg
TlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2Nh
dGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFu
Z2VkRXZlbnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0
YW1wIHdpbmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKICAgICAgICAg
Y29udGV4dDpudWxscHRyIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtzZWxmIG1vdXNlTW92ZWQ6ZmFrZUV2
ZW50XTsKIH0KIApAQCAtMTUwNiwxMCArMTUwMyw3IEBAIC0gKHZvaWQpX3NldE1vdXNlRG93bkV2
ZW50OihXZWJFdmVudCAqKWV2ZW50CiAjZW5kaWYKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2
ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1v
dXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNPdGhlck1vdXNlRG93bik7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQVNTRVJUKCFldmVudCB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVJp
Z2h0TW91c2VEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3du
KTsKICNlbHNlCiAgICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09IFdlYkV2ZW50TW91
c2VEb3duKTsKICNlbmRpZgpAQCAtMTY2MSwxNiArMTY1NSwxNyBAQCAtIChpZClfYnJpZGdlCiAK
IC0gKHZvaWQpX3VwZGF0ZU1vdXNlb3ZlcldpdGhGYWtlRXZlbnQKIHsKKyAgICBOU0V2ZW50ICpm
YWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1v
dmVkCisgICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAotICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93
XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICBj
b252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2
ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2
YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93
XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0cgogICAgICAgICBldmVudE51
bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKIAogICAgIFtzZWxmIF91cGRhdGVNb3VzZW92ZXJXaXRoRXZlbnQ6ZmFrZUV2ZW50XTsK
IH0KQEAgLTE4NjgsMTEgKzE4NjMsOCBAQCAtIChCT09MKV9pbnNpZGVBbm90aGVySFRNTFZpZXcK
ICNpZiAhUExBVEZPUk0oSU9TKQogc3RhdGljIEJPT0wgaXNRdWlja0xvb2tFdmVudChOU0V2ZW50
ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjb25z
dCBpbnQga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9uUmVsZWFzZWQgPSA5
OwotICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNTeXN0ZW1EZWZpbmVkICYmIFtldmVudCBz
dWJ0eXBlXSA9PSBrQ0dTRXZlbnRTeXN0ZW1TdWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxlYXNl
ZCAmJiBbZXZlbnQgZGF0YTFdID09ICdsa3VwJzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlU3lzdGVtRGVmaW5lZCAm
JiBbZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0
aW9uUmVsZWFzZWQgJiYgW2V2ZW50IGRhdGExXSA9PSAnbGt1cCc7CiB9CiAjZW5kaWYKIApAQCAt
MTkyOCwxNCArMTkyMCwxMSBAQCAtIChOU1ZpZXcgKiloaXRUZXN0OihOU1BvaW50KXBvaW50CiAg
ICAgZWxzZSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaHkgZG9lc24ndCB0aGlzIGluY2x1ZGUgbW91
c2UgZW50ZXJlZC9leGl0ZWQgZXZlbnRzLCBvciBvdGhlciBtb3VzZSBidXR0b24gZXZlbnRzPwog
ICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtbc2VsZiB3aW5kb3ddIGN1cnJlbnRFdmVudF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhcHR1cmVIaXRzT25T
dWJ2aWV3cyA9ICEoW2V2ZW50IHR5cGVdID09IE5TTW91c2VNb3ZlZAotICAgICAgICAgICAgfHwg
W2V2ZW50IHR5cGVdID09IE5TUmlnaHRNb3VzZURvd24KLSAgICAgICAgICAgIHx8IChbZXZlbnQg
dHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Nv
bnRyb2xLZXlNYXNrKSAhPSAwKQotICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRmxh
Z3NDaGFuZ2VkCisgICAgICAgIGNhcHR1cmVIaXRzT25TdWJ2aWV3cyA9ICEoW2V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24KKyAgICAgICAgICAgIHx8IChbZXZlbnQgdHlwZV0g
PT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duICYmIFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5T
RXZlbnRNb2RpZmllckZsYWdDb250cm9sKQorICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09
IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkCiAgICAgICAgICAgICB8fCBpc1F1aWNrTG9va0V2ZW50
KGV2ZW50KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAgICAgaWYg
KCFjYXB0dXJlSGl0c09uU3Vidmlld3MpIHsKQEAgLTIwMjMsOSArMjAxMiw3IEBAIC0gKHZvaWQp
X3JlbW92ZVRyYWNraW5nUmVjdHM6KE5TVHJhY2tpbmdSZWN0VGFnICopdGFncyBjb3VudDooaW50
KWNvdW50CiAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRXhpdGVkCiB7CiAgICAgLy8gTm90aGlu
ZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50
ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRXhpdGVkCisgICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZU1vdXNlRXhpdGVkCiAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAg
ICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICB0aW1lc3RhbXA6MApAQCAtMjAzNCwxNiArMjAy
MSwxMyBAQCAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRXhpdGVkCiAgICAgICAgIGV2ZW50TnVt
YmVyOjAKICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAg
dXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKICAgICBbX3ByaXZhdGUtPnRyYWNraW5nUmVjdE93bmVyIG1vdXNlRXhp
dGVkOmZha2VFdmVudF07CiB9CiAKIC0gKHZvaWQpX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkCiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgLy8gTm90aGluZyBtYXR0
ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0gICAgTlNF
dmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNl
RW50ZXJlZAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUVudGVyZWQKICAgICAgICAgbG9jYXRpb246TlNNYWtl
UG9pbnQoMCwgMCkKICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgIHRpbWVzdGFtcDow
CkBAIC0yMDUzLDcgKzIwMzcsNiBAQCAtICh2b2lkKV9zZW5kVG9vbFRpcE1vdXNlRW50ZXJlZAog
ICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lOR19SRUNUX1RBRwogICAgICAgICB1c2VyRGF0
YTpfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0VXNlckRhdGFdOwogICAgIFtfcHJpdmF0ZS0+dHJhY2tp
bmdSZWN0T3duZXIgbW91c2VFbnRlcmVkOmZha2VFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIApAQCAtMjA4OSwyMSArMjA3
MiwxOCBAQCAtIChOU1N0cmluZyAqKXZpZXc6KE5TVmlldyAqKXZpZXcgc3RyaW5nRm9yVG9vbFRp
cDooTlNUb29sVGlwVGFnKXRhZyBwb2ludDooTlNQbwogc3RhdGljIGJvb2wgbW91c2VFdmVudElz
UGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQg
dHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2Fz
ZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAg
Y2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoK
LSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VE
cmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNP
dGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogfQogCkBAIC0yMTM0LDE2ICsyMTE0
LDE0IEBAIC0gKHZvaWQpX3VwZGF0ZU1vdXNlb3ZlcldpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50
CiAgICAgICAgIGZsb2F0IHlTY3JvbGwgPSB2aXNpYmxlUmVjdC5vcmlnaW4ueTsKICAgICAgICAg
ZmxvYXQgeFNjcm9sbCA9IHZpc2libGVSZWN0Lm9yaWdpbi54OwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAorICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKICAgICAgICAg
ICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KC0xIC0geFNjcm9sbCwgLTEgLSB5U2Nyb2xsKQogICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFn
c10KICAgICAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJl
bmNlRGF0ZV0KICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbW3ZpZXcgd2luZG93XSB3aW5kb3dO
dW1iZXJdCiAgICAgICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAgICAgIGV2ZW50TnVt
YmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorCiAgICAgICAgIGlmIChGcmFtZSogbGFzdEhpdENvcmVGcmFtZSA9IGNvcmUoW2xhc3RI
aXRWaWV3IF9mcmFtZV0pKQogICAgICAgICAgICAgbGFzdEhpdENvcmVGcmFtZS0+ZXZlbnRIYW5k
bGVyKCkubW91c2VNb3ZlZChldmVudCwgW1tzZWxmIF93ZWJWaWV3XSBfcHJlc3N1cmVFdmVudF0p
OwogICAgIH0KQEAgLTIzMzAsMTYgKzIzMDgsMTggQEAgLSAodm9pZClfYXV0b3Njcm9sbAogICAg
IH0KIAogI2lmICFQTEFURk9STShJT1MpCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZAorICAgICAg
ICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU0xlZnRNb3VzZURyYWdnZWQKLSAgICAgICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10gY29u
dmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAgICAgICAgY29udmVy
dFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0g
bW9kaWZpZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2lu
Y2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dOdW1iZXI6W1tzZWxmIHdpbmRvd10gd2lu
ZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0Om51bGxwdHIKICAgICAgICAgZXZlbnROdW1iZXI6
MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisKICAgICBbc2VsZiBtb3VzZURyYWdnZWQ6ZmFrZUV2ZW50XTsKICNlbmRpZgogfQpAQCAtMzM1
NCwxMiArMzMzNCw5IEBAIC0gKEJPT0wpYWNjZXB0c0ZpcnN0UmVzcG9uZGVyCiAgICAgLy8gb3Ig
ZnJvbSBjYWxscyBiYWNrIGZyb20gV2ViQ29yZSBvbmNlIHdlIGJlZ2luIG1vdXNlLWRvd24gZXZl
bnQgaGFuZGxpbmcuCiAjaWYgIVBMQVRGT1JNKElPUykgICAgICAgICAgICAKICAgICBOU0V2ZW50
ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duCisgICAg
aWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24KICAgICAgICAgICAg
ICYmICFfcHJpdmF0ZS0+aGFuZGxpbmdNb3VzZURvd25FdmVudAogICAgICAgICAgICAgJiYgTlNQ
b2ludEluUmVjdChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10sIFtzZWxmIGNvbnZlcnRSZWN0Oltz
ZWxmIHZpc2libGVSZWN0XSB0b1ZpZXc6bmlsXSkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKICAgICAgICAgcmV0dXJuIE5POwogICAgIH0KICNlbHNlCkBAIC0zNTI4LDEzICszNTA1
LDEwIEBAIC0gKHZvaWQpdmlld0RpZE1vdmVUb1dpbmRvdwogCiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICAgICAgaWYgKCFfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBfcHJpdmF0ZS0+Zmxh
Z3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRz
TWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2VkTWFzayBoYW5kbGVyOl4oTlNFdmVudCAqZmxhZ3ND
aGFuZ2VkRXZlbnQpIHsKKyAgICAgICAgICAgIF9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1v
bml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNF
dmVudE1hc2tGbGFnc0NoYW5nZWQgaGFuZGxlcjpeKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50
KSB7CiAgICAgICAgICAgICAgICAgW3NlbGYgX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxh
Z3NDaGFuZ2VkRXZlbnQ6ZmxhZ3NDaGFuZ2VkRXZlbnRdOwogICAgICAgICAgICAgICAgIHJldHVy
biBmbGFnc0NoYW5nZWRFdmVudDsKICAgICAgICAgICAgIH1dOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgW05TRXZlbnQgcmVt
b3ZlTW9uaXRvcjpfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yXTsKQEAgLTQ1NDAs
MTEgKzQ1MTQsMTIgQEAgLSAodm9pZCltb3VzZURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICBO
U0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJy
ZW50SW5wdXRNYW5hZ2VyXTsKIAogICAgIGlmICghW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNU
b0hhbmRsZU1vdXNlRXZlbnRzXSB8fCAhW2N1cnJlbnRJbnB1dE1hbmFnZXIgaGFuZGxlTW91c2VF
dmVudDpldmVudF0pIHsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW19w
cml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBlbmRSZXZlcnRpbmdDaGFuZ2U6Tk8gbW92ZUxl
ZnQ6Tk9dOwogCiAgICAgICAgIC8vIElmIHRoZSB3ZWIgcGFnZSBoYW5kbGVzIHRoZSBjb250ZXh0
IG1lbnUgZXZlbnQgYW5kIG1lbnVGb3JFdmVudDogcmV0dXJucyBuaWwsIHdlJ2xsIGdldCBjb250
cm9sIGNsaWNrIGV2ZW50cyBoZXJlLgogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHBhc3Mg
dGhlbSBhbG9uZyB0byBLSFRNTCBhIHNlY29uZCB0aW1lLgotICAgICAgICBpZiAoIShbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSkgeworICAgICAgICBpZiAoIShbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAg
ICAgICAgIF9wcml2YXRlLT5pZ25vcmluZ01vdXNlRHJhZ2dlZEV2ZW50cyA9IE5POwogCiAgICAg
ICAgICAgICAvLyBMZXQgV2ViQ29yZSBnZXQgYSBjaGFuY2UgdG8gZGVhbCB3aXRoIHRoZSBldmVu
dC4gVGhpcyB3aWxsIGNhbGwgYmFjayB0byB1cwpAQCAtNDU1Myw3ICs0NTI4LDYgQEAgLSAodm9p
ZCltb3VzZURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICBjb3JlZnJhbWUt
PmV2ZW50SGFuZGxlcigpLm1vdXNlRG93bihldmVudCwgW1tzZWxmIF93ZWJWaWV3XSBfcHJlc3N1
cmVFdmVudF0pOwogICAgICAgICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogI2VuZGlmCiAKICAgICBfcHJpdmF0ZS0+aGFuZGxpbmdNb3VzZURvd25FdmVudCA9IE5POwpA
QCAtNDY0Miw3ICs0NjE2LDcgQEAgLSAodm9pZClkcmFnZ2VkSW1hZ2U6KE5TSW1hZ2UgKilhbklt
YWdlIGVuZGVkQXQ6KE5TUG9pbnQpYVBvaW50IG9wZXJhdGlvbjooTlNEcmEKICAgICAKICAgICAv
LyBPbmNlIHRoZSBkcmFnZ2luZyBtYWNoaW5lcnkga2lja3MgaW4sIHdlIG5vIGxvbmdlciBnZXQg
bW91c2UgZHJhZ3Mgb3IgdGhlIHVwIGV2ZW50LgogICAgIC8vIFdlYkNvcmUgZXhwZWN0cyB0byBn
ZXQgYmFsYW5jZWQgZG93bi91cCdzLCBzbyB3ZSBtdXN0IGZha2UgdXAgYSBtb3VzZXVwLgotICAg
IE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRN
b3VzZVVwCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbG9jYXRpb246d2luZG93TW91c2VMb2MKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRd
IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQpAQCAt
NDgxOCwxOSArNDc5MiwxMiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJy
ZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgY2FzZSBOU0tleURvd246IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKLQorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7CiAgICAgICAgIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudCBwbGF0Zm9ybUV2ZW50ID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBs
YXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCk7CiAgICAgICAgIHBsYXRmb3JtRXZlbnQuZGlzYW1i
aWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwogICAgICAgICBy
ZXR1cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBsYXRmb3JtRXZlbnQsIGNvcmVGcmFtZS0+ZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlVcDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6CiAgICAgICAgIHJldHVybiBLZXlib2FyZEV2
ZW50OjpjcmVhdGUoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRF
dmVudChldmVudCksIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIDA7CkBAIC01NTI0LDExICs1NDkxLDggQEAgLSAoQk9P
TClfaGFuZGxlU3R5bGVLZXlFcXVpdmFsZW50OihOU0V2ZW50ICopZXZlbnQKICAgICBpZiAoIVtz
ZWxmIF9jYW5FZGl0XSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICgoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNE
ZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrKSAhPSBOU0NvbW1hbmRLZXlNYXNrKQor
ICAgIGlmICgoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Rldmlj
ZUluZGVwZW5kZW50RmxhZ3NNYXNrKSAhPSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkKICAg
ICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgTlNT
dHJpbmcgKnN0cmluZyA9IFtldmVudCBjaGFyYWN0ZXJzXTsKICAgICBpZiAoW3N0cmluZyBjYXNl
SW5zZW5zaXRpdmVDb21wYXJlOkAiYiJdID09IE5TT3JkZXJlZFNhbWUpIHsKQEAgLTY0NDgsMTQg
KzY0MTIsMTEgQEAgLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KEtleWJvYXJkRXZlbnQqKWV2
ZW50IHNhdmluZ0NvbW1hbmRzOihCT09MKXNhdmluZ0NvbW0KICAgICAgICAgcmV0dXJuIE5POwog
CiAgICAgTlNFdmVudCAqbWFjRXZlbnQgPSBwbGF0Zm9ybUV2ZW50LT5tYWNFdmVudCgpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbbWFjRXZlbnQgdHlwZV0g
PT0gTlNLZXlEb3duICYmIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZmlsdGVyS2V5
RG93bjptYWNFdmVudF0pCisgICAgaWYgKFttYWNFdmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtl
eURvd24gJiYgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciBmaWx0ZXJLZXlEb3duOm1h
Y0V2ZW50XSkKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICAKLSAgICBpZiAoW21hY0V2ZW50IHR5
cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQorICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVGbGFnc0NoYW5nZWQpCiAgICAgICAgIHJldHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKICAgICAKICAgICBwYXJhbWV0ZXJzLmV2ZW50ID0gZXZlbnQ7CiAgICAgX3By
aXZhdGUtPmludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgPSAmcGFyYW1ldGVyczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCA3OGY1NmU0OTFlMDg2YWFlOTgz
YjM4MDY5OWE1NTE1N2NkOThmZGJhLi5hNzMzMGUxODAwOTZiZDcyNWViNmExY2EyZTkyOTA2ZTNj
MWE2ZDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCkBAIC0zMjEs
MTAgKzMyMSw3IEBAIC0gKE5TVmlldyAqKWhpdFRlc3Q6KE5TUG9pbnQpcG9pbnQKICAgICAvLyBP
dmVycmlkZSBoaXRUZXN0IHNvIHdlIGNhbiBvdmVycmlkZSBtZW51Rm9yRXZlbnQuCiAgICAgTlNF
dmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKICAgICBOU0V2ZW50VHlwZSB0eXBl
ID0gW2V2ZW50IHR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IGlmICh0eXBlID09IE5TUmlnaHRNb3VzZURvd24gfHwgKHR5cGUgPT0gTlNMZWZ0TW91c2VEb3du
ICYmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSkpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKHR5cGUgPT0gTlNFdmVudFR5cGVSaWdodE1v
dXNlRG93biB8fCAodHlwZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gJiYgKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkpCiAgICAgICAgIHJl
dHVybiBzZWxmOwogCiAgICAgcmV0dXJuIFtzdXBlciBoaXRUZXN0OnBvaW50XTsKQEAgLTEwMDks
MzkgKzEwMDYsMzMgQEAgLSAodm9pZClQREZWaWV3V2lsbENsaWNrT25MaW5rOihQREZWaWV3ICop
c2VuZGVyIHdpdGhVUkw6KE5TVVJMICopVVJMCiAgICAgaW50IGJ1dHRvbiA9IG5vQnV0dG9uOwog
ICAgIFJlZlB0cjxFdmVudD4gZXZlbnQ7CiAgICAgc3dpdGNoIChbbnNFdmVudCB0eXBlXSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1v
dXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSAwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSAxOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgICAgICBi
dXR0b24gPSBbbnNFdmVudCBidXR0b25OdW1iZXJdOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgTlNLZXlEb3duOiB7Ci0gICAgICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQg
cGUgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KG5z
RXZlbnQpOwotICAgICAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3Jt
RXZlbnQ6OlJhd0tleURvd24pOwotICAgICAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50Ojpj
cmVhdGUocGUsIDApOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICAgICAg
YnV0dG9uID0gMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VVcDoKKyAgICAgICAgYnV0dG9uID0gW25zRXZlbnQgYnV0dG9uTnVtYmVyXTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKKyAgICAgICAgUGxhdGZvcm1L
ZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5
Ym9hcmRFdmVudChuc0V2ZW50KTsKKyAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50
KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOworICAgICAgICBldmVudCA9IEtleWJvYXJkRXZl
bnQ6OmNyZWF0ZShwZSwgMCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYgKGJ1dHRvbiAhPSBub0J1dHRvbikgewogICAg
ICAgICBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwg
dHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAs
IDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgICAgIDAsIDAsCiAjZW5k
aWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtuc0V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrLAotICAgICAgICAgICAgW25z
RXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU1NoaWZ0S2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaywKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2wsCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdz
XSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24sCisgICAgICAgICAgICBbbnNFdmVudCBtb2Rp
ZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCwKKyAgICAgICAgICAgIFtuc0V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAg
ICAgICBidXR0b24sIDAsIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgMCwgMCwgdHJ1ZSk7CiAgICAg
fQogCkBAIC0xMTQ5LDkgKzExNDAsNyBAQCAtIChOU0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhG
dW5jdGlvbktleToodW5pY2hhcilmdW5jdGlvbktleQogICAgIC8vIEZJWE1FIDQ0MDA0ODA6IHdo
ZW4gUERGVmlldyBpbXBsZW1lbnRzIHRoZSBzdGFuZGFyZCBzY3JvbGxpbmcgc2VsZWN0b3JzIHRo
YXQgdGhpcwogICAgIC8vIG1ldGhvZCBpcyB1c2VkIHRvIG1pbWljLCB3ZSBjYW4gZWxpbWluYXRl
IHRoaXMgbWV0aG9kIGFuZCBjYWxsIHRoZW0gZGlyZWN0bHkuCiAgICAgTlNTdHJpbmcgKmtleUFz
U3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZmdW5jdGlvbktleSBsZW5n
dGg6MV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIFtO
U0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlEb3duCisgICAgcmV0dXJuIFtOU0V2ZW50IGtl
eUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9jYXRpb246TlNaZXJvUG9pbnQKICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZp
ZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMTE2
MSw3ICsxMTUwLDYgQEAgLSAoTlNFdmVudCAqKV9mYWtlS2V5RXZlbnRXaXRoRnVuY3Rpb25LZXk6
KHVuaWNoYXIpZnVuY3Rpb25LZXkKICAgICAgICAgIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVy
czprZXlBc1N0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBUmVwZWF0Ok5PCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleUNvZGU6MF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiB9CiAKIC0gKHZvaWQpX2xvb2tVcEluRGljdGlvbmFyeUZyb21NZW51Oihp
ZClzZW5kZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENv
bXBsZXRpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0
Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KaW5kZXggNDM4MmIwNDQ3NGU2MGM4YzIzNzMzMDQ3Yjgx
Mzk2NGE0Zjc4NDI2My4uZmQ0ZWZmOTMwNmRhYTljOGU1N2MyNTc1MGRmMDJiNzc2Njk0OTU1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxl
dGlvbkNvbnRyb2xsZXIubW0KQEAgLTExMiwxMCArMTEyLDcgQEAgLSAodm9pZClfYnVpbGRVSQog
ICAgIFtzY3JvbGxWaWV3IHNldERvY3VtZW50VmlldzpfdGFibGVWaWV3XTsKICAgICBbX3RhYmxl
VmlldyByZWxlYXNlXTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBfcG9wdXBXaW5kb3cgPSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
OnNjcm9sbEZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgX3BvcHVwV2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAgW19wb3B1cFdpbmRv
dyBzZXRBbHBoYVZhbHVlOjAuODhmXTsKICAgICBbX3BvcHVwV2luZG93IHNldENvbnRlbnRWaWV3
OnNjcm9sbFZpZXddOwogICAgIFtzY3JvbGxWaWV3IHJlbGVhc2VdOwpAQCAtMTU1LDggKzE1Miw4
IEBAIC0gKHZvaWQpX3BsYWNlUG9wdXBXaW5kb3c6KE5TUG9pbnQpdG9wTGVmdAogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1Nj
cm9sbFZpZXcgZnJhbWVTaXplRm9yQ29udGVudFNpemU6TlNNYWtlU2l6ZShtYXhXaWR0aCwgMTAw
LjBmKSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9y
ZGVyVHlwZTpOU05vQm9yZGVyXS53aWR0aCk7Ci0gICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05T
V2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4
V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2tdLnNpemUud2lk
dGgpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBtYXhXaWR0aCA9IGNl
aWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAu
MGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3NdLnNpemUud2lkdGgpOwogICAgICAgICBtYXhXaWR0aCArPSA1LjBmOwogICAgICAgICB3aW5k
b3dGcmFtZS5zaXplLndpZHRoID0gc3RkOjptYXgobWF4V2lkdGgsIHdpbmRvd0ZyYW1lLnNpemUu
d2lkdGgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3Y2Zh
YTg3YjU1NmViNDc2YmYzYzVmZWQ1ZTAzZTY4ZmJhMmRlNGJmLi41MWQwZGRiODA2MDg0NDVjY2Ez
NTVmMzdmOGFlYjgzZWIzZWNlZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC02MDk1LDEwICs2MDk1LDcgQEAgLSAoRHJhZ0FwcGxpY2F0aW9uRmxhZ3MpYXBwbGljYXRp
b25GbGFnczooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KICAgICAgICAgZmxhZ3Mg
fD0gRHJhZ0FwcGxpY2F0aW9uSGFzQXR0YWNoZWRTaGVldDsKICAgICBpZiAoW2RyYWdnaW5nSW5m
byBkcmFnZ2luZ1NvdXJjZV0gPT0gc2VsZikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0
aW9uSXNTb3VyY2U7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYg
KFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFz
aykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW1tOU0FwcCBjdXJyZW50
RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAg
ICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSXNDb3B5S2V5RG93bjsKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RHJhZ0FwcGxpY2F0aW9uRmxhZ3M+KGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KaW5kZXggMmU2NTgwNmRiNWQ2OGYwYTRh
MjgyZDM4M2I5NmU3YjQ1MTZiOTA0MC4uZmE2MjVlMzU5NzU3NjVlMzU5ZGRhMWY0YzRmNzI5M2Y2
ZDBlMmViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nl
c3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMu
bW0KQEAgLTE5NywxMCArMTk3LDcgQEAgdm9pZCBDaGlsZFByb2Nlc3M6OnN0b3BOU0FwcFJ1bkxv
b3AoKQogICAgIEFTU0VSVChbTlNBcHAgaXNSdW5uaW5nXSk7CiAgICAgW05TQXBwIHN0b3A6bmls
XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmV2
ZW50ID0gW05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5TQXBwbGljYXRpb25EZWZpbmVkIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KDAsIDApIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MC4wIHdp
bmRvd051bWJlcjowIGNvbnRleHQ6bmlsIHN1YnR5cGU6MCBkYXRhMTowIGRhdGEyOjBdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQg
b3RoZXJFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlQXBwbGljYXRpb25EZWZpbmVkIGxvY2F0aW9u
Ok5TTWFrZVBvaW50KDAsIDApIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MC4wIHdpbmRvd051
bWJlcjowIGNvbnRleHQ6bmlsIHN1YnR5cGU6MCBkYXRhMTowIGRhdGEyOjBdOwogICAgIFtOU0Fw
cCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDp0cnVlXTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQppbmRleCBhODVlZmNhZWU5YTUyZDhj
MDQ1NjY2ZDk0YzQ5MTg3MGNhNjhhN2QzLi44YjA2ZWU3NDg5NjgzYTMxYjUzNTgzN2M2MTQxNDEw
ZWRlZmRjYWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50
RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9y
eS5tbQpAQCAtNjMsNzggKzYzLDY5IEBAIHN0YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0b24gY3Vy
cmVudE1vdXNlQnV0dG9uKCkKIAogc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1
dHRvbkZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNM
ZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6Okxl
ZnRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBO
U1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAg
ICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOwotICAgICAgICBjYXNlIE5T
T3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNh
c2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50
OjpNaWRkbGVCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91
c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJp
Z2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAg
ICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJN
b3VzZUV2ZW50OjpNaWRkbGVCdXR0b247CiAjaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICAgICAg
Y2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToK
ICNlbmRpZgotICAgICAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91
c2VFeGl0ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gY3VycmVudE1vdXNlQnV0dG9uKCk7Ci0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247
CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBl
TW91c2VFeGl0ZWQ6CisgICAgICAgIHJldHVybiBjdXJyZW50TW91c2VCdXR0b24oKTsKKyAgICBk
ZWZhdWx0OgorICAgICAgICByZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CiAgICAgfQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgV2ViRXZlbnQ6OlR5cGUg
bW91c2VFdmVudFR5cGVGb3JFdmVudChOU0V2ZW50KiBldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoK
LSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVkOgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoK
LSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93
bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICAgICAgcmV0dXJuIFdl
YkV2ZW50OjpNb3VzZURvd247Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAg
Y2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAg
ICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VVcDsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOworICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1v
dmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91
c2VNb3ZlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURv
d246CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VEb3duOworICAgIGNhc2UgTlNFdmVu
dFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAg
IGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6
TW91c2VVcDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92
ZTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBpbnQg
Y2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNh
c2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAg
IGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
RHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5T
T3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAg
ICAgICByZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91
c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBO
U0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURy
YWdnZWQ6CisgICAgICAgIHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAog
fQogCiBzdGF0aWMgTlNQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQpA
QCAtMTQzLDIyICsxMzQsMTkgQEAgc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChO
U0V2ZW50ICpldmVudCkKICNpZiBkZWZpbmVkKF9fTFA2NF9fKQogICAgIGNhc2UgTlNFdmVudFR5
cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgIGNh
c2UgTlNNb3VzZUV4aXRlZDoKLSAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURvd246Ci0gICAgY2FzZSBOU090aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNP
dGhlck1vdXNlVXA6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgIGNhc2UgTlNSaWdo
dE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZVVwOgotICAgIGNhc2UgTlNTY3Jv
bGxXaGVlbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1v
dXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBO
U0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3du
OgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6CiAgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpnbG9iYWxQb2ludChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10s
IFtldmVudCB3aW5kb3ddKTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gTlNaZXJvUG9p
bnQ7CkBAIC0xNzEsMjIgKzE1OSwxOSBAQCBzdGF0aWMgTlNQb2ludCBwb2ludEZvckV2ZW50KE5T
RXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiAjaWYgZGVmaW5lZChfX0xQNjRfXykK
ICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAgICBjYXNlIE5T
TGVmdE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgY2FzZSBOU01v
dXNlRW50ZXJlZDoKLSAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgY2FzZSBOU01vdXNlTW92
ZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRHJh
Z2dlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRG93
bjoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICBjYXNlIE5TU2Nyb2xsV2hlZWw6IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91
c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6
CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlU2Nyb2xsV2hlZWw6IHsKICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9y
aWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBp
cyBmbGlwcGVkLgogICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBn
ZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCiAgICAg
ICAgIE5TUG9pbnQgbG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CkBAIC0yNDAs
MTAgKzIyNSw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHRleHRGcm9tRXZlbnQoTlNFdmVudCog
ZXZlbnQsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UpCiB7CiAgICAgaWYgKHJlcGxhY2VzU29mdFNw
YWNlKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNF
dmVudFR5cGVGbGFnc0NoYW5nZWQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAg
IHJldHVybiBTdHJpbmcoW2V2ZW50IGNoYXJhY3RlcnNdKTsKIH0KQEAgLTI1MiwxMCArMjM0LDcg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgdW5tb2RpZmllZFRleHRGcm9tRXZlbnQoTlNFdmVudCog
ZXZlbnQsIGJvb2wgcmVwbGFjZXNTb2Z0U3AKIHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2Up
CiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50
VHlwZUZsYWdzQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0
dXJuIFN0cmluZyhbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSk7CiB9CkBAIC0y
NjQsNzQgKzI0Myw2OCBAQCBzdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50
KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhh
cyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNh
c2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBOU0ZsYWdzQ2hhbmdlZDoKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAg
IGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2Vk
OgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCiAgICAgc3dpdGNoIChbZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA3MTog
Ly8gQ2xlYXIKLSAgICAgICAgY2FzZSA4MTogLy8gPQotICAgICAgICBjYXNlIDc1OiAvLyAvCi0g
ICAgICAgIGNhc2UgNjc6IC8vICoKLSAgICAgICAgY2FzZSA3ODogLy8gLQotICAgICAgICBjYXNl
IDY5OiAvLyArCi0gICAgICAgIGNhc2UgNzY6IC8vIEVudGVyCi0gICAgICAgIGNhc2UgNjU6IC8v
IC4KLSAgICAgICAgY2FzZSA4MjogLy8gMAotICAgICAgICBjYXNlIDgzOiAvLyAxCi0gICAgICAg
IGNhc2UgODQ6IC8vIDIKLSAgICAgICAgY2FzZSA4NTogLy8gMwotICAgICAgICBjYXNlIDg2OiAv
LyA0Ci0gICAgICAgIGNhc2UgODc6IC8vIDUKLSAgICAgICAgY2FzZSA4ODogLy8gNgotICAgICAg
ICBjYXNlIDg5OiAvLyA3Ci0gICAgICAgIGNhc2UgOTE6IC8vIDgKLSAgICAgICAgY2FzZSA5Mjog
Ly8gOQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIH0KKyAgICBjYXNlIDcxOiAvLyBD
bGVhcgorICAgIGNhc2UgODE6IC8vID0KKyAgICBjYXNlIDc1OiAvLyAvCisgICAgY2FzZSA2Nzog
Ly8gKgorICAgIGNhc2UgNzg6IC8vIC0KKyAgICBjYXNlIDY5OiAvLyArCisgICAgY2FzZSA3Njog
Ly8gRW50ZXIKKyAgICBjYXNlIDY1OiAvLyAuCisgICAgY2FzZSA4MjogLy8gMAorICAgIGNhc2Ug
ODM6IC8vIDEKKyAgICBjYXNlIDg0OiAvLyAyCisgICAgY2FzZSA4NTogLy8gMworICAgIGNhc2Ug
ODY6IC8vIDQKKyAgICBjYXNlIDg3OiAvLyA1CisgICAgY2FzZSA4ODogLy8gNgorICAgIGNhc2Ug
ODk6IC8vIDcKKyAgICBjYXNlIDkxOiAvLyA4CisgICAgY2FzZSA5MjogLy8gOQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRp
YyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0ZsYWdz
Q2hhbmdlZCkKLSAgICAgICAgcmV0dXJuIFtldmVudCB0eXBlXSA9PSBOU0tleVVwOworICAgIGlm
IChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCisgICAgICAgIHJldHVy
biBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlVcDsKICAgICAvLyBGSVhNRTogVGhpcyBs
b2dpYyBmYWlscyBpZiB0aGUgdXNlciBwcmVzc2VzIGJvdGggU2hpZnQga2V5cyBhdCBvbmNlLCBm
b3IgZXhhbXBsZToKICAgICAvLyB3ZSB0cmVhdCByZWxlYXNpbmcgb25lIG9mIHRoZW0gYXMga2V5
RG93bi4KICAgICBzd2l0Y2ggKFtldmVudCBrZXlDb2RlXSkgewotICAgICAgICBjYXNlIDU0OiAv
LyBSaWdodCBDb21tYW5kCi0gICAgICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAg
ICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKSA9
PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAg
ICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1hc2sp
ID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAotICAg
ICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlmdAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQg
bW9kaWZpZXJGbGFnc10gJiBOU1NoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAg
ICAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAotICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQK
LSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3Ry
bAotICAgICAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCi0gICAgICAgICAgICByZXR1cm4gKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spID09IDA7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgY2FzZSA2MzogLy8gRnVuY3Rpb24KLSAgICAgICAgICAgIHJldHVybiAoW2V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNGdW5jdGlvbktleU1hc2spID09IDA7CisgICAgY2FzZSA1
NDogLy8gUmlnaHQgQ29tbWFuZAorICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAorICAgICAg
ICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29t
bWFuZCk7CisKKyAgICBjYXNlIDU3OiAvLyBDYXBzbG9jaworICAgICAgICByZXR1cm4gIShbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spOworCisgICAg
Y2FzZSA1NjogLy8gTGVmdCBTaGlmdAorICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0CisgICAg
ICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdT
aGlmdCk7CisKKyAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAorICAgIGNhc2UgNjE6IC8vIFJpZ2h0
IEFsdAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9k
aWZpZXJGbGFnT3B0aW9uKTsKKworICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAorICAgIGNhc2Ug
NjI6IC8vIFJpZ2h0IEN0cmwKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3Nd
ICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wpOworCisgICAgY2FzZSA2MzogLy8gRnVuY3Rp
b24KKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ0Z1bmN0aW9uKTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0zMzksNyArMzEyLDYgQEAgc3RhdGljIGlubGluZSBX
ZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewog
ICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTIwMAogICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6
Q2Fwc0xvY2tLZXk7CiAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdTaGlmdCkKQEAgLTM1MCwxOCArMzIyLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVu
dDo6TW9kaWZpZXJzIG1vZGlmaWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBt
b2RpZmllcnMgfD0gV2ViRXZlbnQ6OkFsdEtleTsKICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBX
ZWJFdmVudDo6TWV0YUtleTsKLSNlbHNlCi0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TQWxwaGFTaGlmdEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fw
c0xvY2tLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNr
KQotICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OwotICAgIGlmIChbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMg
fD0gV2ViRXZlbnQ6OkNvbnRyb2xLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TQWx0ZXJuYXRlS2V5TWFzaykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpBbHRL
ZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spCi0g
ICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtleTsKLSNlbmRpZgogCiAgICAgcmV0
dXJuIChXZWJFdmVudDo6TW9kaWZpZXJzKW1vZGlmaWVyczsKIH0KQEAgLTQ4NCwxMCArNDQ0LDcg
QEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZl
bnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEKICAgICBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
ICAgICAgID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgaW50IG5hdGl2
ZVZpcnR1YWxLZXlDb2RlICAgICAgICA9IFtldmVudCBrZXlDb2RlXTsKICAgICBpbnQgbWFjQ2hh
ckNvZGUgICAgICAgICAgICAgICAgID0gV0tHZXROU0V2ZW50S2V5Q2hhcihldmVudCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgYm9vbCBhdXRvUmVwZWF0ICAgICAg
ICAgICAgICAgICA9IChbZXZlbnQgdHlwZV0gIT0gTlNGbGFnc0NoYW5nZWQpICYmIFtldmVudCBp
c0FSZXBlYXRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGJvb2wgYXV0b1Jl
cGVhdCAgICAgICAgICAgICAgICAgPSBbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0No
YW5nZWQgJiYgW2V2ZW50IGlzQVJlcGVhdF07CiAgICAgYm9vbCBpc0tleXBhZCAgICAgICAgICAg
ICAgICAgICA9IGlzS2V5cGFkRXZlbnQoZXZlbnQpOwogICAgIGJvb2wgaXNTeXN0ZW1LZXkgICAg
ICAgICAgICAgICAgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUg
TWFjLgogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JF
dmVudChldmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLTmF2aWdhdGlvbkFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tCmluZGV4IGJhMTk5NmIyMTc0ZTIzZTQ3Nzg0NjM3
ZWQ3MjEwN2M3NTFiMGMzY2UuLjY3ZThiZDM2MGJkMTlkYWY4NDlkZjFiNGU0NzMyZjE3NTRlNjQ3
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uQWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uQWN0aW9uLm1tCkBAIC03OSw3ICs3OSw2IEBAIHN0YXRpYyBOU0V2ZW50TW9k
aWZpZXJGbGFncyB0b05TRXZlbnRNb2RpZmllckZsYWdzKFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlm
aWVycyBtCiB7CiAgICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgbW9kaWZpZXJGbGFncyA9IDA7CiAK
LSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIGlmICht
b2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpDYXBzTG9ja0tleSkKICAgICAgICAgbW9kaWZp
ZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2s7CiAgICAgaWYgKG1vZGlmaWVy
cyAmIFdlYktpdDo6V2ViRXZlbnQ6OlNoaWZ0S2V5KQpAQCAtOTAsMTggKzg5LDYgQEAgc3RhdGlj
IE5TRXZlbnRNb2RpZmllckZsYWdzIHRvTlNFdmVudE1vZGlmaWVyRmxhZ3MoV2ViS2l0OjpXZWJF
dmVudDo6TW9kaWZpZXJzIG0KICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnT3B0aW9uOwogICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpNZXRh
S2V5KQogICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5k
OwotI2Vsc2UKLSAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6Q2Fwc0xvY2tL
ZXkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNBbHBoYVNoaWZ0S2V5TWFzazsKLSAgICBp
ZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6U2hpZnRLZXkpCi0gICAgICAgIG1vZGlm
aWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6
V2ViRXZlbnQ6OkNvbnRyb2xLZXkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb250cm9s
S2V5TWFzazsKLSAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6QWx0S2V5KQot
ICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQWx0ZXJuYXRlS2V5TWFzazsKLSAgICBpZiAobW9k
aWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6TWV0YUtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFn
cyB8PSBOU0NvbW1hbmRLZXlNYXNrOwotI2VuZGlmCiAKICAgICByZXR1cm4gbW9kaWZpZXJGbGFn
czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpp
bmRleCAzMmU2MzljNGQ5MTlhZDE2ZTlhOTQ4MmI5MzVjZWYwNDYzNzcxZmJhLi5kMjhkMzUzNjc5
N2U1MDE4NTYyY2JjYzk5MzhlZjczMmFkZWFlOGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC02MjAsMTEgKzYyMCw4IEBAIGJvb2wgV2Vi
Vmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKCkKICAgICBpZiAoZGlyZWN0aW9uICE9IE5T
RGlyZWN0U2VsZWN0aW9uKSB7CiAgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJl
bnRFdmVudF07CiAgICAgICAgIE5TRXZlbnQgKmtleWJvYXJkRXZlbnQgPSBuaWw7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0g
TlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKQorICAgICAgICBpZiAoW2V2ZW50
IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5
cGVLZXlVcCkKICAgICAgICAgICAgIGtleWJvYXJkRXZlbnQgPSBldmVudDsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0
aW9uID09IE5TU2VsZWN0aW5nTmV4dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCwgZmFsc2UsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6
OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsgfSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAt
ODQ4LDEwICs4NDUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVDb250ZW50SW5zZXRzSWZB
dXRvbWF0aWMoKQogICAgICAgICByZXR1cm47CiAKICAgICBOU1dpbmRvdyAqd2luZG93ID0gbV92
aWV3LndpbmRvdzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAo
KHdpbmRvdy5zdHlsZU1hc2sgJiBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrKSAmJiAh
d2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50ICYmICFbbV92aWV3IGVuY2xvc2luZ1Nj
cm9sbFZpZXddKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKCh3aW5k
b3cuc3R5bGVNYXNrICYgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3KSAmJiAh
d2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50ICYmICFbbV92aWV3IGVuY2xvc2luZ1Nj
cm9sbFZpZXddKSB7CiAgICAgICAgIE5TUmVjdCBjb250ZW50TGF5b3V0UmVjdCA9IFttX3ZpZXcg
Y29udmVydFJlY3Q6d2luZG93LmNvbnRlbnRMYXlvdXRSZWN0IGZyb21WaWV3Om5pbF07CiAgICAg
ICAgIENHRmxvYXQgbmV3VG9wQ29udGVudEluc2V0ID0gTlNNYXhZKGNvbnRlbnRMYXlvdXRSZWN0
KSAtIE5TSGVpZ2h0KGNvbnRlbnRMYXlvdXRSZWN0KTsKICAgICAgICAgaWYgKG1fdG9wQ29udGVu
dEluc2V0ICE9IG5ld1RvcENvbnRlbnRJbnNldCkKQEAgLTEyMjgsMTAgKzEyMjIsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93KCkKIAogICAgICAgICBpZiAoIW1fZmxh
Z3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7CiAgICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gY3Jl
YXRlV2Vha1B0cigpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0
b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6W3dlYWtU
aGlzXSAoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZl
bnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrRmxhZ3ND
aGFuZ2VkIGhhbmRsZXI6W3dlYWtUaGlzXSAoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsK
ICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIHdlYWtU
aGlzLT5wb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50KGZsYWdzQ2hh
bmdlZEV2ZW50KTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CkBA
IC0xMzAyLDEyICsxMjkzLDkgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6aGl0VGVzdChDR1BvaW50
IHBvaW50KQogCiB2b2lkIFdlYlZpZXdJbXBsOjpwb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZs
YWdzQ2hhbmdlZEV2ZW50KE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2Vk
RXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQorICAgIE5TRXZl
bnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1v
dXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25P
dXRzaWRlT2ZFdmVudFN0cmVhbQogICAgICAgICBtb2RpZmllckZsYWdzOmZsYWdzQ2hhbmdlZEV2
ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1wOmZsYWdzQ2hhbmdlZEV2ZW50LnRpbWVzdGFtcCB3
aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93TnVtYmVyCiAgICAgICAgIGNvbnRl
eHQ6bnVsbHB0ciBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50
KGZha2VFdmVudCwgbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgbV92aWV3KTsKICAgICBtX3Bh
Z2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOwogfQpAQCAtMTY1NiwxMCArMTY0NCw3IEBA
IE5TVmlldyAqV2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcoKQogTlNXaW5k
b3cgKldlYlZpZXdJbXBsOjpjcmVhdGVGdWxsU2NyZWVuV2luZG93KCkKIHsKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
cmV0dXJuIFtbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRS
ZWN0OltbTlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazooTlNCb3JkZXJsZXNz
V2luZG93TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzaykgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOk5PXSBhdXRvcmVsZWFzZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgcmV0dXJuIFtbW1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazoo
TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUp
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVhc2VdOwog
I2Vsc2UKICAgICByZXR1cm4gbmlsOwogI2VuZGlmCkBAIC0yNjMxLDkgKzI2MTYsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpyZW1vdmVUcmFja2luZ1JlY3RzKE5TVHJhY2tpbmdSZWN0VGFnICp0YWdz
LCBpbnQgY291bnQpCiB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCkK
IHsKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIs
IGFuZCB1c2VyRGF0YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBO
U0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91
c2VFeGl0ZWQKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVu
dFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VFeGl0ZWQKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDow
CkBAIC0yNjQyLDE2ICsyNjI1LDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91
c2VFeGl0ZWQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXRhOm1fdHJhY2tpbmdSZWN0VXNlckRhdGFd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFttX3RyYWNraW5nUmVjdE93bmVy
IG1vdXNlRXhpdGVkOmZha2VFdmVudF07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29s
VGlwTW91c2VFbnRlcmVkKCkKIHsKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRv
dywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRF
dmVudFdpdGhUeXBlOk5TTW91c2VFbnRlcmVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05T
RXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNN
YWtlUG9pbnQoMCwgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTI2NjAsNyArMjY0MCw2IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnNlbmRUb29sVGlwTW91c2VFbnRlcmVkKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRyYWNraW5nTnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YTptX3Ry
YWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBb
bV90cmFja2luZ1JlY3RPd25lciBtb3VzZUVudGVyZWQ6ZmFrZUV2ZW50XTsKIH0KIApAQCAtMjgx
NiwxMCArMjc5NSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncyBhcHBs
aWNhdGlvbkZsYWdzRm9yRHJhZyhOU1ZpZXcgKnZpZXcsIGlkIDxOCiAgICAgICAgIGZsYWdzIHw9
IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkhhc0F0dGFjaGVkU2hlZXQ7CiAgICAgaWYgKGRyYWdn
aW5nSW5mby5kcmFnZ2luZ1NvdXJjZSA9PSB2aWV3KQogICAgICAgICBmbGFncyB8PSBXZWJDb3Jl
OjpEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICBpZiAoW05TQXBwIGN1cnJlbnRFdmVudF0ubW9kaWZpZXJGbGFncyAmIE5TQWx0
ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW05T
QXBwIGN1cnJlbnRFdmVudF0ubW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24pCiAgICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbklzQ29weUtleURv
d247CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdz
PihmbGFncyk7CiAKQEAgLTMzNTksMTAgKzMzMzUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzbWFy
dE1hZ25pZnlXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNl
dExhc3RNb3VzZURvd25FdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NFUlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gTlNM
ZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNSaWdodE1vdXNlRG93biB8fCBldmVudC50
eXBlID09IE5TT3RoZXJNb3VzZURvd24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURv
d24gfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8IGV2ZW50LnR5
cGUgPT0gTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bik7CiAKICAgICBpZiAoZXZlbnQgPT0gbV9s
YXN0TW91c2VEb3duRXZlbnQuZ2V0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMzOTksMTEgKzMz
NzIsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiB2
b2lkIFdlYlZpZXdJbXBsOjpkb25lV2l0aEtleUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGV2
ZW50V2FzSGFuZGxlZCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9
IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAogCiAgICAgaWYgKHRyeVBvc3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1
dEtleURvd24oZXZlbnQpKQogICAgICAgICByZXR1cm47CkBAIC0zNDc5LDExICszNDQ5LDggQEAg
VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gV2ViVmlld0ltcGw6OmNvbGxlY3RLZXli
b2FyZExheW91dENvbW1hbmRzRm9yRXYKIHsKICAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiBjb21tYW5kczsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlwZV0g
IT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAgICAgICByZXR1cm4gY29tbWFuZHM7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBBU1NFUlQoIW1fY29sbGVjdGVkS2V5cHJlc3ND
b21tYW5kcyk7CiAgICAgbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzID0gJmNvbW1hbmRzOwpA
QCAtMzg1OCwxMSArMzgyNSw4IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFs
ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIC8vIFdlIGdldCBFc2Mga2V5IGhlcmUgYWZ0ZXIgcHJv
Y2Vzc2luZyBlaXRoZXIgRXNjIG9yIENtZCtwZXJpb2QuIFRoZSBmb3JtZXIgc3RhcnRzIGFzIGEg
a2V5RG93biwgYW5kIHRoZSBsYXR0ZXIgc3RhcnRzIGFzIGEga2V5IGVxdWl2YWxlbnQsCiAgICAg
Ly8gYnV0IGJvdGggZ2V0IHRyYW5zZm9ybWVkIHRvIGEgY2FuY2VsT3BlcmF0aW9uOiBjb21tYW5k
LCBleGVjdXRpbmcgd2hpY2ggcGFzc2VzIGFuIEVzYyBrZXkgZXZlbnQgdG8gLXBlcmZvcm1LZXlF
cXVpdmFsZW50Oi4KICAgICAvLyBEb24ndCBpbnRlcnByZXQgdGhpcyBldmVudCBhZ2FpbiwgYXZv
aWRpbmcgcmUtZW50cmFuY3kgYW5kIGluZmluaXRlIGxvb3BzLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlm
aWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAm
IE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykpCisgICAgaWYgKFtbZXZlbnQg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5k
ZW50RmxhZ3NNYXNrKSkKICAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3dlYl9zdXBlclBlcmZvcm1L
ZXlFcXVpdmFsZW50OmV2ZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAg
IGlmIChtX2tleURvd25FdmVudEJlaW5nUmVzZW50KSB7CiAgICAgICAgIC8vIFdlYkNvcmUgaGFz
IGFscmVhZHkgc2VlbiB0aGUgZXZlbnQsIG5vIG5lZWQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblBy
b2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9Q
bHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KaW5kZXggZjA3ZDI3OWQ2MzdkMzBmOGY1MDUzMTdkOGYw
OTYwNTU3YTExZDJkMi4uMjY4ZDA5ZTVkOTA5MWQ1Zjg5NTM4ZWMwMTM2MjE0M2M5MTkwZTdhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblBy
b2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9t
YWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC0yMzEsMTAgKzIzMSw3IEBAIHZvaWQgUGx1
Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1fcGxhY2Vob2xkZXJX
aW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwogICAgIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBh
ZG9wdE5TKFtbV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRS
ZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01h
c2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtb
V0tQbGFjZWhvbGRlck1vZGFsV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFr
ZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgW21fcGxhY2Vo
b2xkZXJXaW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKICAgICAKICAgICBtX2FjdGl2
YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRpb25XaWxsQmVjb21lQWN0aXZlTm90aWZpY2F0aW9u
IG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCBhNDgzOTY0ZDhmMWYyMjZk
NGFlY2MyN2NjYjBmMDc2MDcxYjdiYmQxLi40N2RhMjE3MjEzZjliYmY3MjgyMmIyOTIwYmM5ZWQx
NmU3Nzg1NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC00NjMsMTAgKzQ2Myw3IEBAIHZvaWQgV2ViQ29u
dGV4dE1lbnVQcm94eU1hYzo6c2hvd0NvbnRleHRNZW51V2l0aEl0ZW1zKGNvbnN0IFZlY3RvcjxX
ZWJDb250ZXh0TWVuCiAgICAgW1tXS01lbnVUYXJnZXQgc2hhcmVkTWVudVRhcmdldF0gc2V0TWVu
dVByb3h5OnRoaXNdOwogCiAgICAgTlNQb2ludCBtZW51TG9jYXRpb24gPSBbbV93ZWJWaWV3IGNv
bnZlcnRQb2ludDptX2NvbnRleHQubWVudUxvY2F0aW9uKCkgdG9WaWV3Om5pbF07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9u
IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRv
dy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJl
c3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAg
bG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dO
dW1iZXI6bV93ZWJWaWV3LndpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1i
ZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CiAgICAgW05TTWVudSBwb3BVcENvbnRleHRN
ZW51Om1fbWVudS5nZXQoKSB3aXRoRXZlbnQ6ZXZlbnQgZm9yVmlldzptX3dlYlZpZXddOwogCiAg
ICAgaWYgKG1fY29udGV4dE1lbnVMaXN0ZW5lcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXggMGE3OTkxMzQ2ZDE1
Y2NmYWM3NzQzNWVmMzBlZjhkZjgyMmFmYWUyMy4uODE4YmQzOTBkNDgzZDA4MjJiYWU3OTM0ZTEw
NmZkYmIwY2RmZjg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJJbnNwZWN0b3JQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkluc3BlY3RvclByb3h5TWFjLm1tCkBAIC00OCwxMCArNDgsNyBAQCBTT0ZUX0xJTktfU1RB
R0VEX0ZSQU1FV09SSyhXZWJJbnNwZWN0b3JVSSwgUHJpdmF0ZUZyYW1ld29ya3MsIEEpCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLXN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHdpbmRv
d1N0eWxlTWFzayA9IE5TVGl0bGVkV2luZG93TWFzayB8IE5TQ2xvc2FibGVXaW5kb3dNYXNrIHwg
TlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2sgfCBOU0Z1
bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorc3RhdGljIGNvbnN0IE5TVUludGVnZXIgd2luZG93U3R5bGVNYXNrID0gTlNXaW5kb3dTdHls
ZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxlTWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHlsZU1h
c2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5kb3dT
dHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3OwogCiAvLyBUaGUgdGltZSB3ZSBrZWVwIG91ciBX
ZWJWaWV3IGFsaXZlIGJlZm9yZSBjbG9zaW5nIGl0IGFuZCBpdHMgcHJvY2Vzcy4KIC8vIFJldXNp
bmcgdGhlIFdlYlZpZXcgaW1wcm92ZXMgc3RhcnQgdXAgdGltZSBmb3IgcGVvcGxlIHRoYXQganVt
cCBpbiBhbmQgb3V0IG9mIHRoZSBJbnNwZWN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQppbmRleCBkMjlkMDg5MDUyYzg4
N2FmYjg2NDIzODQ1NWFhMTg4NGI0ZGQ0NjVjLi5kMzAxOTRkYmYwNjVkYWZlZGM5YTQwZTFhMzE0
ODc0YmZkMWIwNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
YlBvcHVwTWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTc0LDE5ICs3NCwxMyBAQCB2b2lkIFdlYlBvcHVw
TWVudVByb3h5TWFjOjpwb3B1bGF0ZShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMs
IE5TRm9udCAqZgogICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0eWxl
PiBwYXJhZ3JhcGhTdHlsZSA9IGFkb3B0TlMoW1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJh
Z3JhcGhTdHlsZV0gbXV0YWJsZUNvcHldKTsKICAgICAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlv
biB3cml0aW5nRGlyZWN0aW9uID0gaXRlbXNbaV0ubV90ZXh0RGlyZWN0aW9uID09IExUUiA/IE5T
V3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xl
ZnQ7CiAgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246
d3JpdGluZ0RpcmVjdGlvbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9u
ID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1lbnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUg
c2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVGV4dEFsaWdubWVudExl
ZnQgOiBOU1RleHRBbGlnbm1lbnRSaWdodF07CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRh
YmxlRGljdGlvbmFyeT4gYXR0cmlidXRlcyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5
IGFsbG9jXSBpbml0V2l0aE9iamVjdHNBbmRLZXlzOgogICAgICAgICAgICAgICAgIHBhcmFncmFw
aFN0eWxlLmdldCgpLCBOU1BhcmFncmFwaFN0eWxlQXR0cmlidXRlTmFtZSwKICAgICAgICAgICAg
ICAgICBmb250LCBOU0ZvbnRBdHRyaWJ1dGVOYW1lLAogICAgICAgICAgICAgbmlsXSk7CiAgICAg
ICAgICAgICBpZiAoaXRlbXNbaV0ubV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgICAgICBSZXRhaW5QdHI8
TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxv
Y10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1RleHRXcml0aW5nRGlyZWN0
aW9uT3ZlcnJpZGVdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAg
ICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMo
W1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1dy
aXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU0Fy
cmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkgPSBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10gaW5p
dFdpdGhPYmplY3RzOndyaXRpbmdEaXJlY3Rpb25WYWx1ZS5nZXQoKSwgbmlsXSk7CiAgICAgICAg
ICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2JqZWN0OndyaXRpbmdEaXJlY3Rpb25BcnJheS5nZXQo
KSBmb3JLZXk6TlNXcml0aW5nRGlyZWN0aW9uQXR0cmlidXRlTmFtZV07CiAgICAgICAgICAgICB9
CkBAIC0xNTQsMTggKzE0OCwxNSBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9w
dXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogCiAgICAgTlND
b250cm9sU2l6ZSBjb250cm9sU2l6ZTsKICAgICBzd2l0Y2ggKGRhdGEubWVudVNpemUpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjYXNlIFdlYkNvcmU6OlBvcHVw
TWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5T
UmVndWxhckNvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVS
ZWd1bGFyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxl
OjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNTbWFsbENvbnRy
b2xTaXplOworICAgICAgICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVTbWFsbDsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6
ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXplID0gTlNNaW5pQ29udHJvbFNpemU7CisgICAgICAg
IGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZU1pbmk7CiAgICAgICAgIGJyZWFrOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIH0KIAogICAgIFJlZjxXZWJQb3B1cE1lbnVQcm94
eU1hYz4gcHJvdGVjdCgqdGhpcyk7CkBAIC0xODMsMTMgKzE3NCwxMSBAQCB2b2lkIFdlYlBvcHVw
TWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJl
Y3Rpb24gdGV4dAogICAgIGlmICghbV9jbGllbnQtPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93
bkV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKICAgICBOU0V2ZW50KiBpbml0aWF0aW5nTlNFdmVudCA9IG1fY2xpZW50LT5j
dXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpLT5uYXRpdmVFdmVudCgpOwotICAgIGlm
IChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0gTlNMZWZ0TW91c2VEb3duKQorICAgIGlmIChb
aW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2
ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nTlNF
dmVudCBsb2NhdGlvbkluV2luZG93XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ05TRXZlbnQgbW9kaWZpZXJGbGFnc10KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRp
YXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KQEAgLTE5OCwxMyArMTg3LDE0IEBAIHZvaWQgV2ViUG9w
dXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERp
cmVjdGlvbiB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2
ZW50TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCBldmVudE51bWJlcl0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrQ291bnQ6W2luaXRpYXRpbmdOU0V2ZW50
IGNsaWNrQ291bnRdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByZXNzdXJlOltpbml0aWF0aW5nTlNFdmVudCBwcmVzc3VyZV1dOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAogCiAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZ
RVNdOworICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRp
b246W1ttX3dlYlZpZXcgd2luZG93XQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92
ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1ttX3dlYlZp
ZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQor
ICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3Vz
ZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdOU0V2ZW50IG1vZGlmaWVy
RmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0
aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2luZG93TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCB3aW5kb3dOdW1iZXJdCkBAIC0yMTIsNyAr
MjAyLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJ
bnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpY2tDb3VudDowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJl
OjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6
ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVn
aW5NYWMubW0KaW5kZXggMWY5OTMwZTJkODlmZTAwMTMzMDBhMDE0YTQyZDYxMzk4MDc5MmEyNi4u
YjkyNmRiMDkwMmY1YjhmNzUwNDdmZWFkYzJjNTQzYzZhY2MyZTVlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdp
bk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
bWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBAIC00NzUsMTMgKzQ3NSwxMyBAQCBzdGF0aWMgdWlu
dDMyX3QgbW9kaWZpZXJGbGFncyhjb25zdCBXZWJFdmVudCYgZXZlbnQpCiAgICAgdWludDMyX3Qg
bW9kaWZpZXJzID0gMDsKIAogICAgIGlmIChldmVudC5zaGlmdEtleSgpKQotICAgICAgICBtb2Rp
ZmllcnMgfD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnU2hpZnQ7CiAgICAgaWYgKGV2ZW50LmNvbnRyb2xLZXkoKSkKLSAgICAgICAgbW9k
aWZpZXJzIHw9IE5TQ29udHJvbEtleU1hc2s7CisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29udHJvbDsKICAgICBpZiAoZXZlbnQuYWx0S2V5KCkpCi0gICAgICAgIG1v
ZGlmaWVycyB8PSBOU0FsdGVybmF0ZUtleU1hc2s7CisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAgIGlmIChldmVudC5tZXRhS2V5KCkpCi0gICAgICAg
IG1vZGlmaWVycyB8PSBOU0NvbW1hbmRLZXlNYXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgCiAgICAgcmV0dXJuIG1vZGlmaWVyczsKIH0K
QEAgLTcwNiwxNSArNzA2LDE1IEBAIHN0YXRpYyB1bnNpZ25lZCBtb2RpZmllckZsYWdzKGNvbnN0
IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQpCiAgICAgdW5zaWduZWQgbW9kaWZpZXJG
bGFncyA9IDA7CiAKICAgICBpZiAoa2V5Ym9hcmRFdmVudC5jYXBzTG9ja0tleSgpKQotICAgICAg
ICBtb2RpZmllckZsYWdzIHw9IE5TQWxwaGFTaGlmdEtleU1hc2s7CisgICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOwogICAgIGlmIChrZXlib2FyZEV2
ZW50LnNoaWZ0S2V5KCkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7
CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogICAg
IGlmIChrZXlib2FyZEV2ZW50LmNvbnRyb2xLZXkoKSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8
PSBOU0NvbnRyb2xLZXlNYXNrOworICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdDb250cm9sOwogICAgIGlmIChrZXlib2FyZEV2ZW50LmFsdEtleSgpKQotICAgICAg
ICBtb2RpZmllckZsYWdzIHw9IE5TQWx0ZXJuYXRlS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJG
bGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAgIGlmIChrZXlib2FyZEV2ZW50
Lm1ldGFLZXkoKSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0NvbW1hbmRLZXlNYXNrOwor
ICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogCiAg
ICAgcmV0dXJuIG1vZGlmaWVyRmxhZ3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KaW5kZXgg
NWVkZTU2ZWVlNDBhY2ZkYjk5MDExOWRlN2FjZTkxOGU2NzhiYzY2Ni4uZjlmMzM5YTliNzEzMmVm
MGMxMTdiZDczZDcyMTI0NzNmYzU0OWIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQpAQCAt
MTI3OCwzMyArMTI3OCwyOCBAQCB2b2lkIFBERlBsdWdpbjo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0
KHVpbnQ2NF90LCBjb25zdCBXVEY6OlN0cmluZyYpCiAgICAgCiBzdGF0aWMgTlNVSW50ZWdlciBt
b2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCkKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICByZXR1cm4gKGV2ZW50LnNoaWZ0S2V5
KCkgPyBOU1NoaWZ0S2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/
IE5TQ29udHJvbEtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5hbHRLZXkoKSA/IE5TQWx0
ZXJuYXRlS2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50Lm1ldGFLZXkoKSA/IE5TQ29tbWFu
ZEtleU1hc2sgOiAwKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4g
KGV2ZW50LnNoaWZ0S2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgOiAwKQorICAgICAg
ICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCA6IDAp
CisgICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbiA6
IDApCisgICAgICAgIHwgKGV2ZW50Lm1ldGFLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdDb21t
YW5kIDogMCk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQo
Y29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeXBlKQogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoZXZlbnQudHlwZSgpKSB7
CiAgICAgY2FzZSBXZWJFdmVudDo6S2V5RG93bjoKLSAgICAgICAgZXZlbnRUeXBlID0gTlNLZXlE
b3duOworICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUtleURvd247CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIGNhc2UgV2ViRXZlbnQ6OktleVVwOgotICAgICAgICBldmVudFR5cGUg
PSBOU0tleVVwOworICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUtleVVwOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZURvd246CiAgICAgICAgIHN3
aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkg
ewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBl
dmVudFR5cGUgPSBOU0xlZnRNb3VzZURvd247CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd247CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
Y2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9
IE5TUmlnaHRNb3VzZURvd247CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJp
Z2h0TW91c2VEb3duOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzEyLDEwICsxMzA3LDEwIEBAIHN0YXRp
YyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5T
RXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VVcDoKICAgICAgICAg
c3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigp
KSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAg
IGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlVXA7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2
ZW50VHlwZUxlZnRNb3VzZVVwOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNh
c2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBO
U1JpZ2h0TW91c2VVcDsKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRN
b3VzZVVwOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzIzLDEzICsxMzE4LDEzIEBAIHN0YXRpYyBib29s
IGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRU
eXBlJiBldmVudFR5CiAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VNb3ZlOgogICAgICAgICBzd2l0
Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsK
ICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZl
bnRUeXBlID0gTlNMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5
cGUgPSBOU1JpZ2h0TW91c2VEcmFnZ2VkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVu
dFR5cGVSaWdodE1vdXNlRHJhZ2dlZDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICBjYXNlIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0g
TlNNb3VzZU1vdmVkOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVNb3VzZU1v
dmVkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzM3LDcgKzEzMzIsNiBAQCBzdGF0aWMgYm9vbCBnZXRF
dmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYg
ZXZlbnRUeQogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAgICAgCiBOU0V2ZW50ICpQREZQbHVnaW46Om5z
RXZlbnRGb3JXZWJNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRl
eCBjNGQyNTZjNTU5ZmI3NDZjODk0NmZlMTgwNmY3YTQzNWRiMTViNTVlLi40YTcyYWI3OTM1MjU5
YjU0Yjg0NWRhZGM5ZmEzNmZiYThjYTgzNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtOTYzLDEwICs5NjMsMTAgQEAg
dm9pZCBQREZQbHVnaW46OmRpZEV2YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRfdCwgY29uc3QgV1RG
OjpTdHJpbmcmKQogCiBzdGF0aWMgTlNVSW50ZWdlciBtb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50
KGNvbnN0IFdlYkV2ZW50JiBldmVudCkKIHsKLSAgICByZXR1cm4gKGV2ZW50LnNoaWZ0S2V5KCkg
PyBOU1NoaWZ0S2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/IE5T
Q29udHJvbEtleU1hc2sgOiAwKQotICAgICAgICB8IChldmVudC5hbHRLZXkoKSA/IE5TQWx0ZXJu
YXRlS2V5TWFzayA6IDApCi0gICAgICAgIHwgKGV2ZW50Lm1ldGFLZXkoKSA/IE5TQ29tbWFuZEtl
eU1hc2sgOiAwKTsKKyAgICByZXR1cm4gKGV2ZW50LnNoaWZ0S2V5KCkgPyBOU0V2ZW50TW9kaWZp
ZXJGbGFnU2hpZnQgOiAwKQorICAgICAgICB8IChldmVudC5jb250cm9sS2V5KCkgPyBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29udHJvbCA6IDApCisgICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNF
dmVudE1vZGlmaWVyRmxhZ09wdGlvbiA6IDApCisgICAgICAgIHwgKGV2ZW50Lm1ldGFLZXkoKSA/
IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kIDogMCk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBn
ZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlw
ZSYgZXZlbnRUeXBlKQpAQCAtOTc1LDEwICs5NzUsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRU
eXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50
VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZURvd246CiAgICAgICAgIHN3aXRjaCAoc3RhdGlj
X2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBj
YXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBO
U0xlZnRNb3VzZURvd247CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd247CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3Vz
ZURvd247CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3du
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC05ODYsMTAgKzk4NiwxMCBAQCBzdGF0aWMgYm9vbCBnZXRFdmVu
dFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZl
bnRUeQogICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlVXA6CiAgICAgICAgIHN3aXRjaCAoc3RhdGlj
X2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBj
YXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBO
U0xlZnRNb3VzZVVwOworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91
c2VVcDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZl
bnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlVXA7
CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtOTk3LDEzICs5OTcsMTMgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJv
bVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAg
ICBjYXNlIFdlYkV2ZW50OjpNb3VzZU1vdmU6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8
Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdl
Yk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRN
b3VzZURyYWdnZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURyYWdnZWQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3Vz
ZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3Vz
ZURyYWdnZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
cmFnZ2VkOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VF
dmVudDo6Tm9CdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU01vdXNlTW92ZWQ7Cisg
ICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTE3NTYsMTEgKzE3NTYsMTEgQEAgYm9vbCBQREZQbHVnaW46OkhVRDo6bW91c2VFdmVu
dChQYWdlT3ZlcmxheSYsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCiAKICAgICBz
d2l0Y2ggKGV2ZW50LnR5cGUoKSkgewogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VNb3Zl
ZDoKLSAgICAgICAgcmV0dXJuIFtwZGZMYXllckNvbnRyb2xsZXIgbW91c2VEcmFnZ2VkOmV2ZW50
V2l0aFR5cGUoTlNMZWZ0TW91c2VEcmFnZ2VkKSBpbkhVRFdpdGhCb3VuZHM6SFVEUmVjdEluUm9v
dFZpZXdDb29yZGluYXRlc107CisgICAgICAgIHJldHVybiBbcGRmTGF5ZXJDb250cm9sbGVyIG1v
dXNlRHJhZ2dlZDpldmVudFdpdGhUeXBlKE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZCkgaW5I
VURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIGNhc2UgUGxh
dGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOgotICAgICAgICByZXR1cm4gW3BkZkxheWVyQ29udHJv
bGxlciBtb3VzZURvd246ZXZlbnRXaXRoVHlwZShOU0xlZnRNb3VzZURvd24pIGluSFVEV2l0aEJv
dW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKKyAgICAgICAgcmV0dXJuIFtwZGZM
YXllckNvbnRyb2xsZXIgbW91c2VEb3duOmV2ZW50V2l0aFR5cGUoTlNFdmVudFR5cGVMZWZ0TW91
c2VEb3duKSBpbkhVRFdpdGhCb3VuZHM6SFVEUmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CiAg
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOgotICAgICAgICByZXR1cm4gW3Bk
ZkxheWVyQ29udHJvbGxlciBtb3VzZVVwOmV2ZW50V2l0aFR5cGUoTlNMZWZ0TW91c2VVcCkgaW5I
VURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOworICAgICAgICByZXR1
cm4gW3BkZkxheWVyQ29udHJvbGxlciBtb3VzZVVwOmV2ZW50V2l0aFR5cGUoTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcCkgaW5IVURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNd
OwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRB
bm5vdGF0aW9uLm1tCmluZGV4IDZjNjBiZGRlOTVmZGQzMTdmNmI3MTRlMWY0NGY2ZWViMmYzM2Qz
MGIuLmJjZjljNTVlYTIzMzMzMDI1NmU2MTllNWVlNWJkYWRiNzY3MTJlM2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90
YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW5UZXh0QW5ub3RhdGlvbi5tbQpAQCAtNTMsMjEgKzUzLDE4IEBAIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcgY3NzQWxpZ25tZW50VmFsdWVGb3JO
U1RleHRBbGlnbm1lbnQoTlNUZXh0QWxpZ25tZW50IGFsaWdubWVudCkKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBzd2l0Y2ggKGFsaWdubWVudCkgewotICAgIGNh
c2UgTlNMZWZ0VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudExlZnQ6CiAg
ICAgICAgIHJldHVybiAibGVmdCI7Ci0gICAgY2FzZSBOU1JpZ2h0VGV4dEFsaWdubWVudDoKKyAg
ICBjYXNlIE5TVGV4dEFsaWdubWVudFJpZ2h0OgogICAgICAgICByZXR1cm4gInJpZ2h0IjsKLSAg
ICBjYXNlIE5TQ2VudGVyVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudENl
bnRlcjoKICAgICAgICAgcmV0dXJuICJjZW50ZXIiOwotICAgIGNhc2UgTlNKdXN0aWZpZWRUZXh0
QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0QWxpZ25tZW50SnVzdGlmaWVkOgogICAgICAgICBy
ZXR1cm4gImp1c3RpZnkiOwotICAgIGNhc2UgTlNOYXR1cmFsVGV4dEFsaWdubWVudDoKKyAgICBj
YXNlIE5TVGV4dEFsaWdubWVudE5hdHVyYWw6CiAgICAgICAgIHJldHVybiAiLXdlYmtpdC1zdGFy
dCI7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xp
ZW50TWFjLm1tCmluZGV4IGEzNmYzYjMyM2FiOTE2NTE0NzdiZDNjN2JlMjhjNmEyM2RlOWIxN2Qu
LmFmMjY5NWY0NDRiZTgxNzEyMjk5OGNhNTc3MjNiNjE5M2QwMTBmZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNjMsMTAgKzYzLDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8
U2hhcmVhYmxlQml0bWFwPiBjb252ZXJ0SW1hZ2VUb0JpdG1hcChOU0ltYWdlICppbWFnZSwgY29u
c3QgSW4KICAgICBSZXRhaW5QdHI8TlNHcmFwaGljc0NvbnRleHQ+IHNhdmVkQ29udGV4dCA9IFtO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07CiAKICAgICBbTlNHcmFwaGljc0NvbnRl
eHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdp
dGhHcmFwaGljc1BvcnQ6Z3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVk
OllFU11dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtpbWFnZSBk
cmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFw
LT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9z
aXRlU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5TTWFr
ZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFwLT5zaXplKCkuaGVpZ2h0
KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25T
b3VyY2VPdmVyIGZyYWN0aW9uOjEgcmVzcGVjdEZsaXBwZWQ6WUVTIGhpbnRzOm5pbF07CiAKICAg
ICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6c2F2ZWRDb250ZXh0LmdldCgp
XTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDJhMDdkODIyYzg5NjRmMjg3YzY2NGE5NTdjNDlkMjJlOTMyMjViYTIuLjFjZTUzMmJlYjUyZjk1
MmY3Mjk0ZDc3NjVkNDEzOWQwYTI4MDY4ODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxNi0xMS0wOCAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVw
cmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1l
cmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRp
bmdDb250cm9sbGVyLm1tOgorICAgICAgICAoZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rp
b24pOgorICAgICAgICAobW9kaWZpZXJGbGFncyk6CisgICAgICAgICgtW0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIgbW91c2VNb3ZlVG9YOlk6XSk6CisgICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRy
b2xsZXIgY29udGV4dENsaWNrXSk6CisgICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIg
a2V5RG93bjp3aXRoTW9kaWZpZXJzOndpdGhMb2NhdGlvbjpdKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tOgorICAgICAgICAoLVtUZXh0SW5wdXRD
b250cm9sbGVyIGludGVycHJldEtleUV2ZW50czp3aXRoU2VuZGVyOl0pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbToKKyAg
ICAgICAgKHNpbXVsYXRlQ29tbWFuZEFycm93KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9GdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxs
c2NyZWVuVG9wQ29udGVudEluc2V0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvU2hvdWxkT3BlbkV4
dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9ucy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1VzZXJJbml0aWF0ZWRBY3Rpb25J
bk5hdmlnYXRpb25BY3Rpb24ubW06CisgICAgICAgIChVc2VySW5pdGlhdGVkQWN0aW9uVGVzdDo6
U2V0VXApOgorICAgICAgICAoVXNlckluaXRpYXRlZEFjdGlvblRlc3Q6OmNsaWNrKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BY2NlcHRzRmlyc3RNb3VzZS5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OkFjY2VwdHNGaXJzdE1vdXNlOjpydW5UZXN0KToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlVUkwubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpjb250ZXh0TWVudUNvcHlMaW5rKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRl
eHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3MubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUlu
aXRpYWxGcmFtZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkZ1bGxzY3JlZW5ab29tSW5p
dGlhbEZyYW1lOjpydW5UZXN0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9N
ZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtVXRpbGl0aWVzTWFjLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6aXNLZXlEb3duKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmluaXRpYWxpemUpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6UGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVNwYWNlYmFyS2V5UHJlc3MpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVJpZ2h0Q2xpY2spOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZU1vdXNlTW92ZSk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpldmVudFR5cGVGb3JCdXR0b24pOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6bW9kaWZpZXJGbGFnc0ZvcldLTW9kaWZpZXJzKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tOgorICAgICAgICAoX19zaW11bGF0
ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrKToKKyAgICAgICAgKC1bVGVzdFdLV2Vi
Vmlld0hvc3RXaW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTpdKToKKyAg
ICAgICAgKC1bVGVzdFdLV2ViVmlldyBfc2V0VXBUZXN0V2luZG93Ol0pOgorICAgICAgICAoLVtU
ZXN0V0tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbToKKyAgICAgICAgKFdUUjo6ZXZlbnRUeXBlRm9yTW91
c2VCdXR0b25BbmRBY3Rpb24pOgorICAgICAgICAoV1RSOjpidWlsZE1vZGlmaWVyRmxhZ3MpOgor
ICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpzZW5kTW91c2VEb3duVG9TdGFydFByZXNz
dXJlRXZlbnRzKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VGb3JjZUNs
aWNrKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3Vz
ZUZvcmNlQ2xpY2spOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZU1vdmVU
byk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OmtleURvd24pOgorICAgICAgICAo
V1RSOjpFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFj
Lm1tOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW06CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRW
YWx1ZXMpOgorCiAyMDE2LTExLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV1RGOjpQYXJraW5nTG90IHNob3VsZCBzdG9wIHVzaW5nIHN0ZDo6Y2hyb25vIGJl
Y2F1c2Ugc3RkOjpjaHJvbm86OmR1cmF0aW9uIGNhc3RzIGFyZSBwcm9uZSB0byBvdmVyZmxvd3MK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9s
bGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIu
bW0KaW5kZXggZTFiM2VmYTk2MjExOGY5MTMwYWU4ODdhMTA5ODRmNjFjM2M5YThlNi4uNjVlMmMx
ZjViNTZjYjNkZGUzNDU5N2Y1NDExYTUxNDY1YTcwNzkyMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KQEAgLTQzLDYgKzQzLDcg
QEAKIAogI2lmICFQTEFURk9STShJT1MpCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+IC8vIGZv
ciBHZXRDdXJyZW50RXZlbnRUaW1lKCkKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJp
bGl0eURlY2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zNTUs
MzMgKzM1NiwzMyBAQCAtICh2b2lkKWNsZWFyS2lsbFJpbmcKIHN0YXRpYyBOU0V2ZW50VHlwZSBl
dmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBh
Y3Rpb24pCiB7CiAgICAgc3dpdGNoIChidXR0b24pIHsKLSAgICAgICAgY2FzZSBMZWZ0TW91c2VC
dXR0b246Ci0gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgICAgICAgICAgICAgIGNh
c2UgTW91c2VEb3duOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3du
OwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIE5TTGVmdE1vdXNlVXA7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBOU0xlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIGNhc2UgUmlnaHRNb3VzZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRjaCAo
YWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBOU1JpZ2h0TW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91
c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TUmlnaHRNb3VzZVVwOwotICAgICAg
ICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
TlNSaWdodE1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURv
d246Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU090aGVyTW91c2VEb3duOwotICAgICAg
ICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3Ro
ZXJNb3VzZVVwOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gTlNPdGhlck1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KKyAg
ICBjYXNlIExlZnRNb3VzZUJ1dHRvbjoKKyAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICAg
ICAgY2FzZSBNb3VzZURvd246CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91
c2VEb3duOworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVu
dFR5cGVMZWZ0TW91c2VVcDsKKyAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAgICAg
ICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICB9CisgICAgY2Fz
ZSBSaWdodE1vdXNlQnV0dG9uOgorICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBj
YXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duOworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5
cGVSaWdodE1vdXNlVXA7CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAg
cmV0dXJuIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KKyAgICBkZWZh
dWx0OgorICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoK
KyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOworICAgICAgICBj
YXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7
CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KICAgICB9CiAgICAgYXNzZXJ0KDApOwog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0V2ZW50VHlwZT4oMCk7CkBAIC00MzMsMTEgKzQzNCwx
MSBAQCAtICh2b2lkKXVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b246KGludClidXR0b25OdW1iZXIK
IHN0YXRpYyBpbnQgbW9kaWZpZXJGbGFncyhjb25zdCBOU1N0cmluZyogbW9kaWZpZXJOYW1lKQog
ewogI2lmICFQTEFURk9STShJT1MpCi0gICAgY29uc3QgaW50IGNvbnRyb2xLZXlNYXNrID0gTlND
b250cm9sS2V5TWFzazsKLSAgICBjb25zdCBpbnQgc2hpZnRLZXlNYXNrID0gTlNTaGlmdEtleU1h
c2s7Ci0gICAgY29uc3QgaW50IGFsdGVybmF0ZUtleU1hc2sgPSBOU0FsdGVybmF0ZUtleU1hc2s7
Ci0gICAgY29uc3QgaW50IGNvbW1hbmRLZXlNYXNrID0gTlNDb21tYW5kS2V5TWFzazsKLSAgICBj
b25zdCBpbnQgY2Fwc0xvY2tLZXlNYXNrID0gTlNBbHBoYVNoaWZ0S2V5TWFzazsKKyAgICBjb25z
dCBpbnQgY29udHJvbEtleU1hc2sgPSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKKyAgICBj
b25zdCBpbnQgc2hpZnRLZXlNYXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAgIGNv
bnN0IGludCBhbHRlcm5hdGVLZXlNYXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAg
ICBjb25zdCBpbnQgY29tbWFuZEtleU1hc2sgPSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsK
KyAgICBjb25zdCBpbnQgY2Fwc0xvY2tLZXlNYXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNM
b2NrOwogI2Vsc2UKICAgICBjb25zdCBpbnQgY29udHJvbEtleU1hc2sgPSBXZWJFdmVudEZsYWdN
YXNrQ29udHJvbDsKICAgICBjb25zdCBpbnQgc2hpZnRLZXlNYXNrID0gV2ViRXZlbnRGbGFnTWFz
a1NoaWZ0OwpAQCAtNjQzLDcgKzY0NCw3IEBAIC0gKHZvaWQpbW91c2VNb3ZlVG9YOihpbnQpeCBZ
OihpbnQpeQogICAgIE5TVmlldyAqdmlldyA9IFttYWluRnJhbWUgd2ViVmlld107CiAjaWYgIVBM
QVRGT1JNKElPUykKICAgICBsYXN0TW91c2VQb3NpdGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDpO
U01ha2VQb2ludCh4LCBbdmlldyBmcmFtZV0uc2l6ZS5oZWlnaHQgLSB5KSB0b1ZpZXc6bmlsXTsK
LSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobGVmdE1v
dXNlQnV0dG9uRG93biA/IE5TTGVmdE1vdXNlRHJhZ2dlZCA6IE5TTW91c2VNb3ZlZCkKKyAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0
dG9uRG93biA/IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZCA6IE5TRXZlbnRUeXBlTW91c2VN
b3ZlZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjps
YXN0TW91c2VQb3NpdGlvbiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9k
aWZpZXJGbGFnczowIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVudFRpbWVdCkBAIC03NzcsNyArNzc4LDcgQEAgLSAoTlNB
cnJheSAqKWNvbnRleHRDbGljawogICAgIFtbW21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50
Vmlld10gbGF5b3V0XTsKICAgICBbc2VsZiB1cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uOlJpZ2h0
TW91c2VCdXR0b25dOwogCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJl
bnRFdmVudFRpbWVdCkBAIC0xMDEzLDcgKzEwMTQsNyBAQCAtICh2b2lkKWtleURvd246KE5TU3Ry
aW5nICopY2hhcmFjdGVyIHdpdGhNb2RpZmllcnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVy
cwogCiAgICAgaWYgKFtjaGFyYWN0ZXIgbGVuZ3RoXSA9PSAxICYmIFtjaGFyYWN0ZXIgY2hhcmFj
dGVyQXRJbmRleDowXSA+PSAnQScgJiYgW2NoYXJhY3RlciBjaGFyYWN0ZXJBdEluZGV4OjBdIDw9
ICdaJykgewogI2lmICFQTEFURk9STShJT1MpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNT
aGlmdEtleU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z1NoaWZ0OwogI2Vsc2UKICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBXZWJFdmVudEZsYWdNYXNr
QWxwaGFTaGlmdDsKICNlbmRpZgpAQCAtMTAyMywxMiArMTAyNCwxMiBAQCAtICh2b2lkKWtleURv
d246KE5TU3RyaW5nICopY2hhcmFjdGVyIHdpdGhNb2RpZmllcnM6KFdlYlNjcmlwdE9iamVjdCAq
KW1vZGlmaWVycwogICAgIG1vZGlmaWVyRmxhZ3MgfD0gYnVpbGRNb2RpZmllckZsYWdzKG1vZGlm
aWVycyk7CiAKICAgICBpZiAobG9jYXRpb24gPT0gRE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpCi0g
ICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNOdW1lcmljUGFkS2V5TWFzazsKKyAgICAgICAgbW9k
aWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKIAogICAgIFtbW21h
aW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKIAogI2lmICFQTEFURk9S
TShJT1MpCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5T
S2V5RG93bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZUtleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFr
ZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOm1vZGlm
aWVyRmxhZ3MKICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbc2VsZiBjdXJyZW50
RXZlbnRUaW1lXQpAQCAtMTA2MCw3ICsxMDYxLDcgQEAgLSAodm9pZClrZXlEb3duOihOU1N0cmlu
ZyAqKWNoYXJhY3RlciB3aXRoTW9kaWZpZXJzOihXZWJTY3JpcHRPYmplY3QgKiltb2RpZmllcnMK
ICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNLZXlVcAorICAgIGV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZUtleVVwCiAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01h
a2VQb2ludCg1LCA1KQogICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczptb2Rp
ZmllckZsYWdzCiAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W3NlbGYgY3VycmVu
dEV2ZW50VGltZV0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5w
dXRDb250cm9sbGVyLm0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJv
bGxlci5tCmluZGV4IDVlYzJhOTk2ZjlhNGMxMmNjMzg5NzBhYjVkMGIwMTFkMDAwYjdiZWUuLjc0
ZjFiMTEzNGRmNmU5Njg5ZDBmY2UyZjRhNTE3NGIwNTA2NGMyZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXIubQpAQCAtNTEsNiArNTEsNyBAQAog
I2ltcG9ydCA8V2ViS2l0L1dlYlNjcmlwdE9iamVjdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlR5
cGVzSW50ZXJuYWwuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3Lmg+CisjaW1wb3J0IDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBUZXh0
SW5wdXRDb250cm9sbGVyIChEdW1wUmVuZGVyVHJlZUlucHV0TWV0aG9kSGFuZGxlcikKIC0gKEJP
T0wpaW50ZXJwcmV0S2V5RXZlbnRzOihOU0FycmF5ICopZXZlbnRBcnJheSB3aXRoU2VuZGVyOihX
ZWJIVE1MVmlldyAqKXNlbmRlcjsKQEAgLTUwNywyMSArNTA4LDIxIEBAIC0gKEJPT0wpaW50ZXJw
cmV0S2V5RXZlbnRzOihOU0FycmF5ICopZXZlbnRBcnJheSB3aXRoU2VuZGVyOihXZWJIVE1MVmll
dyAqKXNlbmRlCiAgICAgTlNFdmVudCAqZXZlbnQgPSBbZXZlbnRBcnJheSBvYmplY3RBdEluZGV4
OjBdOwogICAgIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MgPSBbZXZlbnQgbW9kaWZpZXJGbGFnc107
IAogICAgIE5TTXV0YWJsZUFycmF5ICptb2RpZmllcnMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0XTsKLSAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWxwaGFTaGlmdEtleU1hc2spCisg
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spCiAgICAg
ICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAiTlNBbHBoYVNoaWZ0S2V5TWFzayJdOwotICAgIGlm
IChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3Mg
JiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0
OkAiTlNTaGlmdEtleU1hc2siXTsKLSAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQ29udHJvbEtl
eU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bCkKICAgICAgICAgW21vZGlmaWVycyBhZGRPYmplY3Q6QCJOU0NvbnRyb2xLZXlNYXNrIl07Ci0g
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgaWYgKG1vZGlm
aWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBbbW9kaWZpZXJz
IGFkZE9iamVjdDpAIk5TQWx0ZXJuYXRlS2V5TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdz
ICYgTlNDb21tYW5kS2V5TWFzaykKKyAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdDb21tYW5kKQogICAgICAgICBbbW9kaWZpZXJzIGFkZE9iamVjdDpAIk5TQ29tbWFu
ZEtleU1hc2siXTsKLSAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TTnVtZXJpY1BhZEtleU1hc2sp
CisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCkK
ICAgICAgICAgW21vZGlmaWVycyBhZGRPYmplY3Q6QCJOU051bWVyaWNQYWRLZXlNYXNrIl07Ci0g
ICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0hlbHBLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZs
YWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHApCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2Jq
ZWN0OkAiTlNIZWxwS2V5TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNGdW5jdGlv
bktleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVu
Y3Rpb24pCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAiTlNGdW5jdGlvbktleU1hc2si
XTsKICAgICAKICAgICBXZWJTY3JpcHRPYmplY3QqIGV2ZW50UGFyYW0gPSBbaW5wdXRNZXRob2RI
YW5kbGVyIGV2YWx1YXRlV2ViU2NyaXB0OkAibmV3IE9iamVjdCgpOyJdOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQ29tbWFuZEJhY2tGb3J3YXJk
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQ29tbWFuZEJhY2tG
b3J3YXJkLm1tCmluZGV4IDY3ODY3MDBlZDIzZDdhYWE4MWMxZTE2MDFiNjlmZDNhMjFkNWVjNTIu
LmFkMDRjNWVjODRmOGJmNGY1OWZiZDMxNjEwZmZjMmU4MThhNjliZWYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Db21tYW5kQmFj
a0ZvcndhcmQubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0
ci5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9u
cy5oPgogCiBAaW50ZXJmYWNlIENvbW1hbmRCYWNrRm9yd2FyZE9mZnNjcmVlbldpbmRvdyA6IE5T
V2luZG93CiBAZW5kCkBAIC02Miw5ICs2Myw5IEBAIHN0YXRpYyB2b2lkIHNpbXVsYXRlQ29tbWFu
ZEFycm93KE5TVmlldyAqdmlldywgQXJyb3dEaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIE5TU3Ry
aW5nICpldmVudENoYXJhY3RlciA9IChkaXJlY3Rpb24gPT0gTGVmdCkgPyBbTlNTdHJpbmcgc3Ry
aW5nV2l0aENoYXJhY3RlcnM6JmxlZnQgbGVuZ3RoOjFdIDogW05TU3RyaW5nIHN0cmluZ1dpdGhD
aGFyYWN0ZXJzOiZyaWdodCBsZW5ndGg6MV07CiAgICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9
IChkaXJlY3Rpb24gPT0gTGVmdCkgPyAweDdCIDogMHg3QzsKIAotICAgIE5TRXZlbnQgKmV2ZW50
ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleURvd24KKyAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOk5TQ29tbWFu
ZEtleU1hc2sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOlt2aWV3LndpbmRvdyB3aW5kb3dOdW1iZXJd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OltOU0dyYXBo
aWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0KQEAgLTc1LDkgKzc2LDkgQEAgc3RhdGljIHZvaWQg
c2ltdWxhdGVDb21tYW5kQXJyb3coTlNWaWV3ICp2aWV3LCBBcnJvd0RpcmVjdGlvbiBkaXJlY3Rp
b24pCiAKICAgICBbdmlldyBrZXlEb3duOmV2ZW50XTsKIAotICAgIGV2ZW50ID0gW05TRXZlbnQg
a2V5RXZlbnRXaXRoVHlwZTpOU0tleVVwCisgICAgZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdp
dGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb246TlNNYWtlUG9pbnQoNSwgNSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6TlNDb21tYW5kS2V5TWFzaworICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJG
bGFnczpOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aW5kb3dOdW1iZXI6W3ZpZXcud2luZG93IHdpbmRvd051bWJlcl0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250
ZXh0XQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
RnVsbHNjcmVlbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCmluZGV4IGViZTg4YjZhNDJjZTJhMWY0MTVjMzcw
OTUzZTc0YWEyNDBmOWI3ZmMuLjg0ZGNiZTJmMjI1NmNlOWVmZGYyOGVjYWFmNDgzMTVmZDQzZTY1
NGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1
bGxzY3JlZW5EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
PFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRnVsbHNjcmVl
bkRlbGVnYXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogc3RhdGljIGJvb2wgcmVjZWl2
ZWRMb2FkZWRNZXNzYWdlOwogc3RhdGljIGJvb2wgcmVjZWl2ZWRXaWxsRW50ZXJGdWxsc2NyZWVu
TWVzc2FnZTsKQEAgLTgzLDE0ICs4NCwxNCBAQCBURVNUKEZ1bGxzY3JlZW4sIERlbGVnYXRlKQog
ICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3Nh
Z2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAImZ1bGxzY3JlZW5DaGFuZ2VIYW5kbGVyIl07
CiAgICAgW3dlYlZpZXcgX3NldEZ1bGxzY3JlZW5EZWxlZ2F0ZTpoYW5kbGVyLmdldCgpXTsKIAot
ICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9j
XSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJs
ZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsK
KyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dKTsKICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgp
XTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkZ1bGxzY3JlZW5E
ZWxlZ2F0ZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRMb2FkZWRNZXNzYWdlKTsKIAotICAg
IE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNl
RG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOworICAgIE5TRXZlbnQgKmV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2Nh
dGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93
TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAg
Y2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpldmVudF07
CiAKICAgICBBU1NFUlRfRkFMU0UoW3dlYlZpZXcgX2lzSW5GdWxsc2NyZWVuXSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuTGF5
b3V0Q29uc3RyYWludHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9GdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMubW0KaW5kZXggNGRlYTBiYzNmZGUwYTEyMDZm
MTdmMjBlMmFlOWFmZThhZmY4ZDM4NS4uYmMzMGI2OGY1Y2MzNTMwYTllMWMwMDBkYWExM2JmMzI2
MTVkYzg4YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5tbQpAQCAt
MzIsNiArMzIsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKIHN0YXRpYyBib29sIHJlY2VpdmVkTG9hZGVkTWVzc2FnZTsKIHN0YXRpYyBi
b29sIHJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2U7CkBAIC02MCw3ICs2MSw3IEBAIFRF
U1QoRnVsbHNjcmVlbiwgTGF5b3V0Q29uc3RyYWludHMpCiAgICAgUmV0YWluUHRyPEZ1bGxzY3Jl
ZW5TdGF0ZUNoYW5nZU1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW0Z1bGxzY3Jl
ZW5TdGF0ZUNoYW5nZU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1
cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFu
ZGxlci5nZXQoKSBuYW1lOkAiZnVsbHNjcmVlblN0YXRlQ2hhbmdlSGFuZGxlciJdOwogCi0gICAg
UmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGlu
aXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NX
aW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworICAg
IFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNXaW5kb3dTdHls
ZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10p
OwogICAgIHdlYlZpZXcuZ2V0KCkudHJhbnNsYXRlc0F1dG9yZXNpemluZ01hc2tJbnRvQ29uc3Ry
YWludHMgPSBOTzsKICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3
LmdldCgpXTsKICAgICAKQEAgLTc0LDE0ICs3NSwxNCBAQCBURVNUKEZ1bGxzY3JlZW4sIExheW91
dENvbnN0cmFpbnRzKQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRMb2FkZWRNZXNzYWdlKTsKIAotICAgIE5T
RXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93
biBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAg
d2luZG93TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVt
YmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlv
bjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVt
YmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xp
Y2tDb3VudDowIHByZXNzdXJlOjBdOwogICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpldmVudF07CiAK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1l
c3NhZ2UpOwogICAgIAogICAgIHJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2UgPSBmYWxz
ZTsKICAgICAKLSAgICBOU0V2ZW50ICpleGl0RlNFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZp
ZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVt
YmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKKyAg
ICBOU0V2ZW50ICpleGl0RlNFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVy
IGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBb
d2ViVmlldyBtb3VzZURvd246ZXhpdEZTRXZlbnRdOwogICAgIAogICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdlTWVzc2FnZSk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuVG9wQ29u
dGVudEluc2V0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVs
bHNjcmVlblRvcENvbnRlbnRJbnNldC5tbQppbmRleCBiZjFkMGNiYzJmNDVlNGZmYjU2MmQ0ZTY3
NGFkMGUwZjdhMzc1YTYxLi4wMWY2ZTg4OTNjMWYzNzI3M2Y3OTgwMjM3NzhjZGM1MjFlZWJkMzhm
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxs
c2NyZWVuVG9wQ29udGVudEluc2V0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW0KQEAgLTMyLDYgKzMyLDcg
QEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
CiBzdGF0aWMgYm9vbCByZWNlaXZlZExvYWRlZE1lc3NhZ2U7CiBzdGF0aWMgYm9vbCByZWNlaXZl
ZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlOwpAQCAtNjEsMTQgKzYyLDE0IEBAIFRFU1QoRnVsbHNj
cmVlbiwgVG9wQ29udGVudEluc2V0KQogICAgIFJldGFpblB0cjxGdWxsc2NyZWVuQ2hhbmdlTWVz
c2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbRnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2VI
YW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29u
dHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAiZnVs
bHNjcmVlbkNoYW5nZUhhbmRsZXIiXTsKIAotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93
ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3
IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRv
dyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmll
dyBmcmFtZV0gc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBbW3dpbmRvdyBjb250ZW50Vmll
d10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIkZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkTG9hZGVkTWVzc2FnZSk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9p
bnQoNSwgNSkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cu
Z2V0KCkud2luZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBw
cmVzc3VyZTowXTsKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkg
bW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2lu
ZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTow
XTsKICAgICBbd2ViVmlldyBtb3VzZURvd246ZXZlbnRdOwogCiAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWNlaXZlZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1Nob3VsZE9wZW5FeHRlcm5h
bFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9TaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tCmlu
ZGV4IDNhYmE5NzA4YjIzYzFmNDQxNTA5YjBlNzk2Yzk5NzNjMzFhMWZkODEuLjFhYzNkOTIzZGEx
NDcxNGY3ZGE5ZjgyOTU2Y2NiYjVkYzQwM2M3M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRv
d0FjdGlvbnMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
U2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9ucy5tbQpAQCAtMzEsNiArMzEs
NyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaD4KICNpbXBv
cnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAog
I2lmIFdLX0FQSV9FTkFCTEVECiAKQEAgLTczLDcgKzc0LDcgQEAgVEVTVChXZWJLaXQyLCBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzSW5XaW5kb3dPcGVuKQogewogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKIAotICAgIGF1dG8gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9j
XSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJs
ZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7
CisgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRl
cmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogICAgIFtb
d2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOwogCiAgICAgYXV0
byBjb250cm9sbGVyID0gYWRvcHROUyhbW1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRv
d0FjdGlvbnNDb250cm9sbGVyIGFsbG9jXSBpbml0XSk7CkBAIC04Niw4ICs4Nyw4IEBAIFRFU1Qo
V2ViS2l0MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luV2luZG93T3BlbikKIAogICAgIE5TUG9p
bnQgY2xpY2tQb2ludCA9IE5TTWFrZVBvaW50KDEwMCwgMTAwKTsKIAotICAgIFtbd2ViVmlldyBo
aXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVz
dGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZl
bnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFtbd2ViVmlldyBoaXRU
ZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVm
dE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAg
d2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJl
cjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xp
Y2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0
YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVu
dE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRl
c3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVu
dFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmNyZWF0ZWRXZWJWaWV3KTsKICAgICBjcmVhdGVkV2ViVmlldyA9IGZhbHNl
OwogCkBAIC0xMDgsOCArMTA5LDggQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzSW5XaW5kb3dPcGVuKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRO
YXZpZ2F0aW9uKTsKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKIAotICAgIFtbd2Vi
VmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczow
IHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpu
aWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFtbd2ViVmll
dyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBl
Ok5TTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0
YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVu
dE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRl
c3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5p
bCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3
IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6
MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6
bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmNyZWF0ZWRXZWJWaWV3KTsKICAgICBjcmVhdGVkV2ViVmlldyA9
IGZhbHNlOwogCkBAIC0xMzQsNyArMTM1LDcgQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzSW5UYXJnZXRlZExpbmspCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KV0pOwogCi0gICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRX
aXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5k
b3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKKyAgICBh
dXRvIHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgW1t3aW5kb3cg
Y29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAKICAgICBhdXRvIGNvbnRy
b2xsZXIgPSBhZG9wdE5TKFtbU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9u
c0NvbnRyb2xsZXIgYWxsb2NdIGluaXRdKTsKQEAgLTE0OCw4ICsxNDksOCBAQCBURVNUKFdlYktp
dDIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJblRhcmdldGVkTGluaykKICAgICBOU1BvaW50IGNs
aWNrUG9pbnQgPSBOU01ha2VQb2ludCgxMDAsIDEwMCk7CiAKICAgICBkZWNpZGVkUG9saWN5ID0g
ZmFsc2U7Ci0gICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93
TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTox
XV07Ci0gICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJd
IGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAg
ICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50
IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dO
dW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFd
XTsKKyAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9p
bnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRv
d051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6
MV1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CiAgICAg
ZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogCkBAIC0xNzgsOCArMTc5LDggQEAgVEVTVChXZWJLaXQy
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5UYXJnZXRlZExpbmspCiAgICAgZmluaXNoZWROYXZp
Z2F0aW9uID0gZmFsc2U7CiAKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7Ci0gICAgW1t3ZWJW
aWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5p
bCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07Ci0gICAgW1t3ZWJWaWV3
IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3Rh
bXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAgICBbW3dlYlZpZXcgaGl0VGVz
dDpjbGlja1BvaW50XSBtb3VzZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0
aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmls
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAgICBbW3dlYlZpZXcg
aGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczow
IHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpu
aWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwogICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CiAgICAgZGVjaWRlZFBvbGljeSA9IGZh
bHNlOwogCkBAIC0yMTAsNyArMjExLDcgQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzSW5UYXJnZXRlZExpbmspCiBURVNUKFdlYktpdDIsIFJlc3RvcmVTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5QWZ0ZXJDcmFzaCkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApXSk7Ci0gICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRX
aXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5k
b3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKKyAgICBh
dXRvIHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgW1t3aW5kb3cg
Y29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAgICAgYXV0byBjb250cm9s
bGVyID0gYWRvcHROUyhbW1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnND
b250cm9sbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVn
YXRlOmNvbnRyb2xsZXIuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1VzZXJJbml0aWF0ZWRB
Y3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0KaW5kZXggNmZkYzA3NWQ1MTUzNjY4NTZmZDIzNWJk
YjY5ZGQzYjJjNTgyZTNiZC4uYzg0NGIyZTI1YmJjZmRmYmVlNWI4NjQ4M2Y2Y2I0MDMxZDBmMjk5
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVXNl
ckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Vc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9u
QWN0aW9uLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJp
dmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJJbml0aWF0ZWRBY3Rpb24uaD4KICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIApAQCAtNzIsNyArNzMsNyBA
QCBwdWJsaWM6CiAgICAgewogICAgICAgICB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwogCi0gICAg
ICAgIHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2lu
ZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOworICAgICAgICB3aW5kb3cgPSBh
ZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJh
bWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogICAgICAgICBbW3dpbmRvdyBjb250ZW50Vmll
d10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKIAogICAgICAgICBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tVc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9uRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKQEAgLTk5LDggKzEwMCw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIE5TUG9p
bnQgY2xpY2tQb2ludCA9IE5TTWFrZVBvaW50KDEwMCwgMTAwKTsKIAotICAgICAgICBbW3dlYlZp
ZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0
aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmls
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKLSAgICAgICAgW1t3ZWJW
aWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAgICAgICAgW1t3ZWJWaWV3
IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZs
YWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250
ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgICAg
IFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVy
XSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CiAg
ICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWNj
ZXB0c0ZpcnN0TW91c2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BY2NlcHRz
Rmlyc3RNb3VzZS5tbQppbmRleCBkZWM3ODg4MDRmNjViNDE2NjFlOWU5ZDBmM2ZmMGQ2YWZlZTQ3
YjIyLi43YzM0NDk0NTUwZjcyNDViMTBlMDczYjQ4NzE4ZDExOWEwZGI0ZDQwIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BY2NlcHRzRmlyc3RNb3VzZS5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BY2NlcHRzRmlyc3RNb3VzZS5tbQpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldlYktpdEFnbm9zdGljVGVzdC5oIgogCiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFRlc3RXZWJLaXRB
UElOU0FwcGxpY2F0aW9uRGV0YWlscykKIC0gKHZvaWQpX3NldEN1cnJlbnRFdmVudDooTlNFdmVu
dCAqKWV2ZW50OwpAQCAtNDcsMTcgKzQ4LDE3IEBAIHB1YmxpYzoKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBWaWV3Pgogdm9pZCBBY2NlcHRzRmlyc3RNb3VzZTo6cnVuVGVzdChWaWV3IHZpZXcpCiB7Ci0g
ICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6dmlldy5mcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2lu
ZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CisgICAg
UmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGlu
aXRXaXRoQ29udGVudFJlY3Q6dmlldy5mcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tC
b3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKICAg
ICBbW3dpbmRvdy5nZXQoKSBjb250ZW50Vmlld10gYWRkU3Vidmlldzp2aWV3XTsKIAogICAgIENH
RmxvYXQgdmlld0hlaWdodCA9IHZpZXcuYm91bmRzLnNpemUuaGVpZ2h0OwogCiAgICAgTlNQb2lu
dCBwb2ludEluc2lkZVNlbGVjdGlvbiA9IE5TTWFrZVBvaW50KDUwLCB2aWV3SGVpZ2h0IC0gNTAp
OwotICAgIE5TRXZlbnQgKm1vdXNlRXZlbnRJbnNpZGVTZWxlY3Rpb24gPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50SW5zaWRlU2VsZWN0
aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdy5nZXQo
KSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHBy
ZXNzdXJlOjFdOworICAgIE5TRXZlbnQgKm1vdXNlRXZlbnRJbnNpZGVTZWxlY3Rpb24gPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9u
OnBvaW50SW5zaWRlU2VsZWN0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dO
dW1iZXI6W3dpbmRvdy5nZXQoKSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVy
OjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwogICAgIEVYUEVDVF9UUlVFKFtbdmlldyBoaXRU
ZXN0OnBvaW50SW5zaWRlU2VsZWN0aW9uXSBhY2NlcHRzRmlyc3RNb3VzZTptb3VzZUV2ZW50SW5z
aWRlU2VsZWN0aW9uXSk7CiAKICAgICBOU1BvaW50IHBvaW50T3V0c2lkZVNlbGVjdGlvbiA9IE5T
TWFrZVBvaW50KDUwLCB2aWV3SGVpZ2h0IC0gMTUwKTsKLSAgICBOU0V2ZW50ICptb3VzZUV2ZW50
T3V0c2lkZVNlbGVjdGlvbiA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3Vz
ZURvd24gbG9jYXRpb246cG9pbnRPdXRzaWRlU2VsZWN0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdy5nZXQoKSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6
bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOworICAgIE5TRXZlbnQg
Km1vdXNlRXZlbnRPdXRzaWRlU2VsZWN0aW9uID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBl
Ok5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpwb2ludE91dHNpZGVTZWxlY3Rpb24g
bW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93LmdldCgpIHdp
bmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1
cmU6MV07CiAgICAgRVhQRUNUX0ZBTFNFKFtbdmlldyBoaXRUZXN0OnBvaW50SW5zaWRlU2VsZWN0
aW9uXSBhY2NlcHRzRmlyc3RNb3VzZTptb3VzZUV2ZW50T3V0c2lkZVNlbGVjdGlvbl0pOwogfQog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNh
bkNvcHlVUkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNh
bkNvcHlVUkwubW0KaW5kZXggOGRhYjYzNzgwODlmNzk5NTUxZTE4YmY3Yjc1MGVkOGYzMjRjZmNh
ZC4uZDk1NzYzOTQ0YzZmOTJlYzU0ZjM3MjIzYTllNTY5ODdjNGM2MjFlMCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5t
bQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViS2l0L0RPTS5oPgogI2ltcG9ydCA8Q2Fy
Ym9uL0NhcmJvbi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIAogQGludGVyZmFjZSBDb250
ZXh0TWVudUNhbkNvcHlVUkxEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXZWJGcmFtZUxvYWREZWxlZ2F0
ZT4gewpAQCAtNjEsNyArNjIsNyBAQCBzdGF0aWMgdm9pZCBjb250ZXh0TWVudUNvcHlMaW5rKFdl
YlZpZXcqIHdlYlZpZXcsIGludCBpdGVtSW5kZXgpCiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQg
KmFuY2hvciA9IChET01IVE1MQW5jaG9yRWxlbWVudCAqKVtbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5
U2VsZWN0b3JBbGw6QCJhIl0gaXRlbTppdGVtSW5kZXhdOwogCiAgICAgTlNXaW5kb3cgKndpbmRv
dyA9IFt3ZWJWaWV3IHdpbmRvd107Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludChh
bmNob3Iub2Zmc2V0TGVmdCArIGFuY2hvci5vZmZzZXRXaWR0aCAvIDIsIHdpbmRvdy5mcmFtZS5z
aXplLmhlaWdodCAtIChhbmNob3Iub2Zmc2V0VG9wICsgYW5jaG9yLm9mZnNldEhlaWdodCAvIDIp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50
RXZlbnRUaW1lKCkKQEAgLTg5LDcgKzkwLDcgQEAgc3RhdGljIHZvaWQgY29udGV4dE1lbnVDb3B5
TGluayhXZWJWaWV3KiB3ZWJWaWV3LCBpbnQgaXRlbUluZGV4KQogVEVTVChXZWJLaXQxLCBDb250
ZXh0TWVudUNhbkNvcHlVUkwpCiB7CiAgICAgUmV0YWluUHRyPFdlYlZpZXc+IHdlYlZpZXcgPSBh
ZG9wdE5TKFtbV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsMCw4MDAs
NjAwKSBmcmFtZU5hbWU6bmlsIGdyb3VwTmFtZTpuaWxdKTsKLSAgICBSZXRhaW5QdHI8TlNXaW5k
b3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVj
dDpOU01ha2VSZWN0KDEwMCwgMTAwLCA4MDAsIDYwMCkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dp
bmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOworICAg
IFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMTAwLCAxMDAsIDgwMCwgNjAwKSBzdHlsZU1h
c2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZm
ZXJlZCBkZWZlcjpZRVNdKTsKICAgICBSZXRhaW5QdHI8Q29udGV4dE1lbnVDYW5Db3B5VVJMRGVs
ZWdhdGU+IGRlbGVnYXRlID0gYWRvcHROUyhbW0NvbnRleHRNZW51Q2FuQ29weVVSTERlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CiAKICAgICBbd2luZG93LmdldCgpLmNvbnRlbnRWaWV3IGFkZFN1YnZp
ZXc6d2ViVmlldy5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9Db250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFncy5tbQppbmRleCA5
ZTA0N2Y2YTg1MmI4ZTRhYmYyYWNhZGVlNGNmYjRjOThmZmI1NDY4Li41OGYwMjE3YmM4ZDZmNWJm
NmE2ODA3ZDUyZDZmOTk4MmRmNzc2NTBhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9Db250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3Mu
bW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgogI2ltcG9y
dCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8
d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2Ug
Q29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFnc0RlbGVnYXRlIDogTlNPYmplY3QgPFdlYkZy
YW1lTG9hZERlbGVnYXRlPgogQGVuZApAQCAtNDksNyArNTAsNyBAQCBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CiBURVNUKFdlYktpdDEsIENvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3Mp
CiB7CiAgICAgUmV0YWluUHRyPFdlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBmcmFtZU5hbWU6
bmlsIGdyb3VwTmFtZTpuaWxdKTsKLSAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFk
b3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDEw
MCwgMTAwLCA4MDAsIDYwMCkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2lu
ZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOworICAgIFJldGFpblB0cjxOU1dp
bmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRS
ZWN0Ok5TTWFrZVJlY3QoMTAwLCAxMDAsIDgwMCwgNjAwKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHls
ZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNd
KTsKICAgICBSZXRhaW5QdHI8Q29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFnc0RlbGVnYXRl
PiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tDb250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKIAogICAgIFt3aW5kb3cuZ2V0KCkuY29udGVudFZpZXcgYWRk
U3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKQEAgLTU5LDcgKzYwLDcgQEAgVEVTVChXZWJLaXQxLCBD
b250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzKQogCiAgICAgVXRpbDo6cnVuKCZkaWRGaW5p
c2hMb2FkKTsKIAotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TUmlnaHRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNDAwLCAzMDApIG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURh
dGVdCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVSaWdodE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg0MDAsIDMwMCkgbW9k
aWZpZXJGbGFnczowIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNl
RGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0
OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6MCBjbGlja0Nv
dW50OjAgcHJlc3N1cmU6MF07CiAgICAgTlNWaWV3ICpzdWJWaWV3ID0gW3dlYlZpZXcgaGl0VGVz
dDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd11dOwogICAgIE5TTWVudSAqbWVudSA9IFtzdWJWaWV3
IG1lbnVGb3JFdmVudDpldmVudF07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tCmluZGV4IGQzMmFhY2Uw
MzU4ZDgxMzRkYmM4NmM2MjI3OGE4ZTZmMjNhMGNiNGIuLmZmYzBjNmU3NTM1MGU1MWQ2YzYyOTJl
OTk2M2NjOGUwMDJjOTJmNDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tCkBAIC0zNCw2ICszNCw3
IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
UHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0
IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFj
ZSBOU1dpbmRvd0NvbnRyb2xsZXIgKFdlYktpdEZ1bGxTY3JlZW5BZGRpdGlvbnMpCiAtIChOU1Jl
Y3QpaW5pdGlhbEZyYW1lOwpAQCAtMTUwLDEyICsxNTEsMTIgQEAgdm9pZCBGdWxsc2NyZWVuWm9v
bUluaXRpYWxGcmFtZTo6c2VuZE1vdXNlRG93bkV2ZW50KFdLVmlldyAqd2tWaWV3LCBOU0V2ZW50
ICpldmUKIHRlbXBsYXRlIDx0eXBlbmFtZSBWaWV3Pgogdm9pZCBGdWxsc2NyZWVuWm9vbUluaXRp
YWxGcmFtZTo6cnVuVGVzdChWaWV3IHZpZXcpCiB7Ci0gICAgUmV0YWluUHRyPE5TV2luZG93PiB3
aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6dmll
dy5mcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRv
dyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp2aWV3LmZy
YW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAgW3dpbmRvdy5nZXQoKS5jb250ZW50Vmll
dyBhZGRTdWJ2aWV3OnZpZXddOwogCiAgICAgc2V0UGFnZVNjYWxlKHZpZXcsIDIpOwogCi0gICAg
TlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VE
b3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6
MCB3aW5kb3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnRO
dW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CisgICAgTlNFdmVudCAqZXZlbnQgPSBb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0
aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dO
dW1iZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBj
bGlja0NvdW50OjAgcHJlc3N1cmU6MF07CiAKICAgICBpc1dhaXRpbmdGb3JQYWdlU2lnbmFsVG9D
b250aW51ZSA9IHRydWU7CiAgICAgZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lbnVUeXBlc0Zvck1v
dXNlRXZlbnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVudVR5cGVzRm9y
TW91c2VFdmVudHMubW0KaW5kZXggOGU0YjRmNzkxYTlhZjBhN2ZlMmI3NmZlZTZlOTAzYjgxMGMx
ZjBiNi4uMjMyMDc0MGM1YmE3NGU3N2UzNTBmNzU2ZjZkZmRhMjkzYzhjOGJhNSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVudVR5cGVzRm9yTW91c2VFdmVudHMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVudVR5cGVzRm9yTW91c2VF
dmVudHMubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURl
Y2xhcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKQEAgLTYzLDc3ICs2
NCw3NyBAQCBzdGF0aWMgdm9pZCBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlIGJ1dHRv
bkV2ZW50LCBOU0V2ZW50TW9kaWZpZXJGbGFncyBtbwogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRC
dXR0b25Gb3JOb3JtYWxMZWZ0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0xl
ZnRNb3VzZURvd24sIDAsIFdlYkNvcmU6OkxlZnRCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAg
ICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biwgMCwgV2ViQ29y
ZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVB
bmRCdXR0b25Gb3JOb3JtYWxSaWdodENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3Qo
TlNSaWdodE1vdXNlRG93biwgMCwgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250
ZXh0TWVudSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duLCAwLCBXZWJDb3JlOjpSaWdodEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKIH0K
IAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yTm9ybWFsTWlkZGxlQ2xpY2spCiB7Ci0g
ICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU090aGVyTW91c2VEb3duLCAwLCBXZWJDb3JlOjpNaWRk
bGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZl
bnRUeXBlT3RoZXJNb3VzZURvd24sIDAsIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlw
ZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JDb250cm9sTGVmdENs
aWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNMZWZ0TW91c2VEb3duLCBOU0NvbnRy
b2xLZXlNYXNrLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOwor
ICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duLCBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29udHJvbCwgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRl
eHRNZW51KTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQ29udHJvbFJpZ2h0
Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU1JpZ2h0TW91c2VEb3duLCBOU0Nv
bnRyb2xLZXlNYXNrLCBXZWJDb3JlOjpSaWdodEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51
KTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24sIE5T
RXZlbnRNb2RpZmllckZsYWdDb250cm9sLCBXZWJDb3JlOjpSaWdodEJ1dHRvbiwgTlNNZW51VHlw
ZUNvbnRleHRNZW51KTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQ29udHJv
bE1pZGRsZUNsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNPdGhlck1vdXNlRG93
biwgTlNDb250cm9sS2V5TWFzaywgV2ViQ29yZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9u
ZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duLCBO
U0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCwgV2ViQ29yZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVU
eXBlTm9uZSk7CiB9CiAgICAgCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JTaGlmdExl
ZnRDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TTGVmdE1vdXNlRG93biwgTlNT
aGlmdEtleU1hc2ssIFdlYkNvcmU6OkxlZnRCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBi
dWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biwgTlNFdmVudE1vZGlm
aWVyRmxhZ1NoaWZ0LCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CiB9CiAK
IFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvclNoaWZ0UmlnaHRDbGljaykKIHsKLSAgICBi
dWlsZEFuZFBlcmZvcm1UZXN0KE5TUmlnaHRNb3VzZURvd24sIE5TU2hpZnRLZXlNYXNrLCBXZWJD
b3JlOjpSaWdodEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKKyAgICBidWlsZEFuZFBl
cmZvcm1UZXN0KE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdT
aGlmdCwgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAK
IFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvclNoaWZ0TWlkZGxlQ2xpY2spCiB7Ci0gICAg
YnVpbGRBbmRQZXJmb3JtVGVzdChOU090aGVyTW91c2VEb3duLCBOU1NoaWZ0S2V5TWFzaywgV2Vi
Q29yZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3Jt
VGVzdChOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQs
IFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktp
dDEsIE1lbnVBbmRCdXR0b25Gb3JDb21tYW5kTGVmdENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVy
Zm9ybVRlc3QoTlNMZWZ0TW91c2VEb3duLCBOU0NvbW1hbmRLZXlNYXNrLCBXZWJDb3JlOjpMZWZ0
QnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kLCBXZWJDb3JlOjpM
ZWZ0QnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1
dHRvbkZvckNvbW1hbmRSaWdodENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNS
aWdodE1vdXNlRG93biwgTlNDb21tYW5kS2V5TWFzaywgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5T
TWVudVR5cGVDb250ZXh0TWVudSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCwgV2ViQ29yZTo6Umln
aHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVu
dUFuZEJ1dHRvbkZvckNvbW1hbmRNaWRkbGVDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1U
ZXN0KE5TT3RoZXJNb3VzZURvd24sIE5TQ29tbWFuZEtleU1hc2ssIFdlYkNvcmU6Ok1pZGRsZUJ1
dHRvbiwgTlNNZW51VHlwZU5vbmUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5
cGVPdGhlck1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsIFdlYkNvcmU6Ok1p
ZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRC
dXR0b25Gb3JBbHRMZWZ0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0xlZnRN
b3VzZURvd24sIE5TQWx0ZXJuYXRlS2V5TWFzaywgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51
VHlwZU5vbmUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01l
bnVUeXBlTm9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvckFsdFJpZ2h0
Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU1JpZ2h0TW91c2VEb3duLCBOU0Fs
dGVybmF0ZUtleU1hc2ssIFdlYkNvcmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1l
bnUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biwg
TlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbiwgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5
cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvckFsdE1p
ZGRsZUNsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNPdGhlck1vdXNlRG93biwg
TlNBbHRlcm5hdGVLZXlNYXNrLCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25l
KTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24sIE5T
RXZlbnRNb2RpZmllckZsYWdPcHRpb24sIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlw
ZU5vbmUpOwogfQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRm
b3JtVXRpbGl0aWVzTWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1VdGls
aXRpZXNNYWMubW0KaW5kZXggOWM2MzhmZjQ0NDJhYjQwNDE0MjhmMDViMzc2ODk2YzhiMWQ5YzUy
OS4uYTBjNDJlNzg5YjQ0MGNkODEzYjY3ZmQyMzZlOWE4OWE2ZWYyOTMwMCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1VdGlsaXRpZXNNYWMubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1VdGlsaXRpZXNNYWMubW0KQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXNwb25zZU5TLmg+CiAjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3
dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgewogbmFtZXNwYWNlIFV0aWwgewpAQCAtNjIsNyArNjMsNyBAQCBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gTUlNRVR5cGVGb3JXS1VSTFJlc3BvbnNlKFdLVVJMUmVzcG9uc2VS
ZWYgd2tSZXNwb25zZSkKIAogYm9vbCBpc0tleURvd24oV0tOYXRpdmVFdmVudFB0ciBldmVudCkK
IHsKLSAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TS2V5RG93bjsKKyAgICByZXR1cm4gW2V2
ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93bjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVXRp
bApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFj
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4
IGFkMzVmNTg2Y2Y3MjM1OWEzYjdlOTEzNmY5ZWJlYmExNjIyZjdjN2QuLjJlMzljYTRhNGM4MWE4
YWU2NzM4ZjUwZTdjYTIxNTMyMzQwN2Q3N2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21h
Yy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgPENhcmJv
bi9DYXJib24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0ci5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dLVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0
eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIEFjdGl2ZU9mZnNjcmVlbldpbmRvdyA6IE5T
V2luZG93CiBAZW5kCkBAIC01Myw3ICs1NCw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojppbml0
aWFsaXplKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgQ2xhc3Mgd2tWCiAg
ICAgW21fdmlldyBzZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOk5PXTsKIAogICAg
IE5TUmVjdCB3aW5kb3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgWyhOU1NjcmVl
biAqKVtbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWln
aHQgLSByZWN0LnNpemUuaGVpZ2h0ICsgMTAwMDApOwotICAgIG1fd2luZG93ID0gW1tBY3RpdmVP
ZmZzY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93UmVjdCBzdHls
ZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6WUVTXTsKKyAgICBtX3dpbmRvdyA9IFtbQWN0aXZlT2Zmc2NyZWVuV2luZG93IGFs
bG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5
bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVT
XTsKICAgICBbbV93aW5kb3cgc2V0Q29sb3JTcGFjZTpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGNv
bG9yU3BhY2VdXTsKICAgICBbW21fd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3Om1fdmll
d107CiAgICAgW21fd2luZG93IG9yZGVyQmFjazpuaWxdOwpAQCAtMTIxLDcgKzEyMiw3IEBAIHZv
aWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11
bGF0ZVNwYWNlYmFyS2V5UHJlc3MoKQogewotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQg
a2V5RXZlbnRXaXRoVHlwZTpOU0tleURvd24KKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50
IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCkBAIC0x
MzQsNyArMTM1LDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlU3BhY2ViYXJLZXlQ
cmVzcygpCiAKICAgICBbbV92aWV3IGtleURvd246ZXZlbnRdOwogCi0gICAgZXZlbnQgPSBbTlNF
dmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5VXAKKyAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KQogICAgICAgICAgICAgICAgICAgICAgICAgbW9k
aWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOkdldEN1
cnJlbnRFdmVudFRpbWUoKQpAQCAtMTUwLDcgKzE1MSw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3
OjpzaW11bGF0ZVNwYWNlYmFyS2V5UHJlc3MoKQogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2lt
dWxhdGVSaWdodENsaWNrKHVuc2lnbmVkIHgsIHVuc2lnbmVkIHkpCiB7Ci0gICAgTlNFdmVudCAq
ZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93bgorICAg
IE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
UmlnaHRNb3VzZURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
b2NhdGlvbjpOU01ha2VQb2ludCh4LCB5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTE2Myw3ICsxNjQsNyBAQCB2
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdodENsaWNrKHVuc2lnbmVkIHgsIHVuc2ln
bmVkIHkpCiAKICAgICBbbV92aWV3IHJpZ2h0TW91c2VEb3duOmV2ZW50XTsKIAotICAgIGV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZVVwCisgICAgZXZlbnQg
PSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCh4LCB5KQog
ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTE3OSw3
ICsxODAsNyBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdodENsaWNrKHVuc2ln
bmVkIHgsIHVuc2lnbmVkIHkpCiAgICAgCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVN
b3VzZU1vdmUodW5zaWduZWQgeCwgdW5zaWduZWQgeSkKIHsgICAKLSAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKKyAgICBOU0V2ZW50
ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92
ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCh4
LCB5KQogICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAg
LTE5NywzMSArMTk4LDMxIEBAIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5cGVGb3JCdXR0b24o
V0tFdmVudE1vdXNlQnV0dG9uIGJ1dHRvbikKIHsKICAgICBzd2l0Y2ggKGJ1dHRvbikgewogICAg
IGNhc2Uga1dLRXZlbnRNb3VzZUJ1dHRvbkxlZnRCdXR0b246Ci0gICAgICAgIHJldHVybiBOU0xl
ZnRNb3VzZURvd247CisgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAg
ICAgY2FzZSBrV0tFdmVudE1vdXNlQnV0dG9uUmlnaHRCdXR0b246Ci0gICAgICAgIHJldHVybiBO
U1JpZ2h0TW91c2VEb3duOworICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93
bjsKICAgICBjYXNlIGtXS0V2ZW50TW91c2VCdXR0b25NaWRkbGVCdXR0b246Ci0gICAgICAgIHJl
dHVybiBOU090aGVyTW91c2VEb3duOworICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVPdGhlck1v
dXNlRG93bjsKICAgICBjYXNlIGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1dHRvbjoKLSAgICAgICAg
cmV0dXJuIE5TTGVmdE1vdXNlRG93bjsKKyAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlTGVmdE1v
dXNlRG93bjsKICAgICB9CiAKLSAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOworICAgIHJldHVy
biBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiB9CiAKIHN0YXRpYyBOU0V2ZW50TW9kaWZpZXJG
bGFncyBtb2RpZmllckZsYWdzRm9yV0tNb2RpZmllcnMoV0tFdmVudE1vZGlmaWVycyBtb2RpZmll
cnMpCiB7CiAgICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgcmV0dXJuVmFsID0gMDsKICAgICBpZiAo
bW9kaWZpZXJzICYga1dLRXZlbnRNb2RpZmllcnNTaGlmdEtleSkKLSAgICAgICAgcmV0dXJuVmFs
IHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICByZXR1cm5WYWwgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ1NoaWZ0OwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc0NvbnRyb2xL
ZXkpCi0gICAgICAgIHJldHVyblZhbCB8PSBOU0NvbnRyb2xLZXlNYXNrOworICAgICAgICByZXR1
cm5WYWwgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7CiAgICAgaWYgKG1vZGlmaWVycyAm
IGtXS0V2ZW50TW9kaWZpZXJzQWx0S2V5KQotICAgICAgICByZXR1cm5WYWwgfD0gTlNBbHRlcm5h
dGVLZXlNYXNrOworICAgICAgICByZXR1cm5WYWwgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
bjsKICAgICBpZiAobW9kaWZpZXJzICYga1dLRXZlbnRNb2RpZmllcnNNZXRhS2V5KQotICAgICAg
ICByZXR1cm5WYWwgfD0gTlNDb21tYW5kS2V5TWFzazsKKyAgICAgICAgcmV0dXJuVmFsIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1v
ZGlmaWVyc0NhcHNMb2NrS2V5KQotICAgICAgICByZXR1cm5WYWwgfD0gTlNBbHBoYVNoaWZ0S2V5
TWFzazsKKyAgICAgICAgcmV0dXJuVmFsIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsK
IAogICAgIHJldHVybiByZXR1cm5WYWw7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVz
dFdLV2ViVmlld01hYy5tbQppbmRleCAxYTY2NjViZjJiYjg2MGUxZThkMmRhZWQ5NmM5OWU5YzY5
YTZjNjJiLi44OTNiMWJjMmZiNzJjMmJmYjI5ZTc5ZjI1MDQ4MDJmMTE2NWFhZGY4IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0KQEAgLTM2LDYgKzM2LDcg
QEAKICNpbXBvcnQgPFdlYktpdC9XZWJLaXRQcml2YXRlLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRp
bWUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW1wbGVtZW50YXRpb24gVGVzdE1lc3Nh
Z2VIYW5kbGVyIHsKICAgICBOU011dGFibGVEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGRpc3BhdGNo
X2Jsb2NrX3Q+ICpfbWVzc2FnZUhhbmRsZXJzOwpAQCAtNzAsMjEgKzcxLDEzIEBAIHN0YXRpYyBp
bnQgZ0V2ZW50TnVtYmVyID0gMTsKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTAwMwogTlNFdmVudE1hc2sgX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRF
dmVudHNNYXNrKGlkIHNlbGYsIFNFTCBfY21kKQogewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMjAwCiAgICAgcmV0dXJuIE5TRXZlbnRNYXNrUHJlc3N1cmUgfCBO
U0V2ZW50TWFza0xlZnRNb3VzZURvd24gfCBOU0V2ZW50TWFza0xlZnRNb3VzZVVwIHwgTlNFdmVu
dE1hc2tMZWZ0TW91c2VEcmFnZ2VkOwotI2Vsc2UKLSAgICByZXR1cm4gTlNFdmVudE1hc2tQcmVz
c3VyZSB8ICgxIDw8IE5TTGVmdE1vdXNlRG93bikgfCAoMSA8PCBOU0xlZnRNb3VzZVVwKSB8ICgx
IDw8IE5TTGVmdE1vdXNlRHJhZ2dlZCk7Ci0jZW5kaWYKIH0KICNlbmRpZgogCiAtICh2b2lkKV9t
b3VzZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wpc2lt
dWxhdGVQcmVzc3VyZQogewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMjAwCiAgICAgTlNFdmVudFR5cGUgbW91c2VFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd247Ci0jZWxzZQotICAgIE5TRXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNMZWZ0
TW91c2VEb3duOwotI2VuZGlmCiAKICAgICBOU0V2ZW50TWFzayBtb2RpZmllckZsYWdzID0gMDsK
ICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMwpAQCAtMTU3LDcg
KzE1MCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29u
ZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvCiAKIC0gKHZvaWQpX3NldFVwVGVzdFdp
bmRvdzooTlNSZWN0KWZyYW1lCiB7Ci0gICAgX2hvc3RXaW5kb3cgPSBbW1Rlc3RXS1dlYlZpZXdI
b3N0V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpO
T107CisgICAgX2hvc3RXaW5kb3cgPSBbW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRl
cmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbX2hv
c3RXaW5kb3cgc2V0RnJhbWVPcmlnaW46TlNNYWtlUG9pbnQoMCwgMCldOwogICAgIFtbX2hvc3RX
aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6c2VsZl07CiAgICAgW19ob3N0V2luZG93IHNl
dElzVmlzaWJsZTpZRVNdOwpAQCAtMTkzLDEzICsxODYsOCBAQCAtICh2b2lkKXN5bmNocm9ub3Vz
bHlMb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZQogCiAtICh2b2lkKXR5cGVD
aGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyIHsKICAgICBOU1N0cmluZyAqY2hhcmFjdGVyQXNTdHJp
bmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVjIiAsIGNoYXJhY3Rlcl07Ci0jaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICBOU0V2ZW50VHlw
ZSBrZXlEb3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlEb3duOwogICAgIE5TRXZlbnRUeXBl
IGtleVVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlVcDsKLSNlbHNlCi0gICAgTlNFdmVudFR5
cGUga2V5RG93bkV2ZW50VHlwZSA9IE5TS2V5RG93bjsKLSAgICBOU0V2ZW50VHlwZSBrZXlVcEV2
ZW50VHlwZSA9IE5TS2V5VXA7Ci0jZW5kaWYKICAgICBbc2VsZiBrZXlEb3duOltOU0V2ZW50IGtl
eUV2ZW50V2l0aFR5cGU6a2V5RG93bkV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6
X2hvc3RXaW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVy
QXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlz
QVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJhY3Rlcl1dOwogICAgIFtzZWxmIGtleVVwOltOU0V2ZW50
IGtleUV2ZW50V2l0aFR5cGU6a2V5VXBFdmVudFR5cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9k
aWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVy
Ol9ob3N0V2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3Rl
ckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBp
c0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0gYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCmluZGV4IGNhZmMzZWRkYTliZjg1ZWUxMDY1
YWZkZTA4OWYxNjQ5MzU2NDFlNmIuLmQ1YmNkZDc5ZGI1Y2M1MDU2ODQ3M2FlZTk3ZGFlMjMzOGQ0
NDAzMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVy
UHJveHkubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94
eS5tbQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLUGFnZVByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBA
aW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKERldGFpbHMpCiAtICh2b2lkKV9zZXRDdXJyZW50RXZl
bnQ6KE5TRXZlbnQgKilldmVudDsKQEAgLTIwNywzMyArMjA4LDMzIEBAIHN0cnVjdCBLZXlNYXBw
aW5nRW50cnkgewogc3RhdGljIE5TRXZlbnRUeXBlIGV2ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5k
QWN0aW9uKGludCBidXR0b24sIE1vdXNlQWN0aW9uIGFjdGlvbikKIHsKICAgICBzd2l0Y2ggKGJ1
dHRvbikgewotICAgICAgICBjYXNlIExlZnRNb3VzZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRj
aCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBOU0xlZnRNb3VzZURvd247Ci0gICAgICAgICAgICAgICAgY2FzZSBN
b3VzZVVwOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VVcDsKLSAgICAg
ICAgICAgICAgICBjYXNlIE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IE5TTGVmdE1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgY2FzZSBSaWdodE1v
dXNlQnV0dG9uOgotICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKLSAgICAgICAgICAgICAg
ICBjYXNlIE1vdXNlRG93bjoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TUmlnaHRNb3Vz
ZURvd247Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZVVwOgotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gTlNSaWdodE1vdXNlVXA7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURyYWdn
ZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU1JpZ2h0TW91c2VEcmFnZ2VkOwotICAg
ICAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24p
IHsKLSAgICAgICAgICAgICAgICBjYXNlIE1vdXNlRG93bjoKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIE5TT3RoZXJNb3VzZURvd247Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZVVwOgot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNPdGhlck1vdXNlVXA7Ci0gICAgICAgICAgICAg
ICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU090aGVy
TW91c2VEcmFnZ2VkOwotICAgICAgICAgICAgfQorICAgIGNhc2UgTGVmdE1vdXNlQnV0dG9uOgor
ICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAg
ICAgICAgIHJldHVybiBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CisgICAgICAgIGNhc2UgTW91
c2VVcDoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOworICAgICAg
ICBjYXNlIE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZUxlZnRN
b3VzZURyYWdnZWQ7CisgICAgICAgIH0KKyAgICBjYXNlIFJpZ2h0TW91c2VCdXR0b246CisgICAg
ICAgIHN3aXRjaCAoYWN0aW9uKSB7CisgICAgICAgIGNhc2UgTW91c2VEb3duOgorICAgICAgICAg
ICAgcmV0dXJuIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd247CisgICAgICAgIGNhc2UgTW91c2VV
cDoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKKyAgICAgICAg
Y2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdodE1v
dXNlRHJhZ2dlZDsKKyAgICAgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHN3aXRjaCAoYWN0
aW9uKSB7CisgICAgICAgIGNhc2UgTW91c2VEb3duOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZl
bnRUeXBlT3RoZXJNb3VzZURvd247CisgICAgICAgIGNhc2UgTW91c2VVcDoKKyAgICAgICAgICAg
IHJldHVybiBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDsKKyAgICAgICAgY2FzZSBNb3VzZURyYWdn
ZWQ6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDsKKyAg
ICAgICAgfQogICAgIH0KICAgICBhc3NlcnQoMCk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5T
RXZlbnRUeXBlPigwKTsKQEAgLTI0MywxNSArMjQ0LDE1IEBAIHN0YXRpYyBpbnQgYnVpbGRNb2Rp
ZmllckZsYWdzKFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzKQogewogICAgIGludCBmbGFncyA9
IDA7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzQ29udHJvbEtleSkKLSAg
ICAgICAgZmxhZ3MgfD0gTlNDb250cm9sS2V5TWFzazsKKyAgICAgICAgZmxhZ3MgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2w7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZp
ZXJzU2hpZnRLZXkpCi0gICAgICAgIGZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICBm
bGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtX
S0V2ZW50TW9kaWZpZXJzQWx0S2V5KQotICAgICAgICBmbGFncyB8PSBOU0FsdGVybmF0ZUtleU1h
c2s7CisgICAgICAgIGZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb247CiAgICAgaWYg
KG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzTWV0YUtleSkKLSAgICAgICAgZmxhZ3MgfD0g
TlNDb21tYW5kS2V5TWFzazsKKyAgICAgICAgZmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bW1hbmQ7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzQ2Fwc0xvY2tLZXkp
Ci0gICAgICAgIGZsYWdzIHw9IE5TQWxwaGFTaGlmdEtleU1hc2s7CisgICAgICAgIGZsYWdzIHw9
IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKICAgICByZXR1cm4gZmxhZ3M7CiB9CiAKQEAg
LTM1MSw3ICszNTIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNlbmRNb3VzZURvd25Ub1N0
YXJ0UHJlc3N1cmVFdmVudHMoKQogewogICAgIHVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b24oMCk7
CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xl
ZnRNb3VzZURvd24KKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24KICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9p
bnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6TlNF
dmVudE1hc2tQcmVzc3VyZQogICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRU
aW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKQEAgLTQxNSw3ICs0MTYsNyBAQCB2b2lkIEV2ZW50U2Vu
ZGVyUHJveHk6Om1vdXNlRm9yY2VDbGljaygpCiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+IHByZUZv
cmNlQ2xpY2sgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDEsIFByZXNzdXJlQ2hhbmdlRGlyZWN0aW9u
OjpJbmNyZWFzaW5nKTsKICAgICBSZXRhaW5QdHI8TlNFdmVudD4gZm9yY2VDbGljayA9IHByZXNz
dXJlQ2hhbmdlRXZlbnQoMiwgUHJlc3N1cmVDaGFuZ2VEaXJlY3Rpb246OkluY3JlYXNpbmcpOwog
ICAgIFJldGFpblB0cjxOU0V2ZW50PiByZWxlYXNpbmdQcmVzc3VyZSA9IHByZXNzdXJlQ2hhbmdl
RXZlbnQoMSwgUHJlc3N1cmVDaGFuZ2VEaXJlY3Rpb246OkRlY3JlYXNpbmcpOwotICAgIE5TRXZl
bnQgKm1vdXNlVXAgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAor
ICAgIE5TRXZlbnQgKm1vdXNlVXAgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVu
dFR5cGVMZWZ0TW91c2VVcAogICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludChtX3Bvc2l0aW9u
LngsIG1fcG9zaXRpb24ueSkKICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgIHRpbWVz
dGFtcDphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQpAQCAtNDUy
LDcgKzQ1Myw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZv
cmNlQ2xpY2soKQogICAgIFJldGFpblB0cjxOU0V2ZW50PiBiZWdpblByZXNzdXJlID0gYmVnaW5Q
cmVzc3VyZUV2ZW50KDEpOwogICAgIFJldGFpblB0cjxOU0V2ZW50PiBpbmNyZWFzaW5nUHJlc3N1
cmUgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDEsIFByZXNzdXJlQ2hhbmdlRGlyZWN0aW9uOjpJbmNy
ZWFzaW5nKTsKICAgICBSZXRhaW5QdHI8TlNFdmVudD4gcmVsZWFzaW5nUHJlc3N1cmUgPSBwcmVz
c3VyZUNoYW5nZUV2ZW50KDEsIFByZXNzdXJlQ2hhbmdlRGlyZWN0aW9uOjpEZWNyZWFzaW5nKTsK
LSAgICBOU0V2ZW50ICptb3VzZVVwID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVm
dE1vdXNlVXAKKyAgICBOU0V2ZW50ICptb3VzZVVwID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQo
bV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAg
ICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUo
KSkKQEAgLTYwMiw3ICs2MDMsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRv
KGRvdWJsZSB4LCBkb3VibGUgeSkKICAgICBOU1BvaW50IHBvc2l0aW9uID0gW3ZpZXcgY29udmVy
dFBvaW50Ok5TTWFrZVBvaW50KHgsIHkpIHRvVmlldzpuaWxdOwogICAgIG1fcG9zaXRpb24ueCA9
IHBvc2l0aW9uLng7CiAgICAgbV9wb3NpdGlvbi55ID0gcG9zaXRpb24ueTsKLSAgICBOU0V2ZW50
ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobV9sZWZ0TW91c2VCdXR0b25E
b3duID8gTlNMZWZ0TW91c2VEcmFnZ2VkIDogTlNNb3VzZU1vdmVkKQorICAgIE5TRXZlbnQgKmV2
ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOihtX2xlZnRNb3VzZUJ1dHRvbkRvd24g
PyBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQgOiBOU0V2ZW50VHlwZU1vdXNlTW92ZWQpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246cG9zaXRpb24K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOmFic29sdXRlVGlt
ZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC03OTgsMTYgKzc5OSwxNiBAQCB2
b2lkIEV2ZW50U2VuZGVyUHJveHk6OmtleURvd24oV0tTdHJpbmdSZWYga2V5LCBXS0V2ZW50TW9k
aWZpZXJzIG1vZGlmaWVycywgdW5zaQogICAgIGludCBtb2RpZmllckZsYWdzID0gMDsKIAogICAg
IGlmIChbY2hhcmFjdGVyIGxlbmd0aF0gPT0gMSAmJiBbY2hhcmFjdGVyIGNoYXJhY3RlckF0SW5k
ZXg6MF0gPj0gJ0EnICYmIFtjaGFyYWN0ZXIgY2hhcmFjdGVyQXRJbmRleDowXSA8PSAnWicpIHsK
LSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU1NoaWZ0S2V5TWFzazsKKyAgICAgICAgbW9kaWZp
ZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CiAgICAgICAgIGNoYXJhY3RlcnNJ
Z25vcmluZ01vZGlmaWVycyA9IFtjaGFyYWN0ZXIgbG93ZXJjYXNlU3RyaW5nXTsKICAgICB9CiAK
ICAgICBtb2RpZmllckZsYWdzIHw9IGJ1aWxkTW9kaWZpZXJGbGFncyhtb2RpZmllcnMpOwogCiAg
ICAgaWYgKGtleUxvY2F0aW9uID09IDB4MDMgLypET01fS0VZX0xPQ0FUSU9OX05VTVBBRCovKQot
ICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TTnVtZXJpY1BhZEtleU1hc2s7CisgICAgICAgIG1v
ZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CiAKLSAgICBOU0V2
ZW50ICpldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlEb3duCisgICAgTlNF
dmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93
bgogICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkKICAg
ICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJGbGFncwogICAgICAg
ICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOmFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJy
ZW50RXZlbnRUaW1lKCkpCkBAIC04MjIsNyArODIzLDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5
OjprZXlEb3duKFdLU3RyaW5nUmVmIGtleSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIHVu
c2kKICAgICBbW21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93
KCkgZmlyc3RSZXNwb25kZXJdIGtleURvd246ZXZlbnRdOwogICAgIFtOU0FwcCBfc2V0Q3VycmVu
dEV2ZW50Om5pbF07CiAKLSAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNL
ZXlVcAorICAgIGV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtl
eVVwCiAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KQog
ICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczptb2RpZmllckZsYWdzCiAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1
cnJlbnRFdmVudFRpbWUoKSkKQEAgLTkxOCw3ICs5MTksNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwg
aW50CiAgICAgUmV0YWluUHRyPEV2ZW50U2VuZGVyU3ludGhldGljRXZlbnQ+IGV2ZW50ID0gYWRv
cHROUyhbW0V2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgYWxsb2NdIGluaXRdKTsKIAogICAgIC8v
ICJtYXlCZWdpbiIgYSBzd2lwZSBpcyBhY3R1YWxseSBhIHNjcm9sbCB3aGVlbCBldmVudC4KLSAg
ICBldmVudC0+X2V2ZW50U2VuZGVyX3R5cGUgPSAocGhhc2UgPT0gMTI4KSA/IE5TU2Nyb2xsV2hl
ZWwgOiBOU0V2ZW50VHlwZUdlc3R1cmU7CisgICAgZXZlbnQtPl9ldmVudFNlbmRlcl90eXBlID0g
KHBoYXNlID09IDEyOCkgPyBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsIDogTlNFdmVudFR5cGVHZXN0
dXJlOwogICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfc3VidHlwZSA9IDY7IC8vIGtJT0hJREV2ZW50
VHlwZVNjcm9sbAogICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfbG9jYXRpb25JbldpbmRvdyA9IE5T
TWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55KTsKICAgICBldmVudC0+X2V2ZW50
U2VuZGVyX2xvY2F0aW9uID0gKFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0
Zm9ybVdpbmRvdygpIGNvbnZlcnRSZWN0VG9TY3JlZW46TlNNYWtlUmVjdChtX3Bvc2l0aW9uLngs
IG1fcG9zaXRpb24ueSwgMSwgMSldLm9yaWdpbik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5kZXggZmI3Y2Q4NWZmNzE3YzMzM2M3MTBi
M2EwNTkwNDUyZjlmMDRhMmNiZS4uODMzODUwMmQ0OGJjODBhMzIwNzc4YTFjYjEwYWRlYmVjYWJk
NmY3OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJW
aWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmll
d01hYy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVECiBAaW50ZXJmYWNlIFdLV2ViVmll
dyAoRGV0YWlscykKQEAgLTE0NSw3ICsxNDYsNyBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3Jt
V2ViVmlldyhXS1dlYlZpZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uLCBjb25zdCBUZQog
CiAgICAgTlNTY3JlZW4gKmZpcnN0U2NyZWVuID0gW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RB
dEluZGV4OjBdOwogICAgIE5TUmVjdCB3aW5kb3dSZWN0ID0gbV9vcHRpb25zLnNob3VsZFNob3dX
ZWJWaWV3ID8gTlNPZmZzZXRSZWN0KHJlY3QsIDEwMCwgMTAwKSA6IE5TT2Zmc2V0UmVjdChyZWN0
LCAtMTAwMDAsIFtmaXJzdFNjcmVlbiBmcmFtZV0uc2l6ZS5oZWlnaHQgLSByZWN0LnNpemUuaGVp
Z2h0ICsgMTAwMDApOwotICAgIG1fd2luZG93ID0gW1tXZWJLaXRUZXN0UnVubmVyV2luZG93IGFs
bG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TQm9yZGVybGVz
c1dpbmRvd01hc2sgYmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKV9OU0JhY2tpbmdTdG9yZVVu
YnVmZmVyZWQgZGVmZXI6WUVTXTsKKyAgICBtX3dpbmRvdyA9IFtbV2ViS2l0VGVzdFJ1bm5lcldp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0eWxlTWFzazpOU1dp
bmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKV9OU0Jh
Y2tpbmdTdG9yZVVuYnVmZmVyZWQgZGVmZXI6WUVTXTsKICAgICBtX3dpbmRvdy5wbGF0Zm9ybVdl
YlZpZXcgPSB0aGlzOwogICAgIFttX3dpbmRvdyBzZXRDb2xvclNwYWNlOltmaXJzdFNjcmVlbiBj
b2xvclNwYWNlXV07CiAgICAgW21fd2luZG93IHNldENvbGxlY3Rpb25CZWhhdmlvcjpOU1dpbmRv
d0NvbGxlY3Rpb25CZWhhdmlvclN0YXRpb25hcnldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCBjZjg3ZTY5ZWNhODg3OGY4NDVkYjAy
MGEyNTM5ZWMwOGQ1OGU1NDhlLi41ZDFkZDFlODI3ODczNDE4NGExMzIzMmZiYWEzYTg4MmY0OTZm
YTYwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxl
ck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1h
Yy5tbQpAQCAtNDUsNiArNDUsNyBAQAogI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8
d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGli
aWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBOU1NvdW5kICgpCiArICh2b2lkKV9z
ZXRBbGVydFR5cGU6KE5TVUludGVnZXIpYWxlcnRUeXBlOwpAQCAtMTAzLDcgKzEwNCw3IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygp
CiB7CiAgICAgY29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCk7CiAKLSAgICB3aGls
ZSAoW05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0V2ZW50TWFza0dlc3R1cmUgfCBOU1Nj
cm9sbFdoZWVsTWFzayB1bnRpbERhdGU6bmlsIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBk
ZXF1ZXVlOllFU10pIHsKKyAgICB3aGlsZSAoW05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpO
U0V2ZW50TWFza0dlc3R1cmUgfCBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsIHVudGlsRGF0ZTpuaWwg
aW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXSkgewogICAgICAgICAvLyBD
bGVhciBvdXQgKGFuZCBpZ25vcmUpIGFueSBwZW5kaW5nIGdlc3R1cmUgYW5kIHNjcm9sbCB3aGVl
bCBldmVudHMuCiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294235</attachid>
            <date>2016-11-09 10:18:53 -0800</date>
            <delta_ts>2016-11-09 11:35:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164494-20161109101443.patch</filename>
            <type>text/plain</type>
            <size>231149</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM5ZGJiOGI1ZWE3OGMyMTMyNDZhY2M0
YmU2ZWY0NTA2YzczNDQyZGIuLjA3NTY1OTA0MGU4Nzg3YjA0ZjkxZjBlNTdkM2VmYWE2OGZmY2U2
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0
IGVudW1lcmF0aW9uIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0NDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgU3RvcCB1c2luZyBkZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMu
CisKKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaDoK
KwogMjAxNi0xMS0wNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAK
ICAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgTExJbnQgd2l0aCBNaW5HVwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDNmZGZlM2EyNGY0ZmRlNzA5YzczNGQ5YTIyOWYzMzM0Yzc3Zjc4NjEuLmI1ODkzOWM0YTFm
YmRkMWIwY2Y5NjIzMWQxMjlmYjBhZWFkN2QxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBA
QAorMjAxNi0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24gdmFsdWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0OTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTdG9wIHVzaW5nIGRl
cHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAqIGVkaXRpbmcv
Y29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6OmNvbXB1dGVk
QXR0cmlidXRlc0ZvckVsZW1lbnQpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NF
bGVtZW50KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0KToKKyAg
ICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RFdmVudElzTW91
c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50
VG9TdWJmcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndpZGdldERpZEhh
bmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kRmFr
ZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1RleHRJbmRp
Y2F0b3JXaW5kb3cubW06CisgICAgICAgIChXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93Ojpz
ZXRUZXh0SW5kaWNhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6Okljb246OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9tQ3Vyc29y
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0V2ZW50TG9v
cE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50TG9vcDo6Y3ljbGUpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludEZvckV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OnBvaW50Rm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6bW91
c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlwZUZvckV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNsaWNrQ291bnRGb3JFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NLZXlDb2Rl
Rm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNLZXlVcEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5Ym9hcmRF
dmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXpl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgICgtW1dlYkNv
cmVUaGVtZVZpZXcgd2luZG93XSk6CisgICAgICAgIChXZWJDb3JlOjpjb250cm9sU2l6ZUZvckZv
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udHJvbFNpemVGcm9tUGl4ZWxTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpzdGVwcGVy
Q29udHJvbFNpemVGb3JGb250KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U3RlcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUaGVtZU1hYzo6bWluaW11bUNvbnRyb2xTaXplKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbToK
KyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93IGluaXRXaXRoQ29udGVudFJl
Y3Q6c3R5bGVNYXNrOmJhY2tpbmc6ZGVmZXI6XSk6CisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNj
cmVlbkhVRFdpbmRvdyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1bV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICgtW1dlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIga2V5RG93bjpdKToKKyAgICAgICAgKC1b
V2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2FkXSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAgICAgKFdl
YldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lTWFjOjpzbGlkZXJUaHVtYkhvcml6b250YWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVNYWM6OnNsaWRlclRodW1iVmVydGljYWwpOgorCiAyMDE2LTExLTA5ICBSeWFuIEhhZGRh
ZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyMDg0MjIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmFmMDdjMTEwOGQ3MjllMmQwNzc5Y2E1
NjAyNzcxNTkwM2Q1OGU3MS4uMzIxM2Q0ZWI3NDc3OGNkYzVjYjliZjk2NjcwZDE1YTE5YzhhNDg3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTExLTA3ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gU3RvcCB1c2luZyBkZXBy
ZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVy
YXRpb24gdmFsdWVzLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW06
CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6
dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAgICAgICgtW0Nh
cmJvbldpbmRvd0FkYXB0ZXIgc2VuZFN1cGVyRXZlbnQ6XSk6CisgICAgICAgICogUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c3ludGhldGljS2V5RG93bldpdGhDb21tYW5kTW9kaWZp
ZXIpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmll
dy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRyYXdSZWN0Ol0p
OgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2NvYS5t
bToKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2E6OnN5bnRoZXRp
Y0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Q
b3B1cE1lbnVNYWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKToKKyAgICAg
ICAgKFBvcHVwTWVudU1hYzo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChXZWJDb250ZXh0TWVudUNsaWVudDo6c2hvd0Nv
bnRleHRNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphY3Rpb25EaWN0aW9uYXJ5KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06CisgICAgICAg
IChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2FuQXR0YWNoKToKKyAgICAgICAgKC1bV2Vi
SW5zcGVjdG9yV2luZG93Q29udHJvbGxlciB3aW5kb3ddKToKKyAgICAgICAgKiBXZWJJbnNwZWN0
b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hsaWdodCBpbml0
V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IGtleURvd246a2V5RG93
bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tOgorICAg
ICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBpbml0XSk6CisgICAgICAgIChjcmVhdGVC
YWNrZ3JvdW5kRnVsbHNjcmVlbldpbmRvdyk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmll
dy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9y
RmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9zZXRNb3VzZURv
d25FdmVudDpfc2V0TW91c2VEb3duRXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91
cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAgIChpc1F1aWNrTG9va0V2ZW50
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgX3NlbmRUb29sVGlwTW91c2VFeGl0ZWRdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcg
X3NlbmRUb29sVGlwTW91c2VFbnRlcmVkXSk6CisgICAgICAgIChtb3VzZUV2ZW50SXNQYXJ0T2ZD
bGlja09yRHJhZyk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRo
RXZlbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IGFjY2VwdHNGaXJzdFJlc3BvbmRlcl0pOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG1v
dXNlRG93bjptb3VzZURvd246XSk6CisgICAgICAgIChjdXJyZW50S2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICgtW1dlYkhUTUxWaWV3IF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6XSk6CisgICAg
ICAgICgtW1dlYkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21tYW5kczpdKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dlYlBERlZpZXcg
aGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5r
OndpdGhVUkw6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX2Zha2VLZXlFdmVudFdpdGhGdW5j
dGlvbktleTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9idWlsZFVJXSk6
CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQb3B1cFdpbmRv
dzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcg
YXBwbGljYXRpb25GbGFnczpdKToKKwogMjAxNi0xMS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgZG9lcyBub3QgZW1pdCBjb21wb3Np
dGlvbiBlbmQgaWYgYmx1cnJlZCBmb3IgZGVhZCBrZXkgLyBKYXBhbmVzZSBJTUUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBjNDVmZDQwZGZlYmViYTUzOGI5OWFjNzFlMzkxN2YxMjY3NTFkMzE0Li4zNTNmYTRjMDZj
NDQ3NmM1ZjBhY2FlMTM1MmMwNWQ0MDI3NmExZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTYtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBbTWFjXSBTdG9wIHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NDk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgU3RvcCB1c2luZyBk
ZXByZWNhdGVkIEFwcEtpdCBlbnVtZXJhdGlvbiB2YWx1ZXMuCisKKyAgICAgICAgKiBTaGFyZWQv
bWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpz
dG9wTlNBcHBSdW5Mb29wKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5t
bToKKyAgICAgICAgKFdlYktpdDo6bW91c2VCdXR0b25Gb3JFdmVudCk6CisgICAgICAgIChXZWJL
aXQ6Om1vdXNlRXZlbnRUeXBlRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpjbGlja0NvdW50
Rm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxQb2ludEZvckV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6cG9pbnRGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OnRleHRGcm9tRXZl
bnQpOgorICAgICAgICAoV2ViS2l0Ojp1bm1vZGlmaWVkVGV4dEZyb21FdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OmlzS2V5cGFkRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojppc0tleVVwRXZlbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZl
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpYyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFu
Z2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNjcmVl
bldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5kVG9vbFRpcE1vdXNl
RXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VF
bnRlcmVkKToKKyAgICAgICAgKFdlYktpdDo6YXBwbGljYXRpb25GbGFnc0ZvckRyYWcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNlRG93bkV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFuZHNGb3JFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1vZGFsKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWM6OnNob3dDb250ZXh0TWVudVdpdGhJdGVtcyk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6cG9wdWxhdGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0Ojpt
b2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6Z2V0RXZlbnRUeXBl
RnJvbVdlYkV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
blRleHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0Ojpjc3NBbGlnbm1lbnRWYWx1ZUZv
ck5TVGV4dEFsaWdubWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29udmVydEltYWdlVG9C
aXRtYXApOgorCiAyMDE2LTExLTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dLMl1bTkVUV09SS19TRVNTSU9OXSBBZGQgc3VwcG9ydCBmb3IgZG93bmxvYWRp
bmcgZmlsZSBiYWNrZWQgYmxvYnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oCmluZGV4IGUxMTNlODA5YjVlOGQyZTBkNDYwM2Ri
Y2NhOWI0YmNlZWZhN2I1NjYuLjk0ZDNkZWU5MjRkOTE3ODA2M2JjZDEyY2MwZmE4NWE0MGQ5Mzk5
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVj
bGFyYXRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaApAQCAtNTcsNiArNTcsMTAgQEAgc3RhdGljIGNvbnN0IE5TQ29tcG9zaXRp
bmdPcGVyYXRpb24gTlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgPSBOU0NvbXBvc2kK
IAogc3RhdGljIGNvbnN0IE5TQ29udHJvbFNpemUgTlNDb250cm9sU2l6ZVJlZ3VsYXIgPSBOU1Jl
Z3VsYXJDb250cm9sU2l6ZTsKIHN0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXplIE5TQ29udHJvbFNp
emVTbWFsbCA9IE5TU21hbGxDb250cm9sU2l6ZTsKK3N0YXRpYyBjb25zdCBOU0NvbnRyb2xTaXpl
IE5TQ29udHJvbFNpemVNaW5pID0gTlNNaW5pQ29udHJvbFNpemU7CisKK3N0YXRpYyBjb25zdCBO
U1NsaWRlclR5cGUgTlNTbGlkZXJUeXBlTGluZWFyID0gTlNMaW5lYXJTbGlkZXI7CitzdGF0aWMg
Y29uc3QgTlNTbGlkZXJUeXBlIE5TU2xpZGVyVHlwZUNpcmN1bGFyID0gTlNDaXJjdWxhclNsaWRl
cjsKIAogc3RhdGljIGNvbnN0IE5TRXZlbnRNYXNrIE5TRXZlbnRNYXNrQW55ID0gTlNBbnlFdmVu
dE1hc2s7CiBzdGF0aWMgY29uc3QgTlNFdmVudE1hc2sgTlNFdmVudE1hc2tGbGFnc0NoYW5nZWQg
PSBOU0ZsYWdzQ2hhbmdlZE1hc2s7CkBAIC04MywxMiArODcsMTUgQEAgc3RhdGljIGNvbnN0IE5T
RXZlbnRNb2RpZmllckZsYWdzIE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkID0gTlNOdW1l
cmljUGFkS2UKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9kaWZp
ZXJGbGFnU2hpZnQgPSBOU1NoaWZ0S2V5TWFzazsKIHN0YXRpYyBjb25zdCBOU0V2ZW50TW9kaWZp
ZXJGbGFncyBOU0V2ZW50TW9kaWZpZXJGbGFnSGVscCA9IE5TSGVscEtleU1hc2s7CiAKK3N0YXRp
YyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCA9IE5TQXBw
bGljYXRpb25EZWZpbmVkOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlRmxh
Z3NDaGFuZ2VkID0gTlNGbGFnc0NoYW5nZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNF
dmVudFR5cGVLZXlEb3duID0gTlNLZXlEb3duOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5T
RXZlbnRUeXBlS2V5VXAgPSBOU0tleVVwOwogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93biA9IE5TTGVmdE1vdXNlRG93bjsKIHN0YXRpYyBjb25zdCBOU0V2
ZW50VHlwZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQgPSBOU0xlZnRNb3VzZURyYWdnZWQ7
CiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVMZWZ0TW91c2VVcCA9IE5TTGVm
dE1vdXNlVXA7CitzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVNb3VzZUVudGVy
ZWQgPSBOU01vdXNlRW50ZXJlZDsKK3N0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlw
ZU1vdXNlRXhpdGVkID0gTlNNb3VzZUV4aXRlZDsKIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBO
U0V2ZW50VHlwZU1vdXNlTW92ZWQgPSBOU01vdXNlTW92ZWQ7CiBzdGF0aWMgY29uc3QgTlNFdmVu
dFR5cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93biA9IE5TT3RoZXJNb3VzZURvd247CiBzdGF0
aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZCA9IE5TT3Ro
ZXJNb3VzZURyYWdnZWQ7CkBAIC0xMDUsNiArMTEyLDExIEBAIHN0YXRpYyBjb25zdCBOU1RleHRB
bGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50UmlnaHQgPSBOU1JpZ2h0VGV4dEFsaWdubWVudDsKIHN0
YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50
ZXJUZXh0QWxpZ25tZW50Owogc3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGln
bm1lbnRMZWZ0ID0gTlNMZWZ0VGV4dEFsaWdubWVudDsKIHN0YXRpYyBjb25zdCBOU1RleHRBbGln
bm1lbnQgTlNUZXh0QWxpZ25tZW50TmF0dXJhbCA9IE5TTmF0dXJhbFRleHRBbGlnbm1lbnQ7Citz
dGF0aWMgY29uc3QgTlNUZXh0QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5T
SnVzdGlmaWVkVGV4dEFsaWdubWVudDsKKwordHlwZWRlZiBOU0ludGVnZXIgTlNXcml0aW5nRGly
ZWN0aW9uRm9ybWF0VHlwZTsKK3N0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRU
eXBlID0gTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlOworc3RhdGljIGNvbnN0IE5TV3Jp
dGluZ0RpcmVjdGlvbkVtYmVkZGluZyA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7
CiAjZW5kaWYKIAogdHlwZWRlZiBOU1VJbnRlZ2VyIE5TV2luZG93U3R5bGVNYXNrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZVByZWZpeC5oCmluZGV4IGQ1NDkzZGU3M2IxOWZkY2JhMzM5YWNhZTU1YjBiNzczZDFkYmIw
ZGQuLjkxNTc1NjZhZDIzOTlmYzFjNWUyMzM2Yjg3ZDg3MWJjMjdmYjJhYjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlUHJlZml4LmgKQEAgLTE2Myw3ICsxNjMsMTAgQEAKICNpZiBQTEFURk9STShJT1MpCiAjaW1w
b3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNlbHNlCisjaWYgVVNFKEFQUEtJVCkKICNp
bXBvcnQgPENvY29hL0NvY29hLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaD4KKyNlbmRpZgogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0
ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KaW5k
ZXggOTRmYzdlZDk5NWNjNDBkODZmNGMwMjgyMzJmNDEzNDIwYmMwODhkZS4uOTZjYzBmNTQ3ZWE2
YmU4ZDEzYzMzNmQ5NjQ1ZWRkNDBjMDljMDY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAtMTEzLDEwICsxMTMsNiBAQCBTT0ZUX0xJTktf
Q0xBU1MoVUlGb3VuZGF0aW9uLCBOU1RleHRUYWIpCiAjZGVmaW5lIFBsYXRmb3JtRm9udCAgICAg
ICAgICAgICAgICBOU0ZvbnQKICNkZWZpbmUgUGxhdGZvcm1Gb250Q2xhc3MgICAgICAgICAgIE5T
Rm9udAogCi0jZGVmaW5lIE5TVGV4dEFsaWdubWVudExlZnQgICAgICAgICBOU0xlZnRUZXh0QWxp
Z25tZW50Ci0jZGVmaW5lIE5TVGV4dEFsaWdubWVudFJpZ2h0ICAgICAgICBOU1JpZ2h0VGV4dEFs
aWdubWVudAotI2RlZmluZSBOU1RleHRBbGlnbm1lbnRDZW50ZXIgICAgICAgTlNDZW50ZXJUZXh0
QWxpZ25tZW50Ci0jZGVmaW5lIE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCAgICBOU0p1c3RpZmll
ZFRleHRBbGlnbm1lbnQKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE4
NCwxMCArMTgwLDEwIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5TV3JpdGluZ0RpcmVj
dGlvbikgewogICAgIE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0ICAgPSAgMSAgICAgLy8g
UmlnaHQgdG8gbGVmdCB3cml0aW5nIGRpcmVjdGlvbgogfSBOU19FTlVNX0FWQUlMQUJMRV9JT1Mo
Nl8wKTsKIAotdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTlNUZXh0V3JpdGluZ0RpcmVjdGlv
bikgewotICAgIE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmcgICAgID0gKDAgPDwgMSks
Ci0gICAgTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlICAgICAgPSAoMSA8PCAxKQotfSBO
U19FTlVNX0FWQUlMQUJMRV9JT1MoN18wKTsKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5T
V3JpdGluZ0RpcmVjdGlvbkZvcm1hdFR5cGUpIHsKKyAgICBOU1dyaXRpbmdEaXJlY3Rpb25FbWJl
ZGRpbmcgICAgID0gKDAgPDwgMSksCisgICAgTlNXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGUgICAg
ICA9ICgxIDw8IDEpCit9IE5TX0VOVU1fQVZBSUxBQkxFX0lPUyg5XzApOwogCiBlbnVtIHsKICAg
ICBOU0VudGVyQ2hhcmFjdGVyICAgICAgICAgICAgICAgID0gMHgwMDAzLApAQCAtMTIxMCw4ICsx
MjA2LDYgQEAgTlNEaWN0aW9uYXJ5ICpIVE1MQ29udmVydGVyOjpjb21wdXRlZEF0dHJpYnV0ZXNG
b3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgICAgIFN0cmluZyB0ZXh0QWxpZ24gPSBf
Y2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShjb3JlQmxvY2tFbGVtZW50LCBDU1NQcm9wZXJ0
eVRleHRBbGlnbik7CiAgICAgICAgIGlmICh0ZXh0QWxpZ24ubGVuZ3RoKCkpIHsKICAgICAgICAg
ICAgIC8vIFdlYktpdCBjYW4gcmV0dXJuIC1raHRtbC1sZWZ0LCAta2h0bWwtcmlnaHQsIC1raHRt
bC1jZW50ZXIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAgICAg
IGlmICh0ZXh0QWxpZ24uZW5kc1dpdGgoImxlZnQiKSkKICAgICAgICAgICAgICAgICBbcGFyYWdy
YXBoU3R5bGUgc2V0QWxpZ25tZW50Ok5TVGV4dEFsaWdubWVudExlZnRdOwogICAgICAgICAgICAg
ZWxzZSBpZiAodGV4dEFsaWduLmVuZHNXaXRoKCJyaWdodCIpKQpAQCAtMTIyMCw3ICsxMjE0LDYg
QEAgTlNEaWN0aW9uYXJ5ICpIVE1MQ29udmVydGVyOjpjb21wdXRlZEF0dHJpYnV0ZXNGb3JFbGVt
ZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgICAgICAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNl
dEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRDZW50ZXJdOwogICAgICAgICAgICAgZWxzZSBpZiAo
dGV4dEFsaWduLmVuZHNXaXRoKCJqdXN0aWZ5IikpCiAgICAgICAgICAgICAgICAgW3BhcmFncmFw
aFN0eWxlIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRKdXN0aWZpZWRdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAKICAgICAgICAgU3RyaW5nIGRpcmVjdGlv
biA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGNvcmVCbG9ja0VsZW1lbnQsIENTU1By
b3BlcnR5RGlyZWN0aW9uKTsKQEAgLTE4NTEsMTggKzE4NDQsMTIgQEAgQk9PTCBIVE1MQ29udmVy
dGVyOjpfcHJvY2Vzc0VsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgTlNJbnRlZ2VyIGRlcHRoKQog
ICAgIGVsc2UgewogICAgICAgICBTdHJpbmcgYmlkaSA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVG
b3JOb2RlKGVsZW1lbnQsIENTU1Byb3BlcnR5VW5pY29kZUJpZGkpOwogICAgICAgICBpZiAoYmlk
aSA9PSAiZW1iZWQiKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBOU1VJbnRlZ2VyIHZh
bCA9IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVkZGluZzsKICAgICAgICAgICAgIGlmIChfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eURpcmVjdGlvbikgPT0g
InJ0bCIpCiAgICAgICAgICAgICAgICAgdmFsIHw9IE5TV3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9M
ZWZ0OwogICAgICAgICAgICAgW193cml0aW5nRGlyZWN0aW9uQXJyYXkgYWRkT2JqZWN0OltOU051
bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnRlZ2VyOnZhbF1dOwogICAgICAgICB9IGVsc2UgaWYg
KGJpZGkgPT0gImJpZGktb3ZlcnJpZGUiKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgICAgICAgICBOU1VJbnRlZ2VyIHZhbCA9IE5TVGV4dFdyaXRpbmdEaXJlY3Rp
b25PdmVycmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIE5T
VUludGVnZXIgdmFsID0gTlNXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGU7CiAgICAgICAgICAgICBp
ZiAoX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVydHlEaXJl
Y3Rpb24pID09ICJydGwiKQogICAgICAgICAgICAgICAgIHZhbCB8PSBOU1dyaXRpbmdEaXJlY3Rp
b25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIFtfd3JpdGluZ0RpcmVjdGlvbkFycmF5IGFkZE9i
amVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50ZWdlcjp2YWxdXTsKQEAgLTIwNjMs
MTQgKzIwNTAsNyBAQCB2b2lkIEhUTUxDb252ZXJ0ZXI6Ol9hZGRNYXJrZXJzVG9MaXN0KE5TVGV4
dExpc3QgKmxpc3QsIE5TUmFuZ2UgcmFuZ2UpCiAgICAgICAgICAgICAgICAgICAgIHRhYiA9IFtb
UGxhdGZvcm1OU1RleHRUYWIgYWxsb2NdIGluaXRXaXRoVHlwZTpOU0xlZnRUYWJTdG9wVHlwZSBs
b2NhdGlvbjptYXJrZXJMb2NhdGlvbl07CiAgICAgICAgICAgICAgICAgICAgIFtuZXdTdHlsZSBh
ZGRUYWJTdG9wOnRhYl07CiAgICAgICAgICAgICAgICAgICAgIFt0YWIgcmVsZWFzZV07Ci0jaWYg
UExBVEZPUk0oSU9TKQogICAgICAgICAgICAgICAgICAgICB0YWIgPSBbW1BsYXRmb3JtTlNUZXh0
VGFiIGFsbG9jXSBpbml0V2l0aFRleHRBbGlnbm1lbnQ6TlNUZXh0QWxpZ25tZW50TmF0dXJhbCBs
b2NhdGlvbjpsaXN0TG9jYXRpb24gb3B0aW9uczpAeyB9XTsKLSNlbHNlCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICAgICAgICAgIHRhYiA9IFtbUGxhdGZv
cm1OU1RleHRUYWIgYWxsb2NdIGluaXRXaXRoVGV4dEFsaWdubWVudDpOU05hdHVyYWxUZXh0QWxp
Z25tZW50IGxvY2F0aW9uOmxpc3RMb2NhdGlvbiBvcHRpb25zOkB7IH1dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgIFtuZXdTdHlsZSBh
ZGRUYWJTdG9wOnRhYl07CiAgICAgICAgICAgICAgICAgICAgIFt0YWIgcmVsZWFzZV07CiAgICAg
ICAgICAgICAgICAgICAgIFtfYXR0clN0ciBhZGRBdHRyaWJ1dGU6TlNQYXJhZ3JhcGhTdHlsZUF0
dHJpYnV0ZU5hbWUgdmFsdWU6bmV3U3R5bGUgcmFuZ2U6cGFyYWdyYXBoUmFuZ2VdOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IDMzNWU2MjYxNDhlOTMy
OWY1ZGFjZjMzM2MzYzE4Y2M2ODYyNDU2MWQuLmIwMzUyNzA4OTFkMGMyNjg5OTAzNjNjNGZkMGY2
ZDE2YTI3MWUzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFu
ZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW0KQEAgLTE1MCwxMCArMTUwLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmtleUV2ZW50KE5TRXZl
bnQgKmV2ZW50KQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIEFTU0VSVChbZXZlbnQgdHlwZV0gPT0g
TlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBU1NFUlQoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93
biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlVcCk7CiAKICAgICBDdXJyZW50RXZl
bnRTY29wZSBzY29wZShldmVudCwgbmlsKTsKICAgICByZXR1cm4ga2V5RXZlbnQoUGxhdGZvcm1F
dmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCkpOwpAQCAtMjA2
LDEyICsyMDMsOSBAQCBzdGF0aWMgYm9vbCBsYXN0RXZlbnRJc01vdXNlVXAoKQogCiAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIE5TRXZlbnQgKmN1cnJlbnRFdmVudEFmdGVy
SGFuZGxpbmdNb3VzZURvd24gPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICByZXR1cm4gRXZlbnRIYW5kbGVyOjpjdXJyZW50TlNF
dmVudCgpICE9IGN1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24KLSAgICAgICAgJiYg
W2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0gTlNMZWZ0TW91c2VV
cAorICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNlRG93biB0eXBlXSA9
PSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAgICYmIFtjdXJyZW50RXZlbnRBZnRlckhh
bmRsaW5nTW91c2VEb3duIHRpbWVzdGFtcF0gPj0gW0V2ZW50SGFuZGxlcjo6Y3VycmVudE5TRXZl
bnQoKSB0aW1lc3RhbXBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNzUsNTggKzM2
OSw1NSBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKE1v
dXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZQogewogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3
aXRjaCAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0pIHsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3Vz
ZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2Fz
ZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgLy8gVGhpcyBjaGVjayBpcyBib2d1
cyBhbmQgcmVzdWx0cyBpbiA8cmRhcjovLzY4MTM4MzA+LCBidXQgcmVtb3ZpbmcgaXQgYnJlYWtz
IGEgbnVtYmVyIG9mCi0gICAgICAgICAgICAvLyBsYXlvdXQgdGVzdHMuCi0gICAgICAgICAgICBp
ZiAoIW1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2
ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNl
RHJhZ2dlZDoKKyAgICAgICAgLy8gVGhpcyBjaGVjayBpcyBib2d1cyBhbmQgcmVzdWx0cyBpbiA8
cmRhcjovLzY4MTM4MzA+LCBidXQgcmVtb3ZpbmcgaXQgYnJlYWtzIGEgbnVtYmVyIG9mCisgICAg
ICAgIC8vIGxheW91dCB0ZXN0cy4KKyAgICAgICAgaWYgKCFtX21vdXNlRG93bldhc0luU3ViZnJh
bWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
LSAgICAgICAgICAgIGlmIChzdWJmcmFtZS0+cGFnZSgpLT5kcmFnQ29udHJvbGxlcigpLmRpZElu
aXRpYXRlRHJhZygpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KHN1YmZyYW1lLT5wYWdlKCktPmRyYWdDb250cm9sbGVyKCkuZGlkSW5pdGlhdGVEcmFnKCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKLSAgICAgICAgY2FzZSBOU01vdXNlTW92
ZWQ6Ci0gICAgICAgICAgICAvLyBTaW5jZSB3ZSdyZSBwYXNzaW5nIGluIGN1cnJlbnROU0V2ZW50
KCkgaGVyZSwgd2UgY2FuIGNhbGwKLSAgICAgICAgICAgIC8vIGhhbmRsZU1vdXNlTW92ZUV2ZW50
KCkgZGlyZWN0bHksIHNpbmNlIHRoZSBzYXZlL3Jlc3RvcmUgb2YKLSAgICAgICAgICAgIC8vIGN1
cnJlbnROU0V2ZW50KCkgdGhhdCBtb3VzZU1vdmVkKCkgZG9lcyB3b3VsZCBoYXZlIG5vIGVmZmVj
dC4KLSAgICAgICAgICAgIEFTU0VSVCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOwotICAgICAg
ICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSB0cnVlOwotICAgICAgICAgICAgc3ViZnJh
bWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlTW92ZUV2ZW50KGN1cnJlbnRQbGF0Zm9ybU1v
dXNlRXZlbnQoKSwgaG92ZXJlZE5vZGUpOwotICAgICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1
YnZpZXcgPSBmYWxzZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgTlNFdmVu
dFR5cGVNb3VzZU1vdmVkOgorICAgICAgICAvLyBTaW5jZSB3ZSdyZSBwYXNzaW5nIGluIGN1cnJl
bnROU0V2ZW50KCkgaGVyZSwgd2UgY2FuIGNhbGwKKyAgICAgICAgLy8gaGFuZGxlTW91c2VNb3Zl
RXZlbnQoKSBkaXJlY3RseSwgc2luY2UgdGhlIHNhdmUvcmVzdG9yZSBvZgorICAgICAgICAvLyBj
dXJyZW50TlNFdmVudCgpIHRoYXQgbW91c2VNb3ZlZCgpIGRvZXMgd291bGQgaGF2ZSBubyBlZmZl
Y3QuCisgICAgICAgIEFTU0VSVCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOworICAgICAgICBt
X3NlbmRpbmdFdmVudFRvU3VidmlldyA9IHRydWU7CisgICAgICAgIHN1YmZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZU1vdmVFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCks
IGhvdmVyZWROb2RlKTsKKyAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIAotICAgICAgICBjYXNlIE5TTGVmdE1vdXNl
RG93bjogewotICAgICAgICAgICAgTm9kZSogbm9kZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsKLSAg
ICAgICAgICAgIGlmICghbm9kZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBp
ZiAoIWlzPFJlbmRlcldpZGdldD4ocmVuZGVyZXIpKQotICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gZG93bmNhc3Q8UmVuZGVyV2lkZ2V0
PigqcmVuZGVyZXIpLndpZGdldCgpOwotICAgICAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdl
dC0+aXNGcmFtZVZpZXcoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
ICAgICBpZiAoIXBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KGRvd25jYXN0PFJlbmRl
cldpZGdldD4ocmVuZGVyZXIpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICBtX21vdXNlRG93bldhc0luU3ViZnJhbWUgPSB0cnVlOwotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOiB7Ci0gICAg
ICAgICAgICBpZiAoIW1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3
KTsKLSAgICAgICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAg
ICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjdXJy
ZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOwotICAgICAgICAgICAgbV9zZW5kaW5nRXZlbnRUb1N1
YnZpZXcgPSBmYWxzZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAg
ICAgIGRlZmF1bHQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246IHsKKyAgICAg
ICAgTm9kZSogbm9kZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsKKyAgICAgICAgaWYgKCFub2RlKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUt
PnJlbmRlcmVyKCk7CisgICAgICAgIGlmICghaXM8UmVuZGVyV2lkZ2V0PihyZW5kZXJlcikpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gZG93bmNh
c3Q8UmVuZGVyV2lkZ2V0PigqcmVuZGVyZXIpLndpZGdldCgpOworICAgICAgICBpZiAoIXdpZGdl
dCB8fCAhd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBpZiAoIXBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KGRvd25jYXN0PFJl
bmRlcldpZGdldD4ocmVuZGVyZXIpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgbV9tb3VzZURvd25XYXNJblN1YmZyYW1lID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDogeworICAgICAgICBpZiAo
IW1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7CisgICAgICAgIG1fc2VuZGlu
Z0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKKyAgICAgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigp
LmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KGN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSk7Cisg
ICAgICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC00NzksMTEgKzQ3MCw4IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVuCiAgICAgICAgIHJldHVybiBkb3duY2FzdDxGcmFtZVZpZXc+KHdpZGdldCku
ZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogICAg
IH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbY3VycmVu
dE5TRXZlbnQoKSB0eXBlXSAhPSBOU1Njcm9sbFdoZWVsIHx8IG1fc2VuZGluZ0V2ZW50VG9TdWJ2
aWV3KQorICAgIGlmIChbY3VycmVudE5TRXZlbnQoKSB0eXBlXSAhPSBOU0V2ZW50VHlwZVNjcm9s
bFdoZWVsIHx8IG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBBU1NFUlQobm9kZVZpZXcpOwog
ICAgIEFTU0VSVChbbm9kZVZpZXcgc3VwZXJ2aWV3XSk7CkBAIC01ODYsMTIgKzU3NCwxMCBAQCB2
b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVudHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZl
bnQgKmluaXRpYXRpbmdFdmVudCkKIAogICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFs
c2U7CiAgICAgaW50IGV2ZW50VHlwZSA9IFtpbml0aWF0aW5nRXZlbnQgdHlwZV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKGV2ZW50VHlwZSA9PSBOU0xlZnRN
b3VzZURvd24gfHwgZXZlbnRUeXBlID09IE5TS2V5RG93bikgeworICAgIGlmIChldmVudFR5cGUg
PT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIHx8IGV2ZW50VHlwZSA9PSBOU0V2ZW50VHlwZUtl
eURvd24pIHsKICAgICAgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gbmlsOwotICAgICAgICBpZiAo
ZXZlbnRUeXBlID09IE5TTGVmdE1vdXNlRG93bikgewotICAgICAgICAgICAgZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlVXAKKyAgICAgICAgaWYgKGV2
ZW50VHlwZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24pIHsKKyAgICAgICAgICAgIGZha2VF
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVw
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W2lu
aXRpYXRpbmdFdmVudCBsb2NhdGlvbkluV2luZG93XQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFn
c10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpb
aW5pdGlhdGluZ0V2ZW50IHRpbWVzdGFtcF0KQEAgLTYwMiw4ICs1ODgsOCBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6c2VuZEZha2VFdmVudHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRp
YXRpbmdFdmVudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmVzc3VyZTpbaW5pdGlhdGluZ0V2ZW50IHByZXNzdXJlXV07CiAgICAgICAgIAogICAgICAgICAg
ICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwotICAgICAgICB9IGVs
c2UgeyAvLyBldmVudFR5cGUgPT0gTlNLZXlEb3duCi0gICAgICAgICAgICBmYWtlRXZlbnQgPSBb
TlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5VXAKKyAgICAgICAgfSBlbHNlIHsgLy8gZXZl
bnRUeXBlID09IE5TRXZlbnRUeXBlS2V5RG93bgorICAgICAgICAgICAgZmFrZUV2ZW50ID0gW05T
RXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nRXZlbnQgbG9jYXRp
b25JbldpbmRvd10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ0V2ZW50IHRpbWVzdGFt
cF0KQEAgLTYxOSw4ICs2MDUsMTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRz
QWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgcmVhbGx5IGdldCB0aGUgY3VycmVudCBtb2RpZmllckZsYWdzIGhl
cmUsIGJ1dCB0aGVyZSdzIG5vIHdheSB0byBwb2xsCiAgICAgICAgIC8vIHRoZW0gaW4gQ29jb2Es
IGFuZCBiZWNhdXNlIHRoZSBldmVudCBzdHJlYW0gd2FzIHN0b2xlbiBieSB0aGUgQ2FyYm9uIG1l
bnUgY29kZSB3ZSBoYXZlCiAgICAgICAgIC8vIG5vIHVwLXRvLWRhdGUgY2FjaGUgb2YgdGhlbSBh
bnl3aGVyZS4KLSAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBl
Ok5TTW91c2VNb3ZlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb246W1t2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10gY29udmVydFNjcmVlblRvQmFz
ZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1t2aWV3LT5wbGF0Zm9ybVdpZGdldCgp
IHdpbmRvd10KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNl
TG9jYXRpb25dXQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmll
ckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6
W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlhdGluZ0V2ZW50IHdpbmRvd051bWJlcl0KQEAgLTYy
OCw3ICs2MTgsNiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVudHNBZnRlcldpZGdl
dFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGlja0NvdW50OjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAg
ICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107CiAgICAgfQogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KaW5kZXgg
YTc0ZGE4NWFjZWNhM2M2Njk4ZGQxNTZhYjMxYTZjOTcxYTM1NGU2ZS4uZTRlMjBkMjI3NjhjODgy
ZTkwMGIxMmI0MWZlMDJlY2RmYjQ4ZjYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC00NTcsMTMgKzQ1NywxMCBAQCB2b2lkIFRleHRJ
bmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJ
bmRpY2F0b3IsIENHUgogICAgIHZlcnRpY2FsTWFyZ2luID0gQ0dDZWlsaW5nKHZlcnRpY2FsTWFy
Z2luKTsKIAogICAgIENHUmVjdCBjb250ZW50UmVjdCA9IENHUmVjdEluc2V0KHRleHRCb3VuZGlu
Z1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzLCAtaG9yaXpvbnRhbE1hcmdpbiwgLXZlcnRpY2FsTWFy
Z2luKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU1JlY3Qgd2lu
ZG93Q29udGVudFJlY3QgPSBbTlNXaW5kb3cgY29udGVudFJlY3RGb3JGcmFtZVJlY3Q6TlNSZWN0
RnJvbUNHUmVjdChjb250ZW50UmVjdCkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2td
OworICAgIE5TUmVjdCB3aW5kb3dDb250ZW50UmVjdCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZv
ckZyYW1lUmVjdDpOU1JlY3RGcm9tQ0dSZWN0KGNvbnRlbnRSZWN0KSBzdHlsZU1hc2s6TlNXaW5k
b3dTdHlsZU1hc2tCb3JkZXJsZXNzXTsKICAgICBOU1JlY3QgaW50ZWdyYWxXaW5kb3dDb250ZW50
UmVjdCA9IE5TSW50ZWdyYWxSZWN0KHdpbmRvd0NvbnRlbnRSZWN0KTsKICAgICBOU1BvaW50IGZy
YWN0aW9uYWxUZXh0T2Zmc2V0ID0gTlNNYWtlUG9pbnQod2luZG93Q29udGVudFJlY3Qub3JpZ2lu
LnggLSBpbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0Lm9yaWdpbi54LCB3aW5kb3dDb250ZW50UmVj
dC5vcmlnaW4ueSAtIGludGVncmFsV2luZG93Q29udGVudFJlY3Qub3JpZ2luLnkpOwotICAgIG1f
dGV4dEluZGljYXRvcldpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhD
b250ZW50UmVjdDppbnRlZ3JhbFdpbmRvd0NvbnRlbnRSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxl
c3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9
IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDppbnRlZ3JhbFdp
bmRvd0NvbnRlbnRSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFj
a2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAgW21fdGV4dEluZGlj
YXRvcldpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgY2xlYXJDb2xvcl1dOwogICAg
IFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0T3BhcXVlOk5PXTsKICAgICBbbV90ZXh0SW5kaWNh
dG9yV2luZG93IHNldElnbm9yZXNNb3VzZUV2ZW50czpZRVNdOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQppbmRleCA1YTQ5ZjNhYjNiZDBlNGIy
YTIyZTQ0ZmI1YzEyYzZjYjg3YjQ1Y2UzLi4yMTFmYzgzMGU3ZGUzZmVjNWNmNTdhYzUxYmY0NjEx
ZDMyZTk5ZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvSWNvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbQpAQCAtMjgsNyArMjgsNyBAQAogI2ltcG9ydCAiTG9jYWxDdXJyZW50R3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW1wb3J0ICJVVElVdGlsaXRpZXMuaCIKICNpbXBvcnQgPHd0Zi9SZWZQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk4LDEwICs5OCw3IEBA
IHZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIHJlY3QpCiAKICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDdXJyZW50
R0MoY29udGV4dCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBb
bV9uc0ltYWdlIGRyYXdJblJlY3Q6cmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFttX25z
SW1hZ2Ugc2l6ZV0ud2lkdGgsIFttX25zSW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlND
b21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9uOjEuMGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIFttX25zSW1hZ2UgZHJhd0luUmVjdDpyZWN0IGZyb21SZWN0Ok5TTWFrZVJl
Y3QoMCwgMCwgW21fbnNJbWFnZSBzaXplXS53aWR0aCwgW21fbnNJbWFnZSBzaXplXS5oZWlnaHQp
IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBm
XTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9X
QUtBcHBLaXRTdHVicy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtBcHBL
aXRTdHVicy5oCmluZGV4IDExNjYxODkwMjY0YjU3Nzk5OTNiZDM3YWVjMzU0M2JhMTMwZDE0MDQu
LjQyOGQ2OTM4NjVhZDViN2QyM2VjNmI4YTJhNjk2ZDU5ODUxZjE2NGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLQXBwS2l0U3R1YnMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS0FwcEtpdFN0dWJzLmgKQEAgLTE1NCwxNSAr
MTU0LDE1IEBAIHR5cGVkZWYgTlNVSW50ZWdlciBOU1JlY3RFZGdlOwogCiAvKiBEZXZpY2UtaW5k
ZXBlbmRlbnQgYml0cyBmb3VuZCBpbiBldmVudCBtb2RpZmllciBmbGFncyAqLwogZW51bSB7Ci0g
ICAgTlNBbHBoYVNoaWZ0S2V5TWFzayA9IDEgPDwgMTYsCi0gICAgTlNTaGlmdEtleU1hc2sgPSAg
ICAgIDEgPDwgMTcsCi0gICAgTlNDb250cm9sS2V5TWFzayA9ICAgIDEgPDwgMTgsCi0gICAgTlNB
bHRlcm5hdGVLZXlNYXNrID0gIDEgPDwgMTksCi0gICAgTlNDb21tYW5kS2V5TWFzayA9ICAgIDEg
PDwgMjAsCi0gICAgTlNOdW1lcmljUGFkS2V5TWFzayA9IDEgPDwgMjEsCi0gICAgTlNIZWxwS2V5
TWFzayA9ICAgICAgIDEgPDwgMjIsCi0gICAgTlNGdW5jdGlvbktleU1hc2sgPSAgIDEgPDwgMjMs
Ci0gICAgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrID0gMHhmZmZmMDAwMFUK
KyAgICBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2sgPSAxIDw8IDE2LAorICAgIE5TRXZlbnRN
b2RpZmllckZsYWdTaGlmdCA9IDEgPDwgMTcsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRy
b2wgPSAxIDw8IDE4LAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24gPSAxIDw8IDE5LAor
ICAgIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kID0gMSA8PCAyMCwKKyAgICBOU0V2ZW50TW9k
aWZpZXJGbGFnTnVtZXJpY1BhZCA9IDEgPDwgMjEsCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0hl
bHAgPSAxIDw8IDIyLAorICAgIE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbiA9IDEgPDwgMjMs
CisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrID0gMHhm
ZmZmMDAwMFUKIH07CiAKIHR5cGVkZWYgZW51bSBfV0tXcml0aW5nRGlyZWN0aW9uIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4IGE2ZDc4MzI4ZTlmZTYyN2Vm
MTRhZmM5YzBiZDBmNjY5ZWIyNTRkMGMuLjg1Y2M3YzVmZGQyYzE2MDYyY2Y4YTAxODY0YTI5ZmMz
NDQ1YTdlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAt
NjQsMTAgKzY0LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0N1cnNvcj4gY3JlYXRlQ3VzdG9tQ3Vy
c29yKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGhvdFMKICAgICAgICAgTlNSZWN0IGZy
b21SZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgp
KTsKIAogICAgICAgICBbZXhwYW5kZWRJbWFnZSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbnNJbWFnZSBkcmF3SW5SZWN0OnRvUmVjdCBm
cm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGVTb3VyY2VPdmVyIGZyYWN0aW9u
OjFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBbbnNJbWFnZSBkcmF3
SW5SZWN0OnRvUmVjdCBmcm9tUmVjdDpmcm9tUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09w
ZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07CiAgICAgICAgIFtleHBhbmRlZEltYWdlIHVu
bG9ja0ZvY3VzXTsKIAogICAgICAgICByZXR1cm4gYWRvcHROUyhbW05TQ3Vyc29yIGFsbG9jXSBp
bml0V2l0aEltYWdlOmV4cGFuZGVkSW1hZ2UuZ2V0KCkgaG90U3BvdDpob3RTcG90XSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCA2ODI0NmJlZmE1
MjNlZGZmM2I2MDVjNjAxMTg3MTlkNDcyOThkMDliLi5kMmY4ZjcwODAzY2NkZjljNTJiZGI2YTE3
YmQ4MDE4NTUxZGMzYzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
RHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1h
Z2VNYWMubW0KQEAgLTc1LDEwICs3NSw3IEBAIFJldGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2ZURy
YWdJbWFnZVRvRnJhY3Rpb24oUmV0YWluUHRyPE5TSW1hZ2U+IGltYWdlLCBmbG9hdCBkCiAgICAg
UmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZlZEltYWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxs
b2NdIGluaXRXaXRoU2l6ZTpbaW1hZ2UuZ2V0KCkgc2l6ZV1dKTsKICAgICAKICAgICBbZGlzc29s
dmVkSW1hZ2UuZ2V0KCkgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICBbaW1hZ2UuZ2V0KCkgZHJhd0F0UG9pbnQ6TlNaZXJvUG9pbnQgZnJvbVJlY3Q6
TlNNYWtlUmVjdCgwLCAwLCBbaW1hZ2Ugc2l6ZV0ud2lkdGgsIFtpbWFnZSBzaXplXS5oZWlnaHQp
IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZUNvcHkgZnJhY3Rpb246ZGVsdGFdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIFtpbWFnZS5nZXQoKSBkcmF3QXRQb2ludDpOU1plcm9Qb2lu
dCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIFtpbWFnZSBzaXplXS53aWR0aCwgW2ltYWdlIHNp
emVdLmhlaWdodCkgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Db3B5IGZyYWN0aW9u
OmRlbHRhXTsKICAgICBbZGlzc29sdmVkSW1hZ2UuZ2V0KCkgdW5sb2NrRm9jdXNdOwogCiAgICAg
cmV0dXJuIGRpc3NvbHZlZEltYWdlOwpAQCAtMTE5LDEwICsxMTYsOCBAQCBSZXRhaW5QdHI8TlNJ
bWFnZT4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaQogICAgICAgICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIHNldFRyYW5zZm9y
bVN0cnVjdDoqKE5TQWZmaW5lVHJhbnNmb3JtU3RydWN0KikmdHJhbnNmb3JtXTsKICAgICAgICAg
ICAgIFtjb2NvYVRyYW5zZm9ybS5nZXQoKSBjb25jYXRdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRy
YXdJblJlY3Q6ZGVzdFJlY3QgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRoKCks
IHNpemUuaGVpZ2h0KCkpIG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rpb246
MS4wXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIFtpbWFnZS0+
c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0
KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRp
bmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07CisKICAgICAgICAgICAgIFtyb3Rh
dGVkRHJhZ0ltYWdlLmdldCgpIHVubG9ja0ZvY3VzXTsKIAogICAgICAgICAgICAgcmV0dXJuIHJv
dGF0ZWREcmFnSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
RXZlbnRMb29wTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0V2ZW50TG9vcE1h
Yy5tbQppbmRleCBhZjBhMzk5MmI2NmU5ZDZmZmMwMTc3MTI0ODU3NjI2YTAwNWE1ZTkwLi4zNmM0
NmNjOGYyMDljY2I5NmQzODAxZjM2MjA1ZjE5OWEwMWU0MmQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRXZlbnRMb29wTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9FdmVudExvb3BNYWMubW0KQEAgLTMxLDEwICszMSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIHZvaWQgRXZlbnRMb29wOjpjeWNsZSgpCiB7CiAgICAgW05TQXBwIHNldFdp
bmRvd3NOZWVkVXBkYXRlOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgW05TQXBwIHNlbmRFdmVudDpbTlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TQW55
RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6
MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgW05TQXBwIHNlbmRFdmVudDpbTlNBcHAgbmV4dEV2
ZW50TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrQW55IHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRo
VGltZUludGVydmFsU2luY2VOb3c6MC4wNV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRl
cXVldWU6WUVTXV07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggYTVkZjM0NzRjMzExYzZhNzU2
MWQ3ZjRkNDQ1NTMxNGFhMDRkMDA3MC4uOTI5YmIzMGYzMjk4OTVhNDQ4ZTdkOWJkNTEzMDBkYTkw
YmFhYjQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9h
cmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMu
bW0KQEAgLTY1MywxMSArNjUzLDggQEAgdm9pZCBQYXN0ZWJvYXJkOjpzZXREcmFnSW1hZ2UoRHJh
Z0ltYWdlUmVmIGltYWdlLCBjb25zdCBJbnRQb2ludCYgbG9jYXRpb24pCiAgICAgLy8gSGFjazog
V2UgbXVzdCBwb3N0IGFuIGV2ZW50IHRvIHdha2UgdXAgdGhlIE5TRHJhZ01hbmFnZXIsIHdoaWNo
IGlzIHNpdHRpbmcgaW4gYSBuZXh0RXZlbnQgY2FsbAogICAgIC8vIHVwIHRoZSBzdGFjayBmcm9t
IHVzIGJlY2F1c2UgdGhlIENvcmVGb3VuZGF0aW9uIGRyYWcgbWFuYWdlciBkb2VzIG5vdCB1c2Ug
dGhlIHJ1biBsb29wIGJ5IGl0c2VsZi4KICAgICAvLyBUaGlzIGlzIHRoZSBtb3N0IGlubm9jdW91
cyBldmVudCB0byB1c2UsIHBlciBLcmlzdGVuIEZvcnN0ZXIuCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9uOk5TWmVyb1BvaW50CisgICAgTlNFdmVudCog
ZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVk
IGxvY2F0aW9uOk5TWmVyb1BvaW50CiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6
MCB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBw
cmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbTlNBcHAgcG9z
dEV2ZW50OmV2ZW50IGF0U3RhcnQ6WUVTXTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IGQz
NGQ2ZWFlOTQ4ZjdhZmNiYWIzMzAzMTRmZGNiYTc4ZTllNDAwYjguLjc3MDVkMTZiNGM0N2U5ZjMw
M2MyNDY0MmMwM2M5ODFjYTU4NmJlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTM2LDcgKzM2LDYgQEAK
ICNpbXBvcnQgPEhJVG9vbGJveC9FdmVudHMuaD4KICNpbXBvcnQgPG1hY2gvbWFjaF90aW1lLmg+
CiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgotI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21w
YXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTIs
MjcgKzUxLDI0IEBAIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKICNpZiBkZWZpbmVkKF9fTFA2
NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgICAg
IGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKKyAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6
CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2Fz
ZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUVudGVyZWQ6Ci0g
ICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0g
ICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VE
cmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TUmln
aHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAg
Y2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1Njcm9sbFdoZWVsOgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFBvaW50KFtl
dmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10pOwotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgcmV0dXJuIHsgMCwgMCB9OworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFbnRl
cmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZUV4aXRlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmln
aHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVTY3JvbGxXaGVlbDoKKyAgICAgICAgcmV0
dXJuIGdsb2JhbFBvaW50KFtldmVudCBsb2NhdGlvbkluV2luZG93XSwgW2V2ZW50IHdpbmRvd10p
OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiB7IDAsIDAgfTsKICAgICB9CiB9CiAKQEAg
LTgwLDMzICs3NiwzMCBAQCBzdGF0aWMgSW50UG9pbnQgcG9pbnRGb3JFdmVudChOU0V2ZW50ICpl
dmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7
CiAjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VE
ID49IDEwMTAwMwotICAgICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1cmU6CisgICAgY2FzZSBO
U0V2ZW50VHlwZVByZXNzdXJlOgogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TTGVm
dE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNl
IE5TTW91c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgIGNh
c2UgTlNNb3VzZU1vdmVkOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoK
LSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3Vz
ZURyYWdnZWQ6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNT
Y3JvbGxXaGVlbDogewotICAgICAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9y
aWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBp
cyBmbGlwcGVkLgotICAgICAgICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHRoZSBZIGNvb3JkaW5h
dGUgZ2V0cyBmbGlwcGVkIGJ5IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nV2luZG93Lgot
ICAgICAgICAgICAgTlNQb2ludCBsb2NhdGlvbiA9IFtldmVudCBsb2NhdGlvbkluV2luZG93XTsK
LSAgICAgICAgICAgIGlmICh3aW5kb3dWaWV3KQotICAgICAgICAgICAgICAgIGxvY2F0aW9uID0g
W3dpbmRvd1ZpZXcgY29udmVydFBvaW50OmxvY2F0aW9uIGZyb21WaWV3Om5pbF07Ci0gICAgICAg
ICAgICByZXR1cm4gSW50UG9pbnQobG9jYXRpb24pOwotICAgICAgICB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gSW50
UG9pbnQoKTsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
VXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1v
dXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlU2Nyb2xsV2hlZWw6IHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB3aWxsIGhhdmUg
aXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2YgdGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93
VmlldyBpcyBmbGlwcGVkLgorICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgdGhlIFkgY29vcmRp
bmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cu
CisgICAgICAgIE5TUG9pbnQgbG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107Cisg
ICAgICAgIGlmICh3aW5kb3dWaWV3KQorICAgICAgICAgICAgbG9jYXRpb24gPSBbd2luZG93Vmll
dyBjb252ZXJ0UG9pbnQ6bG9jYXRpb24gZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgcmV0dXJuIElu
dFBvaW50KGxvY2F0aW9uKTsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIElu
dFBvaW50KCk7CiAgICAgfQogfQogCkBAIC0xMTQsNzIgKzEwNyw2MyBAQCBzdGF0aWMgTW91c2VC
dXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBzd2l0Y2gg
KFtldmVudCB0eXBlXSkgewogI2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEwMDMKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNz
dXJlOgorICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKLSAg
ICAgICAgY2FzZSBOU0xlZnRNb3VzZVVwOgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dl
ZDoKLSAgICAgICAgICAgIHJldHVybiBMZWZ0QnV0dG9uOwotICAgICAgICBjYXNlIE5TUmlnaHRN
b3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNS
aWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBSaWdodEJ1dHRvbjsKLSAgICAg
ICAgY2FzZSBOU090aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgot
ICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTWlk
ZGxlQnV0dG9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgcmV0dXJuIE5vQnV0dG9uOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgcmV0dXJuIExlZnRCdXR0b247Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAg
ICAgICByZXR1cm4gUmlnaHRCdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VE
b3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4gTWlkZGxlQnV0dG9uOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBOb0J1dHRvbjsKICAgICB9CiB9CiAKIHN0YXRpYyBQ
bGF0Zm9ybUV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQp
CiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0gICAgICAgIGNh
c2UgTlNNb3VzZUVudGVyZWQ6Ci0gICAgICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICAgICAg
Y2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAg
ICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRG93
bjoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7Ci0gICAg
ICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAg
ICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2
ZW50OjpNb3VzZVJlbGVhc2VkOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7
CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91
c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICAg
ICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgY2FzZSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAg
IGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICAgICAgcmV0dXJuIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZVVwOgorICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsK
ICAgICB9CiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50
KQogewogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNl
IE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAg
ICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0g
ICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURyYWdnZWQ6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAg
ICByZXR1cm4gW2V2ZW50IGNsaWNrQ291bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgcmV0dXJuIDA7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VE
cmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJh
Z2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2
ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdn
ZWQ6CisgICAgICAgIHJldHVybiBbZXZlbnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogfQogCkBAIC00OTcsMjggKzQ4MSwyOCBAQCBTdHJpbmcg
a2V5SWRlbnRpZmllckZvcktleUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChbZXZl
bnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpIHsKICAgICAgICAgc3dpdGNoIChb
ZXZlbnQga2V5Q29kZV0pIHsKLSAgICAgICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQK
LSAgICAgICAgICAgIGNhc2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoIk1ldGEiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2Ug
NTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiQ2Fwc0xvY2si
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgNTY6IC8vIExlZnQgU2hpZnQK
LSAgICAgICAgICAgIGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIFN0cmluZygiU2hpZnQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2Ug
NTg6IC8vIExlZnQgQWx0Ci0gICAgICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAg
ICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJBbHQiKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAgICAgICAgY2FzZSA2MjogLy8gUmln
aHQgQ3RybAotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNvbnRyb2wiKTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cisg
ICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1hbmQKKyAgICAgICAgY2FzZSA1NTogLy8gTGVm
dCBDb21tYW5kCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCJNZXRhIik7CisKKyAgICAgICAg
Y2FzZSA1NzogLy8gQ2Fwc2xvY2sKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkNhcHNMb2Nr
Iik7CisKKyAgICAgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAorICAgICAgICBjYXNlIDYwOiAv
LyBSaWdodCBTaGlmdAorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygiU2hpZnQiKTsKKworICAg
ICAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAorICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQK
KyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoIkFsdCIpOworCisgICAgICAgIGNhc2UgNTk6IC8v
IExlZnQgQ3RybAorICAgICAgICBjYXNlIDYyOiAvLyBSaWdodCBDdHJsCisgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJDb250cm9sIik7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC01MzQsNDQgKzUxOCwzOCBAQCBzdGF0aWMgYm9v
bCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhp
cyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBO
U0ZsYWdzQ2hhbmdlZDoKLSAgICAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TTnVtZXJp
Y1BhZEtleU1hc2spCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAogICAgIHN3aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAg
IGNhc2UgNzE6IC8vIENsZWFyCi0gICAgICAgIGNhc2UgODE6IC8vID0KLSAgICAgICAgY2FzZSA3
NTogLy8gLwotICAgICAgICBjYXNlIDY3OiAvLyAqCi0gICAgICAgIGNhc2UgNzg6IC8vIC0KLSAg
ICAgICAgY2FzZSA2OTogLy8gKwotICAgICAgICBjYXNlIDc2OiAvLyBFbnRlcgotICAgICAgICBj
YXNlIDY1OiAvLyAuCi0gICAgICAgIGNhc2UgODI6IC8vIDAKLSAgICAgICAgY2FzZSA4MzogLy8g
MQotICAgICAgICBjYXNlIDg0OiAvLyAyCi0gICAgICAgIGNhc2UgODU6IC8vIDMKLSAgICAgICAg
Y2FzZSA4NjogLy8gNAotICAgICAgICBjYXNlIDg3OiAvLyA1Ci0gICAgICAgIGNhc2UgODg6IC8v
IDYKLSAgICAgICAgY2FzZSA4OTogLy8gNwotICAgICAgICBjYXNlIDkxOiAvLyA4Ci0gICAgICAg
IGNhc2UgOTI6IC8vIDkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9CisgICAgY2Fz
ZSA3MTogLy8gQ2xlYXIKKyAgICBjYXNlIDgxOiAvLyA9CisgICAgY2FzZSA3NTogLy8gLworICAg
IGNhc2UgNjc6IC8vICoKKyAgICBjYXNlIDc4OiAvLyAtCisgICAgY2FzZSA2OTogLy8gKworICAg
IGNhc2UgNzY6IC8vIEVudGVyCisgICAgY2FzZSA2NTogLy8gLgorICAgIGNhc2UgODI6IC8vIDAK
KyAgICBjYXNlIDgzOiAvLyAxCisgICAgY2FzZSA4NDogLy8gMgorICAgIGNhc2UgODU6IC8vIDMK
KyAgICBjYXNlIDg2OiAvLyA0CisgICAgY2FzZSA4NzogLy8gNQorICAgIGNhc2UgODg6IC8vIDYK
KyAgICBjYXNlIDg5OiAvLyA3CisgICAgY2FzZSA5MTogLy8gOAorICAgIGNhc2UgOTI6IC8vIDkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwog
fQpAQCAtNTg1LDEwICs1NjMsNyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2
ZW50KiBldmVudCkKICAgICAvLyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBN
YWMgdmlydHVhbCBrZXkgY29kZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFp
biBwdW5jdHVhdGlvbiBrZXlzLiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBk
ZXBlbmRpbmcgb24gY3VycmVudCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBj
b21tZW50IGluIHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoIWlzS2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZl
bnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSkgewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkg
JiYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09
IE5TRXZlbnRUeXBlS2V5VXApKSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0
ZXJzIGZvciBEdm9yYWstUVdFUlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMg
Zmlyc3QuCiAgICAgICAgIE5TU3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAg
ICBjb2RlID0gW3MgbGVuZ3RoXSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNo
YXJhY3RlckF0SW5kZXg6MF0pIDogMDsKQEAgLTY0NiwzNSArNjIxLDMyIEBAIGRvdWJsZSBldmVu
dFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKIAogc3RhdGljIGlubGluZSBib29s
IGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3NDaGFuZ2VkKQotICAg
ICAgICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TS2V5VXA7CisgICAgaWYgKFtldmVudCB0eXBl
XSAhPSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKKyAgICAgICAgcmV0dXJuIFtldmVudCB0eXBl
XSA9PSBOU0V2ZW50VHlwZUtleVVwOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGZhaWxzIGlm
IHRoZSB1c2VyIHByZXNzZXMgYm90aCBTaGlmdCBrZXlzIGF0IG9uY2UsIGZvciBleGFtcGxlOgog
ICAgIC8vIHdlIHRyZWF0IHJlbGVhc2luZyBvbmUgb2YgdGhlbSBhcyBrZXlEb3duLgogICAgIHN3
aXRjaCAoW2V2ZW50IGtleUNvZGVdKSB7Ci0gICAgICAgIGNhc2UgNTQ6IC8vIFJpZ2h0IENvbW1h
bmQKLSAgICAgICAgY2FzZSA1NTogLy8gTGVmdCBDb21tYW5kCi0gICAgICAgICAgICByZXR1cm4g
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spID09IDA7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgY2FzZSA1NzogLy8gQ2Fwc2xvY2sKLSAgICAgICAgICAgIHJldHVybiAo
W2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHBoYVNoaWZ0S2V5TWFzaykgPT0gMDsKLSAgICAg
ICAgICAgIAotICAgICAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0Ci0gICAgICAgIGNhc2UgNjA6
IC8vIFJpZ2h0IFNoaWZ0Ci0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdz
XSAmIE5TU2hpZnRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgNTg6
IC8vIExlZnQgQWx0Ci0gICAgICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAotICAgICAgICAgICAg
cmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spID09IDA7
Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA1OTogLy8gTGVmdCBDdHJsCi0gICAgICAgIGNh
c2UgNjI6IC8vIFJpZ2h0IEN0cmwKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNDb250cm9sS2V5TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBj
YXNlIDYzOiAvLyBGdW5jdGlvbgotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0Z1bmN0aW9uS2V5TWFzaykgPT0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCisgICAgY2FzZSA1NTogLy8gTGVm
dCBDb21tYW5kCisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZl
bnRNb2RpZmllckZsYWdDb21tYW5kKTsKKworICAgIGNhc2UgNTc6IC8vIENhcHNsb2NrCisgICAg
ICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdD
YXBzTG9jayk7CisKKyAgICBjYXNlIDU2OiAvLyBMZWZ0IFNoaWZ0CisgICAgY2FzZSA2MDogLy8g
UmlnaHQgU2hpZnQKKyAgICAgICAgcmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNF
dmVudE1vZGlmaWVyRmxhZ1NoaWZ0KTsKKworICAgIGNhc2UgNTg6IC8vIExlZnQgQWx0CisgICAg
Y2FzZSA2MTogLy8gUmlnaHQgQWx0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmllckZs
YWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pOworCisgICAgY2FzZSA1OTogLy8gTGVm
dCBDdHJsCisgICAgY2FzZSA2MjogLy8gUmlnaHQgQ3RybAorICAgICAgICByZXR1cm4gIShbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCk7CisKKyAgICBj
YXNlIDYzOiAvLyBGdW5jdGlvbgorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb24pOwogICAgIH0KICAgICByZXR1cm4gZmFs
c2U7CiB9CkBAIC04MTgsMTAgKzc5MCw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9rZXkgPSBrZXlG
b3JLZXlFdmVudChldmVudCk7CiAgICAgICAgIG1fY29kZSA9IGNvZGVGb3JLZXlFdmVudChldmVu
dCk7CiAgICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gd2luZG93c0tleUNvZGVGb3JL
ZXlFdmVudChldmVudCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAg
ICAgIG1fYXV0b1JlcGVhdCA9IFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCAmJiBbZXZl
bnQgaXNBUmVwZWF0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgbV9h
dXRvUmVwZWF0ID0gW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkICYmIFtl
dmVudCBpc0FSZXBlYXRdOwogICAgICAgICBtX2lzS2V5cGFkID0gaXNLZXlwYWRFdmVudChldmVu
dCk7CiAgICAgICAgIG1faXNTeXN0ZW1LZXkgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5
cyBmYWxzZSBvbiB0aGUgTWFjLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsYmFyVGhlbWVNYWMubW0KaW5kZXggOTFjYmVkZDBjZGEwNzA2NWIzYmYzZjE3MDE1OGYx
ZDYyNzczMTgzZi4uMTUwZmFiZThlMzc3NGYwNjI1Zjg1OTY2NGNhZjc4NzRjYzdjNjVhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpA
QCAtMTM5LDE4ICsxMzksMTUgQEAgc3RhdGljIFNjcm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQgZ0J1
dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVFbmQ7CiAKIHN0YXRpYyBOU0Nv
bnRyb2xTaXplIHNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXplKFNjcm9sbGJhckNv
bnRyb2xTaXplIGNvbnRyb2xTaXplKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgogICAgIHN3aXRjaCAoY29udHJvbFNpemUpIHsKICAgICBjYXNlIFJlZ3VsYXJTY3JvbGxi
YXI6Ci0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAgICAgICAgcmV0dXJu
IE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGNhc2UgU21hbGxTY3JvbGxiYXI6Ci0gICAgICAg
IHJldHVybiBOU1NtYWxsQ29udHJvbFNpemU7CisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXpl
U21hbGw7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIE5T
UmVndWxhckNvbnRyb2xTaXplOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHJl
dHVybiBOU0NvbnRyb2xTaXplUmVndWxhcjsKIH0KIAogdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6
ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxiYXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggMDI0NzJjOWE2OTA4YzZmZGIwMzgyODFmYWFh
ODM4ZGZiNTE1ZTRkNS4uMmJjMjYyZDgwNmVlOWNmM2FjN2U1NDFmNjhhYzMwMmI2MmQwODY4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQpAQCAtNjcsMTEgKzY3LDgg
QEAgLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsKICAgICAvLyBVc2luZyBkZWZlcjpZRVMgcHJldmVu
dHMgdXMgZnJvbSB3YXN0aW5nIGFueSB3aW5kb3cgc2VydmVyIHJlc291cmNlcyBmb3IgdGhpcyB3
aW5kb3csIHNpbmNlIHdlJ3JlIG5vdCBhY3R1YWxseQogICAgIC8vIGdvaW5nIHRvIGRyYXcgaW50
byBpdC4gVGhlIG90aGVyIGFyZ3VtZW50cyBtYXRjaCB3aGF0IHlvdSBnZXQgd2hlbiBjYWxsaW5n
IC1bTlNXaW5kb3cgaW5pdF0uCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgc3RhdGljIFdlYkNvcmVUaGVtZVdpbmRvdyAqd2luZG93ID0gW1tXZWJDb3JlVGhlbWVXaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgxMDAsIDEwMCwgMTAwLCAx
MDApCi0gICAgICAgIHN0eWxlTWFzazpOU1RpdGxlZFdpbmRvd01hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza1RpdGxlZCBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKICAgICByZXR1cm4gd2luZG93OwogfQogCkBA
IC0xNDQsMTUgKzE0MSwxMiBAQCBUaGVtZSogcGxhdGZvcm1UaGVtZSgpCiAKIHN0YXRpYyBOU0Nv
bnRyb2xTaXplIGNvbnRyb2xTaXplRm9yRm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCkKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpbnQgZm9udFNpemUgPSBm
b250LnBpeGVsU2l6ZSgpOwogICAgIGlmIChmb250U2l6ZSA+PSAxNikKLSAgICAgICAgcmV0dXJu
IE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3Vs
YXI7CiAgICAgaWYgKGZvbnRTaXplID49IDExKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRy
b2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1
cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyBMZW5ndGhTaXplIHNpemVGcm9tTlND
b250cm9sU2l6ZShOU0NvbnRyb2xTaXplIG5zQ29udHJvbFNpemUsIGNvbnN0IExlbmd0aFNpemUm
IHpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IsIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwg
Mz4mIHNpemVzKQpAQCAtMTc1LDE2ICsxNjksMTMgQEAgc3RhdGljIExlbmd0aFNpemUgc2l6ZUZy
b21Gb250KGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBMZW5ndGhTaXplJiB6b29tZWQK
IAogc3RhdGljIENvbnRyb2xTaXplIGNvbnRyb2xTaXplRnJvbVBpeGVsU2l6ZShjb25zdCBzdGQ6
OmFycmF5PEludFNpemUsIDM+JiBzaXplcywgY29uc3QgSW50U2l6ZSYgbWluWm9vbWVkU2l6ZSwg
ZmxvYXQgem9vbUZhY3RvcikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNb
TlNSZWd1bGFyQ29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tRmFjdG9yKSAmJgotICAgICAgICBt
aW5ab29tZWRTaXplLmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFy
Q29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUZhY3RvcikpCi0gICAgICAgIHJldHVybiBOU1Jl
Z3VsYXJDb250cm9sU2l6ZTsKLSAgICBpZiAobWluWm9vbWVkU2l6ZS53aWR0aCgpID49IHN0YXRp
Y19jYXN0PGludD4oc2l6ZXNbTlNTbWFsbENvbnRyb2xTaXplXS53aWR0aCgpICogem9vbUZhY3Rv
cikgJiYKLSAgICAgICAgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+
KHNpemVzW05TU21hbGxDb250cm9sU2l6ZV0uaGVpZ2h0KCkgKiB6b29tRmFjdG9yKSkKLSAgICAg
ICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNp
emU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKG1pblpvb21lZFNpemUu
d2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVSZWd1bGFyXS53
aWR0aCgpICogem9vbUZhY3RvcikKKyAgICAgICAgJiYgbWluWm9vbWVkU2l6ZS5oZWlnaHQoKSA+
PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29udHJvbFNpemVSZWd1bGFyXS5oZWlnaHQoKSAq
IHpvb21GYWN0b3IpKQorICAgICAgICByZXR1cm4gTlNDb250cm9sU2l6ZVJlZ3VsYXI7CisgICAg
aWYgKG1pblpvb21lZFNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29u
dHJvbFNpemVTbWFsbF0ud2lkdGgoKSAqIHpvb21GYWN0b3IpCisgICAgICAgICYmIG1pblpvb21l
ZFNpemUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplU21h
bGxdLmhlaWdodCgpICogem9vbUZhY3RvcikpCisgICAgICAgIHJldHVybiBOU0NvbnRyb2xTaXpl
U21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQogCiBzdGF0aWMgdm9pZCBz
ZXRDb250cm9sU2l6ZShOU0NlbGwqIGNlbGwsIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4m
IHNpemVzLCBjb25zdCBJbnRTaXplJiBtaW5ab29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQpA
QCAtNDgwLDEwICs0NzEsNyBAQCBzdGF0aWMgdm9pZCBzZXRVcEJ1dHRvbkNlbGwoTlNCdXR0b25D
ZWxsICpjZWxsLCBDb250cm9sUGFydCBwYXJ0LCBjb25zdCBDb250cm9sUwogewogICAgIC8vIFNl
dCB0aGUgY29udHJvbCBzaXplIGJhc2VkIG9mZiB0aGUgcmVjdGFuZ2xlIHdlJ3JlIHBhaW50aW5n
IGludG8uCiAgICAgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMgPSBidXR0b25T
aXplcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChwYXJ0
ID09IFNxdWFyZUJ1dHRvblBhcnQgfHwgem9vbWVkU2l6ZS5oZWlnaHQoKSA+IGJ1dHRvblNpemVz
KClbTlNSZWd1bGFyQ29udHJvbFNpemVdLmhlaWdodCgpICogem9vbUZhY3RvcikgewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlmIChwYXJ0ID09IFNxdWFyZUJ1dHRvblBhcnQg
fHwgem9vbWVkU2l6ZS5oZWlnaHQoKSA+IGJ1dHRvblNpemVzKClbTlNDb250cm9sU2l6ZVJlZ3Vs
YXJdLmhlaWdodCgpICogem9vbUZhY3RvcikgewogICAgICAgICAvLyBVc2UgdGhlIHNxdWFyZSBi
dXR0b24KICAgICAgICAgaWYgKFtjZWxsIGJlemVsU3R5bGVdICE9IE5TU2hhZG93bGVzc1NxdWFy
ZUJlemVsU3R5bGUpCiAgICAgICAgICAgICBbY2VsbCBzZXRCZXplbFN0eWxlOk5TU2hhZG93bGVz
c1NxdWFyZUJlemVsU3R5bGVdOwpAQCAtNTc5LDE1ICs1NjcsMTIgQEAgc3RhdGljIGNvbnN0IHN0
ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHN0ZXBwZXJTaXplcygpCiAvLyBzaG91bGQgYmUgZXF1YWwg
dG8gb3IgbGVzcyB0aGFuIHRoZSBjb3JyZXNwb25kaW5nIHRleHQgZmllbGQgaGVpZ2h0LAogc3Rh
dGljIE5TQ29udHJvbFNpemUgc3RlcHBlckNvbnRyb2xTaXplRm9yRm9udChjb25zdCBGb250Q2Fz
Y2FkZSYgZm9udCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBp
bnQgZm9udFNpemUgPSBmb250LnBpeGVsU2l6ZSgpOwogICAgIGlmIChmb250U2l6ZSA+PSAxOCkK
LSAgICAgICAgcmV0dXJuIE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAgICByZXR1cm4gTlND
b250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgaWYgKGZvbnRTaXplID49IDEzKQotICAgICAgICByZXR1
cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVT
bWFsbDsKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHN0YXRpYyB2b2lkIHBh
aW50U3RlcHBlcihDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxW
aWV3KikKQEAgLTYwMCwxNSArNTg1LDEyIEBAIHN0YXRpYyB2b2lkIHBhaW50U3RlcHBlcihDb250
cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QKICAgICBk
cmF3SW5mby5zdGF0ZSA9IGNvbnZlcnRDb250cm9sU3RhdGVzVG9UaGVtZURyYXdTdGF0ZShrVGhl
bWVJbmNEZWNCdXR0b24sIHN0YXRlcyk7CiAgICAgZHJhd0luZm8uYWRvcm5tZW50ID0ga1RoZW1l
QWRvcm5tZW50RGVmYXVsdDsKICAgICBDb250cm9sU2l6ZSBjb250cm9sU2l6ZSA9IGNvbnRyb2xT
aXplRnJvbVBpeGVsU2l6ZShzdGVwcGVyU2l6ZXMoKSwgSW50U2l6ZSh6b29tZWRSZWN0LnNpemUo
KSksIHpvb21GYWN0b3IpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
IGlmIChjb250cm9sU2l6ZSA9PSBOU1NtYWxsQ29udHJvbFNpemUpCisgICAgaWYgKGNvbnRyb2xT
aXplID09IE5TQ29udHJvbFNpemVTbWFsbCkKICAgICAgICAgZHJhd0luZm8ua2luZCA9IGtUaGVt
ZUluY0RlY0J1dHRvblNtYWxsOwotICAgIGVsc2UgaWYgKGNvbnRyb2xTaXplID09IE5TTWluaUNv
bnRyb2xTaXplKQorICAgIGVsc2UgaWYgKGNvbnRyb2xTaXplID09IE5TQ29udHJvbFNpemVNaW5p
KQogICAgICAgICBkcmF3SW5mby5raW5kID0ga1RoZW1lSW5jRGVjQnV0dG9uTWluaTsKICAgICBl
bHNlCiAgICAgICAgIGRyYXdJbmZvLmtpbmQgPSBrVGhlbWVJbmNEZWNCdXR0b247Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICBJbnRSZWN0IHJlY3Qoem9vbWVkUmVjdCk7CiAg
ICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwpAQCAtNzQ5
LDEyICs3MzEsOSBAQCBMZW5ndGhTaXplIFRoZW1lTWFjOjptaW5pbXVtQ29udHJvbFNpemUoQ29u
dHJvbFBhcnQgcGFydCwgY29uc3QgRm9udENhc2NhZGUmIGZvbgogICAgICAgICBjYXNlIEJ1dHRv
blBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZShMZW5ndGgoMCwgRml4ZWQpLCBM
ZW5ndGgoc3RhdGljX2Nhc3Q8aW50PigxNSAqIHpvb21GYWN0b3IpLCBGaXhlZCkpOwogICAgICAg
ICBjYXNlIElubmVyU3BpbkJ1dHRvblBhcnQ6ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgICAgICAgICAgSW50U2l6ZSBiYXNlID0gc3RlcHBlclNpemVzKClbTlNNaW5p
Q29udHJvbFNpemVdOworICAgICAgICAgICAgSW50U2l6ZSBiYXNlID0gc3RlcHBlclNpemVzKClb
TlNDb250cm9sU2l6ZU1pbmldOwogICAgICAgICAgICAgcmV0dXJuIExlbmd0aFNpemUoTGVuZ3Ro
KHN0YXRpY19jYXN0PGludD4oYmFzZS53aWR0aCgpICogem9vbUZhY3RvciksIEZpeGVkKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KGJhc2Uu
aGVpZ2h0KCkgKiB6b29tRmFjdG9yKSwgRml4ZWQpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIFRo
ZW1lOjptaW5pbXVtQ29udHJvbFNpemUocGFydCwgZm9udCwgem9vbUZhY3Rvcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2lu
ZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1
bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCmluZGV4IGQzYjllZTk4ZGY5NDIwY2NkNzEx
NmIwNDAzNTYzODNjZmM3NDZmOTAuLmNkNWI4YjUwMzUxMDA3ZWMwMWVkNzMyYWM3ZDM2YjVlNDk3
MTdjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJWaWRlb0Z1
bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCkBAIC03Mywx
MCArNzMsNyBAQCBAaW1wbGVtZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93CiAt
IChpZClpbml0V2l0aENvbnRlbnRSZWN0OihOU1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihO
U1VJbnRlZ2VyKWFTdHlsZSBiYWNraW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlw
ZSBkZWZlcjooQk9PTClmbGFnCiB7CiAgICAgVU5VU0VEX1BBUkFNKGFTdHlsZSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aENv
bnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJh
Y2tpbmc6YnVmZmVyaW5nVHlwZSBkZWZlcjpmbGFnXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qg
c3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOmJ1ZmZlcmluZ1R5
cGUgZGVmZXI6ZmxhZ107CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCkBA
IC0xMjIsMTUgKzExOSwxMiBAQCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyCiAKIC0gKEJP
T0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIC8vIEJsb2NrIGFsbCBjb21tYW5kIGtleSBldmVu
dHMgd2hpbGUgdGhlIGZ1bGxzY3JlZW4gd2luZG93IGlzIHVwLgotICAgIGlmIChbZXZlbnQgdHlw
ZV0gIT0gTlNLZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlE
b3duKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCi0gICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykpCisgICAgaWYgKCEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpKQogICAgICAgICByZXR1cm4gTk87Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcmV0dXJuIFlFUzsKIH0KIApAQCAtMTQ1
LDExICsxMzksNyBAQCBAaW1wbGVtZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93
Q29udHJvbGxlcgogCiAtIChpZClpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2lu
ZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgd2luZG93V2lk
dGgsIHdpbmRvd0hlaWdodCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZU1hc2s6
TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5k
b3cgPSBbW1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpOU01ha2VSZWN0KDAsIDAsIHdpbmRvd1dpZHRoLCB3aW5kb3dIZWlnaHQpIHN0eWxlTWFz
azpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZl
cmVkIGRlZmVyOk5PXTsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107
CiAgICAgW3dpbmRvdyBzZXREZWxlZ2F0ZTpzZWxmXTsKICAgICBbd2luZG93IHJlbGVhc2VdOwpA
QCAtMTg4LDIwICsxNzgsMTcgQEAgLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopZXZlbnQKICAg
ICAgICAgICAgIGNhc2UgJyAnOgogICAgICAgICAgICAgICAgIFtzZWxmIHRvZ2dsZVBsYXlpbmc6
bmlsXTsKICAgICAgICAgICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgICAgICAgICBjYXNlIE5TVXBBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2sp
CisgICAgICAgICAgICAgICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb24pCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNldFZvbHVtZTpbc2Vs
ZiBtYXhWb2x1bWVdXTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
IFtzZWxmIGluY3JlbWVudFZvbHVtZV07CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgY2FzZSBOU0Rvd25BcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlmIChb
ZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgICAgICAgICAg
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24p
CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNldFZvbHVtZTowXTsKICAgICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIGRlY3JlbWVudFZvbHVtZV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM3OCwxNyArMzY1LDEx
IEBAIC0gKHZvaWQpd2luZG93RGlkTG9hZAogICAgIFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Ol90
aW1lbGluZV07CiAKICAgICBfZWxhcHNlZFRpbWVUZXh0ID0gY3JlYXRlVGltZVRleHRGaWVsZChO
U01ha2VSZWN0KHRpbWVUZXh0RmllbGRIb3Jpem9udGFsTWFyZ2luLCB0aW1lbGluZUJvdHRvbU1h
cmdpbiwgdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lVGV4dEZpZWxkSGVpZ2h0KSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW19lbGFwc2VkVGltZVRleHQgc2V0QWxp
Z25tZW50Ok5TTGVmdFRleHRBbGlnbm1lbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFtfZWxhcHNlZFRpbWVUZXh0IHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRMZWZ0
XTsKICAgICBbY29udGVudFZpZXcgYWRkU3VidmlldzpfZWxhcHNlZFRpbWVUZXh0XTsKIAogICAg
IF9yZW1haW5pbmdUaW1lVGV4dCA9IGNyZWF0ZVRpbWVUZXh0RmllbGQoTlNNYWtlUmVjdCh3aW5k
b3dXaWR0aCAtIHRpbWVUZXh0RmllbGRIb3Jpem9udGFsTWFyZ2luIC0gdGltZVRleHRGaWVsZFdp
ZHRoLCB0aW1lbGluZUJvdHRvbU1hcmdpbiwgdGltZVRleHRGaWVsZFdpZHRoLCB0aW1lVGV4dEZp
ZWxkSGVpZ2h0KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgW19y
ZW1haW5pbmdUaW1lVGV4dCBzZXRBbGlnbm1lbnQ6TlNSaWdodFRleHRBbGlnbm1lbnRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIFtfcmVtYWluaW5nVGltZVRleHQgc2V0QWxp
Z25tZW50Ok5TVGV4dEFsaWdubWVudFJpZ2h0XTsKICAgICBbY29udGVudFZpZXcgYWRkU3Vidmll
dzpfcmVtYWluaW5nVGltZVRleHRdOwogCiAgICAgW3dpbmRvdyByZWNhbGN1bGF0ZUtleVZpZXdM
b29wXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dB
bmltYXRpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViV2luZG93QW5pbWF0
aW9uLm1tCmluZGV4IDQ1OThhMDNlZDJmYTMyMTUwZTY0YWY5Y2JiNjQ1OTk0NjlmZGRmNzcuLjhh
YmM4NDBiNzNjYzY0NWM4YWM0MDZkZWFmYWU5NDIyY2RjMzUzZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJXaW5kb3dBbmltYXRpb24ubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYldpbmRvd0FuaW1hdGlvbi5tbQpAQCAtMzgsMTAgKzM4
LDcgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQgc2xvd01vdGlvbkZhY3RvciA9IDEwOwogCiBzdGF0
aWMgTlNUaW1lSW50ZXJ2YWwgV2ViV2luZG93QW5pbWF0aW9uRHVyYXRpb25Gcm9tRHVyYXRpb24o
TlNUaW1lSW50ZXJ2YWwgZHVyYXRpb24pCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgcmV0dXJuIChbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10g
JiBOU1NoaWZ0S2V5TWFzaykgPyBkdXJhdGlvbiAqIHNsb3dNb3Rpb25GYWN0b3IgOiBkdXJhdGlv
bjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gKFtbTlNBcHAgY3Vy
cmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkgPyBk
dXJhdGlvbiAqIHNsb3dNb3Rpb25GYWN0b3IgOiBkdXJhdGlvbjsKIH0KIAogc3RhdGljIE5TUmVj
dCBzY2FsZWRSZWN0KE5TUmVjdCBfaW5pdGlhbEZyYW1lLCBOU1JlY3QgX2ZpbmFsRnJhbWUsIENH
RmxvYXQgZmFjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
CmluZGV4IDNlZGRjMDNlNGQ4ZTlmNjM1MTdjNTI3MWYyMDFiNTY3ODIyYjkwMjguLmRiZjQ3OGY0
OWM5NDM2MTEwOTk5YmNjMWM5MDc1ZTc3NmU5ZDBjMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTM3OSwyMiArMzc5LDEzIEBAIHZvaWQgUmVuZGVy
VGhlbWVNYWM6OnVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIGNz
c1ZhbHVlSWQsIEZvCiAgICAgICAgICAgICBmb250TmFtZSA9IEF0b21pY1N0cmluZygiLWFwcGxl
LXN0YXR1cy1iYXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0TWluaUNvbnRyb2w6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBmb250ID0gW05T
Rm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6
ZTpOU01pbmlDb250cm9sU2l6ZV1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZv
bnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6ZU1pbmldXTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0U21hbGxDb250cm9sOgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgZm9udCA9IFtOU0ZvbnQgc3lz
dGVtRm9udE9mU2l6ZTpbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNTbWFs
bENvbnRyb2xTaXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAg
ICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVG
b3JDb250cm9sU2l6ZTpOU0NvbnRyb2xTaXplU21hbGxdXTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Q29udHJvbDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgICAgIGZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNp
emU6W05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TUmVndWxhckNvbnRyb2xT
aXplXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBmb250ID0g
W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltOU0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9s
U2l6ZTpOU0NvbnRyb2xTaXplUmVndWxhcl1dOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICBmb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOltO
U0ZvbnQgc3lzdGVtRm9udFNpemVdXTsKQEAgLTc3NywzMCArNzY4LDI0IEBAIGJvb2wgUmVuZGVy
VGhlbWVNYWM6OmNvbnRyb2xTdXBwb3J0c1RpbnRzKGNvbnN0IFJlbmRlck9iamVjdCYgbykgY29u
c3QKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yRm9udChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7CiAgICAgaW50IGZvbnRTaXplID0gc3R5bGUu
Zm9udFNpemUoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpZiAo
Zm9udFNpemUgPj0gMTYpCi0gICAgICAgIHJldHVybiBOU1JlZ3VsYXJDb250cm9sU2l6ZTsKKyAg
ICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgIGlmIChmb250U2l6ZSA+PSAx
MSkKLSAgICAgICAgcmV0dXJuIE5TU21hbGxDb250cm9sU2l6ZTsKLSAgICByZXR1cm4gTlNNaW5p
Q29udHJvbFNpemU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIHJldHVy
biBOU0NvbnRyb2xTaXplU21hbGw7CisgICAgcmV0dXJuIE5TQ29udHJvbFNpemVNaW5pOwogfQog
CiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvckNlbGwoTlNDZWxs
KiwgY29uc3QgSW50U2l6ZSogc2l6ZXMsIGNvbnN0IEludFNpemUmIG1pblNpemUsIGZsb2F0IHpv
b21MZXZlbCkgY29uc3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBpZiAobWluU2l6ZS53aWR0aCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNSZWd1bGFy
Q29udHJvbFNpemVdLndpZHRoKCkgKiB6b29tTGV2ZWwpCi0gICAgICAgICYmIG1pblNpemUuaGVp
Z2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU1JlZ3VsYXJDb250cm9sU2l6ZV0uaGVp
Z2h0KCkgKiB6b29tTGV2ZWwpKQotICAgICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7
CisgICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TQ29u
dHJvbFNpemVSZWd1bGFyXS53aWR0aCgpICogem9vbUxldmVsKQorICAgICAgICAmJiBtaW5TaXpl
LmhlaWdodCgpID49IHN0YXRpY19jYXN0PGludD4oc2l6ZXNbTlNDb250cm9sU2l6ZVJlZ3VsYXJd
LmhlaWdodCgpICogem9vbUxldmVsKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1
bGFyOwogCi0gICAgaWYgKG1pblNpemUud2lkdGgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVz
W05TU21hbGxDb250cm9sU2l6ZV0ud2lkdGgoKSAqIHpvb21MZXZlbCkKLSAgICAgICAgJiYgbWlu
U2l6ZS5oZWlnaHQoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KHNpemVzW05TU21hbGxDb250cm9sU2l6
ZV0uaGVpZ2h0KCkgKiB6b29tTGV2ZWwpKQotICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xT
aXplOworICAgIGlmIChtaW5TaXplLndpZHRoKCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tO
U0NvbnRyb2xTaXplU21hbGxdLndpZHRoKCkgKiB6b29tTGV2ZWwpCisgICAgICAgICYmIG1pblNp
emUuaGVpZ2h0KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihzaXplc1tOU0NvbnRyb2xTaXplU21hbGxd
LmhlaWdodCgpICogem9vbUxldmVsKSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFs
bDsKIAotICAgIHJldHVybiBOU01pbmlDb250cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICByZXR1cm4gTlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIHZvaWQgUmVuZGVy
VGhlbWVNYWM6OnNldENvbnRyb2xTaXplKE5TQ2VsbCogY2VsbCwgY29uc3QgSW50U2l6ZSogc2l6
ZXMsIGNvbnN0IEludFNpemUmIG1pblNpemUsIGZsb2F0IHpvb21MZXZlbCkKQEAgLTg1NywxNSAr
ODQyLDEyIEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OnNldEZvbnRGcm9tQ29udHJvbFNpemUoU3R5
bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiBzdHlsZSwKIAogTlNDb250cm9sU2l6ZSBSZW5kZXJU
aGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSkgY29uc3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpbnQg
Zm9udFNpemUgPSBzdHlsZS5mb250U2l6ZSgpOwotICAgIGlmIChmb250U2l6ZSA+PSBbTlNGb250
IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNSZWd1bGFyQ29udHJvbFNpemVdKQotICAg
ICAgICByZXR1cm4gTlNSZWd1bGFyQ29udHJvbFNpemU7Ci0gICAgaWYgKGZvbnRTaXplID49IFtO
U0ZvbnQgc3lzdGVtRm9udFNpemVGb3JDb250cm9sU2l6ZTpOU1NtYWxsQ29udHJvbFNpemVdKQot
ICAgICAgICByZXR1cm4gTlNTbWFsbENvbnRyb2xTaXplOwotICAgIHJldHVybiBOU01pbmlDb250
cm9sU2l6ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoZm9udFNpemUg
Pj0gW05TRm9udCBzeXN0ZW1Gb250U2l6ZUZvckNvbnRyb2xTaXplOk5TQ29udHJvbFNpemVSZWd1
bGFyXSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVSZWd1bGFyOworICAgIGlmIChmb250
U2l6ZSA+PSBbTlNGb250IHN5c3RlbUZvbnRTaXplRm9yQ29udHJvbFNpemU6TlNDb250cm9sU2l6
ZVNtYWxsXSkKKyAgICAgICAgcmV0dXJuIE5TQ29udHJvbFNpemVTbWFsbDsKKyAgICByZXR1cm4g
TlNDb250cm9sU2l6ZU1pbmk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50VGV4dEZp
ZWxkKGNvbnN0IFJlbmRlck9iamVjdCYgbywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IEZsb2F0UmVjdCYgcikKQEAgLTExNDcsMTAgKzExMjksNyBAQCBib29sIFJlbmRlclRoZW1l
TWFjOjpwYWludFByb2dyZXNzQmFyKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBj
b25zdCBQYQogICAgIGNvbnN0IGF1dG8mIHJlbmRlclByb2dyZXNzID0gZG93bmNhc3Q8UmVuZGVy
UHJvZ3Jlc3M+KHJlbmRlck9iamVjdCk7CiAgICAgSElUaGVtZVRyYWNrRHJhd0luZm8gdHJhY2tJ
bmZvOwogICAgIHRyYWNrSW5mby52ZXJzaW9uID0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBpZiAoY29udHJvbFNpemUgPT0gTlNSZWd1bGFyQ29udHJvbFNpemUp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKGNvbnRyb2xTaXplID09IE5T
Q29udHJvbFNpemVSZWd1bGFyKQogICAgICAgICB0cmFja0luZm8ua2luZCA9IHJlbmRlclByb2dy
ZXNzLnBvc2l0aW9uKCkgPCAwID8ga1RoZW1lTGFyZ2VJbmRldGVybWluYXRlQmFyIDoga1RoZW1l
TGFyZ2VQcm9ncmVzc0JhcjsKICAgICBlbHNlCiAgICAgICAgIHRyYWNrSW5mby5raW5kID0gcmVu
ZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSA8IDAgPyBrVGhlbWVNZWRpdW1JbmRldGVybWluYXRlQmFy
IDoga1RoZW1lTWVkaXVtUHJvZ3Jlc3NCYXI7CkBAIC0xNDM4LDE1ICsxNDE3LDEyIEBAIFBvcHVw
TWVudVN0eWxlOjpQb3B1cE1lbnVTaXplIFJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVTaXplKGNv
bnN0IFJlbmRlclN0eWxlJiBzCiAgICAgTlNQb3BVcEJ1dHRvbkNlbGwqIHBvcHVwQnV0dG9uID0g
dGhpcy0+cG9wdXBCdXR0b24oKTsKICAgICBOU0NvbnRyb2xTaXplIHNpemUgPSBjb250cm9sU2l6
ZUZvckNlbGwocG9wdXBCdXR0b24sIHBvcHVwQnV0dG9uU2l6ZXMoKSwgcmVjdC5zaXplKCksIHN0
eWxlLmVmZmVjdGl2ZVpvb20oKSk7CiAgICAgc3dpdGNoIChzaXplKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU1JlZ3VsYXJDb250cm9sU2l6ZToKKyAg
ICBjYXNlIE5TQ29udHJvbFNpemVSZWd1bGFyOgogICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5
bGU6OlBvcHVwTWVudVNpemVOb3JtYWw7Ci0gICAgY2FzZSBOU1NtYWxsQ29udHJvbFNpemU6Cisg
ICAgY2FzZSBOU0NvbnRyb2xTaXplU21hbGw6CiAgICAgICAgIHJldHVybiBQb3B1cE1lbnVTdHls
ZTo6UG9wdXBNZW51U2l6ZVNtYWxsOwotICAgIGNhc2UgTlNNaW5pQ29udHJvbFNpemU6CisgICAg
Y2FzZSBOU0NvbnRyb2xTaXplTWluaToKICAgICAgICAgcmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQ
b3B1cE1lbnVTaXplTWluaTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBkZWZh
dWx0OgogICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw7
CiAgICAgfQpAQCAtMjA1NSwxMiArMjAzMSw5IEBAIE5TU2xpZGVyQ2VsbCogUmVuZGVyVGhlbWVN
YWM6OnNsaWRlclRodW1iSG9yaXpvbnRhbCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NsaWRlclRo
dW1iSG9yaXpvbnRhbCkgewogICAgICAgICBtX3NsaWRlclRodW1iSG9yaXpvbnRhbCA9IGFkb3B0
TlMoW1tOU1NsaWRlckNlbGwgYWxsb2NdIGluaXRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldFNs
aWRlclR5cGU6TlNMaW5lYXJTbGlkZXJdOwotICAgICAgICBbbV9zbGlkZXJUaHVtYkhvcml6b250
YWwuZ2V0KCkgc2V0Q29udHJvbFNpemU6TlNTbWFsbENvbnRyb2xTaXplXTsKKyAgICAgICAgW21f
c2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldFNsaWRlclR5cGU6TlNTbGlkZXJUeXBlTGlu
ZWFyXTsKKyAgICAgICAgW21fc2xpZGVyVGh1bWJIb3Jpem9udGFsLmdldCgpIHNldENvbnRyb2xT
aXplOk5TQ29udHJvbFNpemVTbWFsbF07CiAgICAgICAgIFttX3NsaWRlclRodW1iSG9yaXpvbnRh
bC5nZXQoKSBzZXRGb2N1c1JpbmdUeXBlOk5TRm9jdXNSaW5nVHlwZUV4dGVyaW9yXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICByZXR1cm4gbV9zbGlkZXJUaHVt
Ykhvcml6b250YWwuZ2V0KCk7CkBAIC0yMDcwLDExICsyMDQzLDggQEAgTlNTbGlkZXJDZWxsKiBS
ZW5kZXJUaGVtZU1hYzo6c2xpZGVyVGh1bWJWZXJ0aWNhbCgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3NsaWRlclRodW1iVmVydGljYWwpIHsKICAgICAgICAgbV9zbGlkZXJUaHVtYlZlcnRpY2FsID0g
YWRvcHROUyhbW05TU2xpZGVyQ2VsbCBhbGxvY10gaW5pdF0pOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRpY2FsLmdldCgpIHNl
dFNsaWRlclR5cGU6TlNMaW5lYXJTbGlkZXJdOwotICAgICAgICBbbV9zbGlkZXJUaHVtYlZlcnRp
Y2FsLmdldCgpIHNldENvbnRyb2xTaXplOk5TU21hbGxDb250cm9sU2l6ZV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkg
c2V0U2xpZGVyVHlwZTpOU1NsaWRlclR5cGVMaW5lYXJdOworICAgICAgICBbbV9zbGlkZXJUaHVt
YlZlcnRpY2FsLmdldCgpIHNldENvbnRyb2xTaXplOk5TQ29udHJvbFNpemVTbWFsbF07CiAgICAg
ICAgIFttX3NsaWRlclRodW1iVmVydGljYWwuZ2V0KCkgc2V0Rm9jdXNSaW5nVHlwZTpOU0ZvY3Vz
UmluZ1R5cGVFeHRlcmlvcl07CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJv
bi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCmluZGV4IGYyYTM1OTczYTcxZTA2ODI2MGE5MWM5Njdk
MjkwNTBkMmVkZTc2MGQuLjk2ZjY0OWE0YWYzMGVmZWRjYmE3OTZiNWY3MjY1OWQyZjRiNGJjNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1t
CkBAIC0xNzMsMTMgKzE3MywxNCBAQCAtIChpZClpbml0V2l0aENhcmJvbldpbmRvd1JlZjooV2lu
ZG93UmVmKWluV2luZG93UmVmIHRha2luZ093bmVyc2hpcDooQk9PTClpbldpbgogCiAgICAgLy8g
RmlndXJlIG91dCB0aGUgd2luZG93J3Mgc3R5bGUgbWFzay4KICAgICBzdHlsZU1hc2sgPSBXS0Nh
cmJvbldpbmRvd01hc2soKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBpZiAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dDbG9zZUJveEF0dHJpYnV0ZSkgc3R5bGVN
YXNrIHw9IE5TQ2xvc2FibGVXaW5kb3dNYXNrOwotICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYg
a1dpbmRvd1Jlc2l6YWJsZUF0dHJpYnV0ZSkgc3R5bGVNYXNrIHw9IE5TUmVzaXphYmxlV2luZG93
TWFzazsKLSAgICBpZiAod2luZG93RmVhdHVyZXMgJiBrV2luZG93Q2FuQ29sbGFwc2UpIHN0eWxl
TWFzayB8PSBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzazsKLSAgICBpZiAod2luZG93RmVhdHVy
ZXMgJiBrV2luZG93SGFzVGl0bGVCYXIpIHN0eWxlTWFzayB8PSBOU1RpdGxlZFdpbmRvd01hc2s7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgaWYgKHdpbmRvd0F0dHJpYnV0ZXMg
JiBrV2luZG93Q2xvc2VCb3hBdHRyaWJ1dGUpCisgICAgICAgIHN0eWxlTWFzayB8PSBOU1dpbmRv
d1N0eWxlTWFza0Nsb3NhYmxlOworICAgIGlmICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd1Jl
c2l6YWJsZUF0dHJpYnV0ZSkKKyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNr
UmVzaXphYmxlOworICAgIGlmICh3aW5kb3dGZWF0dXJlcyAmIGtXaW5kb3dDYW5Db2xsYXBzZSkK
KyAgICAgICAgc3R5bGVNYXNrIHw9IE5TV2luZG93U3R5bGVNYXNrTWluaWF0dXJpemFibGU7Cisg
ICAgaWYgKHdpbmRvd0ZlYXR1cmVzICYga1dpbmRvd0hhc1RpdGxlQmFyKQorICAgICAgICBzdHls
ZU1hc2sgfD0gTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQ7CiAKICAgICBvc1N0YXR1cyA9IEdldFdp
bmRvd01vZGFsaXR5KF93aW5kb3dSZWYsICZ3aW5kb3dNb2RhbGl0eSwgTlVMTCk7CiAgICAgaWYg
KG9zU3RhdHVzICE9IG5vRXJyKSB7CkBAIC0zOTMsMTggKzM5NCwxMiBAQCAtICh2b2lkKXNlbmRT
dXBlckV2ZW50OihOU0V2ZW50ICopaW5FdmVudCB7CiAgICAgLy8gSWdub3JlIHNvbWUgdW5rbm93
biBldmVudCB0aGF0IGdldHMgc2VudCB3aGVuIE5TVGV4dFZpZXdzIGluIHByaW50aW5nIGFjY2Vz
c29yeSB2aWV3cyBhcmUgZm9jdXNlZC4gIE0uUC4gTm90aWNlIC0gMTIvNy8wMAogICAgIEJPT0wg
aWdub3JlRXZlbnQgPSBOTzsKICAgICBOU0V2ZW50VHlwZSBldmVudFR5cGUgPSBbaW5FdmVudCB0
eXBlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoZXZlbnRU
eXBlPT1OU1N5c3RlbURlZmluZWQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBpZiAoZXZlbnRUeXBlID09IE5TRXZlbnRUeXBlU3lzdGVtRGVmaW5lZCkgewogICAgICAgICBz
aG9ydCBldmVudFN1YnR5cGUgPSBbaW5FdmVudCBzdWJ0eXBlXTsKLSAgICAgICAgaWYgKGV2ZW50
U3VidHlwZT09NykgeworICAgICAgICBpZiAoZXZlbnRTdWJ0eXBlID09IDcpIHsKICAgICAgICAg
ICAgIGlnbm9yZUV2ZW50ID0gWUVTOwogICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gTlNLZXlEb3duKSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0g
TlNFdmVudFR5cGVLZXlEb3duKSB7CiAgICAgICAgIC8vIEhhbmRsZSBjb21tYW5kLXNwYWNlIGFz
IFtOU0FwcCBzZW5kRXZlbnQ6XSBkb2VzLgogICAgICAgICBpZiAoW05TSW5wdXRDb250ZXh0IHBy
b2Nlc3NJbnB1dEtleUJpbmRpbmdzOmluRXZlbnRdKSB7CiAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vSElXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQppbmRleCBkMWM1NTBmMWZjZTc0ZGRlZTEy
NzE0ZWJhMzNkODczZDBmYzYzMjkyLi4wYWUwMTQ3MDJmZDM5MWNjZTU4MjZhNGEwMWEwOGZmZjJj
MDRiZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DYXJib24vSElXZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KQEAgLTUzOSw3ICs1
MzksNyBAQCBDb250ZXh0TWVudUNsaWNrKCBISVdlYlZpZXcqIGluVmlldywgRXZlbnRSZWYgaW5F
dmVudCApCiAgICAgTlNQb2ludCBsb2NhdGlvbiA9IE5TTWFrZVBvaW50KHBvaW50LngsIFt3aW5k
b3cgZnJhbWVdLnNpemUuaGVpZ2h0IC0gcG9pbnQueSk7CiAgICAgCiAgICAgLy8gTWFrZSB1cCBh
biBldmVudCB3aXRoIHRoZSBwb2ludCBhbmQgc2VuZCBpdCB0byB0aGUgd2luZG93LgotICAgIE5T
RXZlbnQgKmtpdEV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3Vz
ZURvd24KKyAgICBOU0V2ZW50ICpraXRFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbG9jYXRpb246bG9jYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0RXZlbnRUaW1lKGluRXZlbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TRXZlbnRFeHRyYXMubSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCmluZGV4IGVlYjhjOTIxZDk0YjU4YmU0
YmZjZmJmMTM1NGM4YWMwNWU1NGZjMGYuLmQ4ZmIyYTFmNjE5YTkzNDVjOGQ2MzA3YzUzMzBlODVl
YjBmMDY5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNFdmVudEV4
dHJhcy5tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNFdmVudEV4dHJhcy5tCkBA
IC0yOSwxNiArMjksMTQgQEAKICNpZiAhUExBVEZPUk0oSU9TKQogCiAjaW1wb3J0IDxXZWJLaXRM
ZWdhY3kvV2ViTlNFdmVudEV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRp
YmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBOU0V2ZW50IChXZWJFeHRy
YXMpCiAKIC0oQk9PTClfd2ViX2lzS2V5RXZlbnQ6KHVuaWNoYXIpa2V5CiB7CiAgICAgaW50IHR5
cGUgPSBbc2VsZiB0eXBlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBpZiAodHlwZSAhPSBOU0tleURvd24gJiYgdHlwZSAhPSBOU0tleVVwKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIGlmICh0eXBlICE9IE5TRXZlbnRUeXBlS2V5RG93biAmJiB0
eXBlICE9IE5TRXZlbnRUeXBlS2V5VXApCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKICAgICBO
U1N0cmluZyAqY2hhcnMgPSBbc2VsZiBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdOwpAQCAt
NjcsMTAgKzY1LDcgQEAgLSAoQk9PTClfd2ViX2lzRXNjYXBlS2V5RXZlbnQKIAogLSAoQk9PTClf
d2ViX2lzT3B0aW9uVGFiS2V5RXZlbnQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICByZXR1cm4gKFtzZWxmIG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlN
YXNrKSAmJiBbc2VsZiBfd2ViX2lzVGFiS2V5RXZlbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIHJldHVybiAoW3NlbGYgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZp
ZXJGbGFnT3B0aW9uKSAmJiBbc2VsZiBfd2ViX2lzVGFiS2V5RXZlbnRdOwogfQogCiAtIChCT09M
KV93ZWJfaXNSZXR1cm5PckVudGVyS2V5RXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5T
Vmlld0V4dHJhcy5tCmluZGV4IDNkYzhmN2Y3YzFmYTQ2NmUxYzdiYjY2MzUwNzEyMDJiMGJmODAy
ZTcuLjc0ODkwZDVlMjdkZTY5NmExNGI5NjgxZmQ5ZGIyNmZmYThmYmViNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJOU1ZpZXdFeHRyYXMubQpAQCAtMzgsNiArMzgsNyBAQAogCiAjaWYg
IVBMQVRGT1JNKElPUykKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJOU1Bhc3RlYm9hcmRFeHRy
YXMuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
PgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04MiwxMiArODMsOSBAQCAtIChCT09M
KV93ZWJfZHJhZ1Nob3VsZEJlZ2luRnJvbU1vdXNlRG93bjooTlNFdmVudCAqKW1vdXNlRG93bkV2
ZW50CiAgICAgTlNFdmVudCAqbmV4dEV2ZW50LCAqZmlyc3RFdmVudCwgKmRyYWdFdmVudCwgKm1v
dXNlVXA7CiAgICAgQk9PTCBkcmFnSXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSAgICBpZiAoW21vdXNlRG93bkV2ZW50IHR5cGVdICE9IE5TTGVmdE1vdXNlRG93bikg
eworICAgIGlmIChbbW91c2VEb3duRXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duKSB7CiAgICAgICAgIHJldHVybiBOTzsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAKICAgICBuZXh0RXZlbnQgPSBuaWw7CiAgICAgZmlyc3RFdmVudCA9IG5pbDsKQEAg
LTk1LDkgKzkzLDcgQEAgLSAoQk9PTClfd2ViX2RyYWdTaG91bGRCZWdpbkZyb21Nb3VzZURvd246
KE5TRXZlbnQgKiltb3VzZURvd25FdmVudAogICAgIG1vdXNlVXAgPSBuaWw7CiAgICAgZHJhZ0l0
ID0gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICB3aGlsZSAo
KG5leHRFdmVudCA9IFtbc2VsZiB3aW5kb3ddIG5leHRFdmVudE1hdGNoaW5nTWFzazooTlNMZWZ0
TW91c2VVcE1hc2sgfCBOU0xlZnRNb3VzZURyYWdnZWRNYXNrKQorICAgIHdoaWxlICgobmV4dEV2
ZW50ID0gW1tzZWxmIHdpbmRvd10gbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOihOU0V2ZW50TWFza0xl
ZnRNb3VzZVVwIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEcmFnZ2VkKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW50aWxEYXRlOmV4cGlyYXRpb24K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
TW9kZTpOU0V2ZW50VHJhY2tpbmdSdW5Mb29wTW9kZQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXF1ZXVlOllFU10pICE9IG5pbCkgewpAQCAt
MTA1LDcgKzEwMSw3IEBAIC0gKEJPT0wpX3dlYl9kcmFnU2hvdWxkQmVnaW5Gcm9tTW91c2VEb3du
OihOU0V2ZW50ICopbW91c2VEb3duRXZlbnQKICAgICAgICAgICAgIGZpcnN0RXZlbnQgPSBuZXh0
RXZlbnQ7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoW25leHRFdmVudCB0eXBlXSA9PSBOU0xl
ZnRNb3VzZURyYWdnZWQpIHsKKyAgICAgICAgaWYgKFtuZXh0RXZlbnQgdHlwZV0gPT0gTlNFdmVu
dFR5cGVMZWZ0TW91c2VEcmFnZ2VkKSB7CiAgICAgICAgICAgICBmbG9hdCBkZWx0YXggPSBBQlMo
W25leHRFdmVudCBsb2NhdGlvbkluV2luZG93XS54IC0gW21vdXNlRG93bkV2ZW50IGxvY2F0aW9u
SW5XaW5kb3ddLngpOwogICAgICAgICAgICAgZmxvYXQgZGVsdGF5ID0gQUJTKFtuZXh0RXZlbnQg
bG9jYXRpb25JbldpbmRvd10ueSAtIFttb3VzZURvd25FdmVudCBsb2NhdGlvbkluV2luZG93XS55
KTsKICAgICAgICAgICAgIGRyYWdFdmVudCA9IG5leHRFdmVudDsKQEAgLTExOSwxMiArMTE1LDEx
IEBAIC0gKEJPT0wpX3dlYl9kcmFnU2hvdWxkQmVnaW5Gcm9tTW91c2VEb3duOihOU0V2ZW50ICop
bW91c2VEb3duRXZlbnQKICAgICAgICAgICAgICAgICBkcmFnSXQgPSBZRVM7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoW25leHRFdmVu
dCB0eXBlXSA9PSBOU0xlZnRNb3VzZVVwKSB7CisgICAgICAgIH0gZWxzZSBpZiAoW25leHRFdmVu
dCB0eXBlXSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwKSB7CiAgICAgICAgICAgICBtb3VzZVVw
ID0gbmV4dEV2ZW50OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAgICAvLyBTaW5jZSB3ZSd2ZSBiZWVuIGRlcXVl
dWluZyB0aGUgZXZlbnRzIChJZiB3ZSBkb24ndCwgd2UnbGwgbmV2ZXIgc2VlIHRoZSBtb3VzZSB1
cC4uLiksCiAgICAgLy8gd2UgbmVlZCB0byBwdXNoIHNvbWUgb2YgdGhlIGV2ZW50cyBiYWNrIG9u
LiAgSXQgbWFrZXMgc2Vuc2UgdG8gcHV0IHRoZSBmaXJzdCBhbmQgbGFzdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHku
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eS5tbQppbmRleCBlYWQ1OTM2OTZkNGI5YTk3NjZhM2NiY2UwM2VhZDZlYWZkMDc5NTc5Li4y
YTQyYzczM2Q3ZGViN2JlYjA3MTQ1MDk2MGJkZWIxMTVjN2VhODg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eS5tbQpAQCAtMjMwLDEwICsyMzAsNyBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5
OjpiZWdpbk1vZGFsKCkKICAgICBBU1NFUlQoIW1fcGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFT
U0VSVCghbV9hY3RpdmF0aW9uT2JzZXJ2ZXIpOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV2ViUGxh
Y2Vob2xkZXJNb2RhbFdpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0
KDAsIDAsIDEsIDEpIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNC
YWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBtX3BsYWNlaG9sZGVyV2luZG93ID0gYWRvcHROUyhbW1dlYlBsYWNlaG9sZGVy
TW9kYWxXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAx
LCAxKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNr
aW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKIAogICAgIG1fYWN0aXZhdGlvbk9ic2VydmVy
ID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5h
bWU6TlNBcHBsaWNhdGlvbldpbGxCZWNvbWVBY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBw
IHF1ZXVlOm5pbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAq
KXsgYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKTsgfV07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHkubW0KaW5kZXggMWI0ZDNhOTZmYTlhZTdhMTc3ZTQ1MTJmNDU2NDFkYWEyNDM3ZDRjOS4u
MzZkYmJlYzYyNGVlYjA1NGYwNjJhMDI4NDEwMDI5YmYwOGU0MjlkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eS5tbQpAQCAtNDY1LDE1ICs0NjUsMTIgQEAgdm9pZCBOZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHk6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludCBr
ZXlDb2QKIHsKICAgICBOU0RhdGEgKmNoYXJhY3RlcnNEYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5
dGVzOiZjaGFyYWN0ZXIgbGVuZ3RoOjFdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCiAgICAgX1dLUEhQbHVnaW5JbnN0YW5jZUtleWJvYXJkRXZlbnQobV9wbHVnaW5Ib3N0
UHJveHktPnBvcnQoKSwgbV9wbHVnaW5JRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0sIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QQ29jb2FFdmVudEtleURvd24sIE5TQ29t
bWFuZEtleU1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBDb2Nv
YUV2ZW50S2V5RG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjaGFyKj4ocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEg
bGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2Fz
dDxjaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oW2NoYXJhY3RlcnNEYXRhIGJ5
dGVzXSkpLCBbY2hhcmFjdGVyc0RhdGEgbGVuZ3RoXSwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmFsc2UsIGtleUNvZGUsIGNoYXJhY3Rlcik7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Ojpm
bGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0K
aW5kZXggMzc2NjcyYjY4NjczN2M3NzNlZGM2ZGY2ODRiMjg3OTgyOTY0ZjU0MS4uZjYxYjcyMzEw
ZDI0MDlkYTBiODMwMjU1Y2IwODQ2OWU5M2Y2ZGEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2lu
Vmlldy5tbQpAQCAtNDQzLDEwICs0NDMsNyBAQCAtICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVj
dAogewogICAgIGlmIChfY2FjaGVkU25hcHNob3QpIHsKICAgICAgICAgTlNSZWN0IHNvdXJjZVJl
Y3QgPSB7IE5TWmVyb1BvaW50LCBbX2NhY2hlZFNuYXBzaG90LmdldCgpIHNpemVdIH07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFtfY2FjaGVkU25hcHNob3Qu
Z2V0KCkgZHJhd0luUmVjdDpbc2VsZiBib3VuZHNdIGZyb21SZWN0OnNvdXJjZVJlY3Qgb3BlcmF0
aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgW19jYWNoZWRTbmFwc2hvdC5nZXQoKSBkcmF3SW5SZWN0Oltz
ZWxmIGJvdW5kc10gZnJvbVJlY3Q6c291cmNlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09w
ZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MV07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5F
dmVudEhhbmRsZXJDYXJib24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luRXZlbnRIYW5kbGVyQ2FyYm9uLm1tCmluZGV4IGYyZDdlOWY0MWY2ZWJkNWI5Y2I4
MzVlZDYyZGMxM2ExZmFhMmQ4N2EuLjY4NTY3YjMzOTRkZDgxYWU5ZjUxOTc0MTg5OTRkYmQyOGYz
ZWIyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5FdmVudEhhbmRsZXJDYXJib24ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNhcmJvbi5tbQpAQCAtNjIsMjIgKzYyLDIy
IEBAIHN0YXRpYyBFdmVudE1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChOU0V2ZW50ICpldmVu
dCkKICAgICAKICAgICBtb2RpZmllcnMgPSAwOwogICAgIAotICAgIGlmIChldmVudFR5cGUgIT0g
TlNMZWZ0TW91c2VEb3duICYmIGV2ZW50VHlwZSAhPSBOU1JpZ2h0TW91c2VEb3duKQorICAgIGlm
IChldmVudFR5cGUgIT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duICYmIGV2ZW50VHlwZSAhPSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duKQogICAgICAgICBtb2RpZmllcnMgfD0gYnRuU3RhdGU7
CiAgICAgCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKQorICAgIGlm
IChtb2RpZmllckZsYWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQpCiAgICAgICAgIG1v
ZGlmaWVycyB8PSBjbWRLZXk7CiAgICAgCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU1NoaWZ0
S2V5TWFzaykKKyAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlm
dCkKICAgICAgICAgbW9kaWZpZXJzIHw9IHNoaWZ0S2V5OwogCi0gICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0FscGhhU2hpZnRLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NhcHNMb2NrKQogICAgICAgICBtb2RpZmllcnMgfD0gYWxwaGFMb2NrOwog
Ci0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgaWYgKG1v
ZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBtb2RpZmll
cnMgfD0gb3B0aW9uS2V5OwogCi0gICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0NvbnRyb2xLZXlN
YXNrIHx8IGV2ZW50VHlwZSA9PSBOU1JpZ2h0TW91c2VEb3duKQorICAgIGlmIChtb2RpZmllckZs
YWdzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wgfHwgZXZlbnRUeXBlID09IE5TRXZlbnRU
eXBlUmlnaHRNb3VzZURvd24pCiAgICAgICAgIG1vZGlmaWVycyB8PSBjb250cm9sS2V5OwogICAg
IAogICAgIHJldHVybiBtb2RpZmllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyQ29jb2EubW0KaW5k
ZXggYTFkMTU5YWY5NGUxNDg5YTQ4YjA5OTIxMDhkMDNmMzk4MDVmMjk5Ni4uZGUyMDE4OWEzN2Rj
MDkyODc4MmU4NjFiMmE2OWEwM2M3NjA4ZTE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXJDb2Nv
YS5tbQpAQCAtMTYxLDEwICsxNjEsNyBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5k
bGVyQ29jb2E6OnN5bnRoZXRpY0tleURvd25XaXRoQ29tbWFuZE1vZGlmaWVyKGludAogICAgIAog
ICAgIE5QQ29jb2FFdmVudCBldmVudDsKICAgICBpbml0aWFsaXplRXZlbnQoJmV2ZW50LCBOUENv
Y29hRXZlbnRLZXlEb3duKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAg
ICBldmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdzID0gTlNDb21tYW5kS2V5TWFzazsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBldmVudC5kYXRhLmtleS5tb2RpZmllckZsYWdz
ID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAgICAgZXZlbnQuZGF0YS5rZXkua2V5Q29k
ZSA9IGtleUNvZGU7CiAgICAgZXZlbnQuZGF0YS5rZXkuaXNBUmVwZWF0ID0gZmFsc2U7CiAgICAg
ZXZlbnQuZGF0YS5rZXkuY2hhcmFjdGVycyA9IChOUE5TU3RyaW5nICopY2hhcmFjdGVycy5nZXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5t
bQppbmRleCBjNDY2NzBiNGQ3OWQ4Y2U4NGZiZDQxMTU4ZmI3MzA4MGFlODA0NzliLi42MzBhZDg1
ZjA2NDRhNDZjMWQxYTk3ZTdlODZhMThjNjVlY2IxNWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCkBAIC05MCwxNyArOTAsMTEgQEAg
dm9pZCBQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKCkKICAgICAgICAgfQogCiAgICAgICAgIFJldGFp
blB0cjxOU011dGFibGVQYXJhZ3JhcGhTdHlsZT4gcGFyYWdyYXBoU3R5bGUgPSBhZG9wdE5TKFtb
TlNQYXJhZ3JhcGhTdHlsZSBkZWZhdWx0UGFyYWdyYXBoU3R5bGVdIG11dGFibGVDb3B5XSk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIFtwYXJhZ3JhcGhTdHls
ZSBzZXRBbGlnbm1lbnQ6bWVudVRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNMZWZ0VGV4dEFsaWdu
bWVudCA6IE5TUmlnaHRUZXh0QWxpZ25tZW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgW3BhcmFncmFwaFN0eWxlIHNldEFsaWdubWVudDptZW51VGV4dERpcmVjdGlv
biA9PSBMVFIgPyBOU1RleHRBbGlnbm1lbnRMZWZ0IDogTlNUZXh0QWxpZ25tZW50UmlnaHRdOwog
ICAgICAgICBOU1dyaXRpbmdEaXJlY3Rpb24gd3JpdGluZ0RpcmVjdGlvbiA9IHN0eWxlLnRleHRE
aXJlY3Rpb24oKSA9PSBMVFIgPyBOU1dyaXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TV3Jp
dGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0OwogICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QmFz
ZVdyaXRpbmdEaXJlY3Rpb246d3JpdGluZ0RpcmVjdGlvbl07CiAgICAgICAgIGlmIChzdHlsZS5o
YXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgICAgICAgICAgUmV0YWluUHRyPE5TTnVtYmVyPiB3cml0aW5nRGlyZWN0aW9u
VmFsdWUgPSBhZG9wdE5TKFtbTlNOdW1iZXIgYWxsb2NdIGluaXRXaXRoSW50ZWdlcjp3cml0aW5n
RGlyZWN0aW9uICsgTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlXSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRp
bmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRl
Z2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwogICAg
ICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IHdyaXRpbmdEaXJlY3Rpb25BcnJheSA9IGFkb3B0
TlMoW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6d3JpdGluZ0RpcmVjdGlvblZhbHVl
LmdldCgpLCBuaWxdKTsKICAgICAgICAgICAgIFthdHRyaWJ1dGVzIHNldE9iamVjdDp3cml0aW5n
RGlyZWN0aW9uQXJyYXkuZ2V0KCkgZm9yS2V5Ok5TV3JpdGluZ0RpcmVjdGlvbkF0dHJpYnV0ZU5h
bWVdOwogICAgICAgICB9CkBAIC0yMDYsMTggKzIwMCwxNSBAQCB2b2lkIFBvcHVwTWVudU1hYzo6
c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIAogICAgIE5T
Q29udHJvbFNpemUgY29udHJvbFNpemU7CiAgICAgc3dpdGNoIChtX2NsaWVudC0+bWVudVN0eWxl
KCkubWVudVNpemUoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAg
IGNhc2UgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw6Ci0gICAgICAgIGNvbnRy
b2xTaXplID0gTlNSZWd1bGFyQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlND
b250cm9sU2l6ZVJlZ3VsYXI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9wdXBNZW51U3R5
bGU6OlBvcHVwTWVudVNpemVTbWFsbDoKLSAgICAgICAgY29udHJvbFNpemUgPSBOU1NtYWxsQ29u
dHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6ZVNtYWxsOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTWluaToK
LSAgICAgICAgY29udHJvbFNpemUgPSBOU01pbmlDb250cm9sU2l6ZTsKKyAgICAgICAgY29udHJv
bFNpemUgPSBOU0NvbnRyb2xTaXplTWluaTsKICAgICAgICAgYnJlYWs7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCiAgICAgfQogCiAgICAgV0tQb3B1cE1lbnUobWVudSwgbG9jYXRpb24s
IHJvdW5kZihOU1dpZHRoKHIpKSwgZHVtbXlWaWV3LmdldCgpLCBpbmRleCwgdG9OU0ZvbnQoZm9u
dCksIGNvbnRyb2xTaXplLCAhbV9jbGllbnQtPm1lbnVTdHlsZSgpLmhhc0RlZmF1bHRBcHBlYXJh
bmNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q29udGV4dE1lbnVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDb250ZXh0TWVudUNsaWVudC5tbQppbmRleCA5MTRkOGUwNjNlOGViMGZjYTllYWU5ZDdiYmJj
ODFmNjFiN2I4OGQ2Li4yNGU4MDQxMDMxNzIwNzVlMWM2NmE5OTljNDQ2NjM4MTk0YjdhMzM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250
ZXh0TWVudUNsaWVudC5tbQpAQCAtMjY5LDEwICsyNjksNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51
Q2xpZW50OjpzaG93Q29udGV4dE1lbnUoKQogCiAgICAgTlNWaWV3KiB2aWV3ID0gZnJhbWVWaWV3
LT5kb2N1bWVudFZpZXcoKTsKICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmlldy0+Y29udGVu
dHNUb1dpbmRvdyhwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5oaXRUZXN0UmVzdWx0KCku
cm91bmRlZFBvaW50SW5Jbm5lck5vZGVGcmFtZSgpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50KiBldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU1JpZ2h0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6MCB3aW5kb3dOdW1iZXI6W1t2aWV3IHdpbmRvd10gd2luZG93TnVtYmVyXSBjb250ZXh0
OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgTlNFdmVudCogZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlRG93biBsb2NhdGlvbjpwb2ludCBtb2RpZmll
ckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOltbdmlldyB3aW5kb3ddIHdpbmRvd051
bWJlcl0gY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOwog
CiAgICAgLy8gU2hvdyB0aGUgY29udGV4dHVhbCBtZW51IGZvciB0aGlzIGV2ZW50LgogICAgIGJv
b2wgaXNTZXJ2aWNlc01lbnU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDExNDc2YTAzMjc2ZWRkOTRl
NzU1NTEzOTMwYWI0NjE5YmNlZGY5NTMuLmYwYjMxMmZiZDMwYzFmMjcxYjkwM2Q3MDQzNzc1MmIz
MGY1M2IzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNTYxLDE3ICsxNTYxLDE0IEBAIE5TRGlj
dGlvbmFyeSAqV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmFjdGlvbkRpY3Rpb25hcnkoY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYgYWN0CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBjb25zdCBVSUV2ZW50
V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtleVN0YXRlKGNvbnN0
X2Nhc3Q8RXZlbnQqPihldmVudCkpOwogICAgIGlmIChrZXlTdGF0ZUV2ZW50ICYmIGtleVN0YXRl
RXZlbnQtPmlzVHJ1c3RlZCgpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2ZW50LT5jdHJsS2V5KCkpCi0gICAgICAgICAgICBtb2Rp
ZmllckZsYWdzIHw9IE5TQ29udHJvbEtleU1hc2s7CisgICAgICAgICAgICBtb2RpZmllckZsYWdz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwogICAgICAgICBpZiAoa2V5U3RhdGVFdmVu
dC0+YWx0S2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQWx0ZXJuYXRlS2V5
TWFzazsKKyAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09w
dGlvbjsKICAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPnNoaWZ0S2V5KCkpCi0gICAgICAgICAg
ICBtb2RpZmllckZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICAgICAgbW9kaWZpZXJG
bGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CiAgICAgICAgIGlmIChrZXlTdGF0ZUV2
ZW50LT5tZXRhS2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29tbWFuZEtl
eU1hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBtb2RpZmll
ckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogICAgIH0KICNlbHNlCiAgICAg
Ly8gTm8gbW9kaWZpZXIgZmxhZ3Mgb24gaU9TIHJpZ2h0IG5vdwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IDkw
Nzg3ZDYyMGIzODFlNTM4YzdiMWFkZGM3NmYyZDI5YzU5MzIyMDkuLmIzY2I2YjlhNzc0NTBiMjFm
YzljN2U2ZGFiZjQyZGNjOTFmOTY0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTE5MSwxMCArMTkxLDcg
QEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6YXR0YWNoQXZhaWxhYmlsaXR5Q2hh
bmdlZChib29sIGF2YWlsYWJsZSkKIAogYm9vbCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6
Y2FuQXR0YWNoKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoW1ttX2Zyb250ZW5kV2luZG93Q29udHJvbGxlciB3aW5kb3ddIHN0eWxlTWFza10gJiBOU0Z1
bGxTY3JlZW5XaW5kb3dNYXNrKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGlm
IChbW21fZnJvbnRlbmRXaW5kb3dDb250cm9sbGVyIHdpbmRvd10gc3R5bGVNYXNrXSAmIE5TV2lu
ZG93U3R5bGVNYXNrRnVsbFNjcmVlbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0
dXJuIGNhbkF0dGFjaFdpbmRvdygpOwpAQCAtNDY1LDEwICs0NjIsNyBAQCAtIChOU1dpbmRvdyAq
KXdpbmRvdwogICAgIGlmICh3aW5kb3cpCiAgICAgICAgIHJldHVybiB3aW5kb3c7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU1VJbnRlZ2VyIHN0eWxlTWFzayA9
IE5TVGl0bGVkV2luZG93TWFzayB8IE5TQ2xvc2FibGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6
YWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVu
dFZpZXdXaW5kb3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TVUlu
dGVnZXIgc3R5bGVNYXNrID0gTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxl
TWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93
U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3
OwogICAgIHdpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNN
YWtlUmVjdCgwLCAwLCBpbml0aWFsV2luZG93V2lkdGgsIGluaXRpYWxXaW5kb3dIZWlnaHQpIHN0
eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5P
XTsKICAgICBbd2luZG93IHNldERlbGVnYXRlOnNlbGZdOwogICAgIFt3aW5kb3cgc2V0TWluU2l6
ZTpOU01ha2VTaXplKG1pbmltdW1XaW5kb3dXaWR0aCwgbWluaW11bVdpbmRvd0hlaWdodCldOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGln
aHQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5t
bQppbmRleCAwMmE3NTZmNzY3NzMxNWM2MjJkZDgxZDk5YTI5ZmFjM2ZiNWJmOWUyLi42MWM2YWVi
ODZiZDhkOWU0MThmMDMyNGJmYTY2ZGQxM2Y5N2FkNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQpAQCAtOTEsMTAgKzkxLDcg
QEAgLSAoaWQpaW5pdFdpdGhUYXJnZXRWaWV3OihOU1ZpZXcgKil0YXJnZXRWaWV3IGluc3BlY3Rv
ckNvbnRyb2xsZXI6KEluc3BlY3RvckNvbnQKICAgICBfaW5zcGVjdG9yQ29udHJvbGxlciA9IGlu
c3BlY3RvckNvbnRyb2xsZXI7CiAKICNpZiAhUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGludCBzdHlsZU1hc2sgPSBOU0JvcmRlcmxlc3NXaW5k
b3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIGludCBzdHlsZU1hc2sg
PSBOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3M7CiAgICAgTlNSZWN0IGNvbnRlbnRSZWN0ID0g
W05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0OltzZWxmIF9jb21wdXRlSGlnaGxpZ2h0
V2luZG93RnJhbWVdIHN0eWxlTWFzazpzdHlsZU1hc2tdOwogICAgIF9oaWdobGlnaHRXaW5kb3cg
PSBbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxl
TWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsK
ICAgICBbX2hpZ2hsaWdodFdpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29sb3IgY2xlYXJD
b2xvcl1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0UHJlZml4LmggYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJLaXRQcmVmaXguaAppbmRleCA2NmE1ZmNmZDk3YWYwZWE0NmM0
YmI1N2Q2YTc0NmM4MDVmYzBjN2MzLi4wZWRkODJkMmJjNTlmZThkNDVjZGE4YTQ0OGNmZDM4ZGU3
YWFkMDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXRQcmVmaXguaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXRQcmVmaXguaApAQCAtNzcsNiArNzcsNyBAQCB0eXBl
ZGVmIGZsb2F0IENHRmxvYXQ7CiAjaWZkZWYgX19PQkpDX18KICNpZiAhVEFSR0VUX09TX0lQSE9O
RQogI2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogI2Vsc2UKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRh
dGlvbi5oPgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1t
CmluZGV4IDVlYzE5Nzg1ZGE3Mjk3YjFhMjQ0YzU3NjMyMDcwYzRiZGU5NDZiMDUuLmQ3MjBjN2Ew
ZjVkMWI1NDg4NDhkMTQyZmEwNzFiNDdlYjU3OTQ5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC05MTUsOSArOTE1LDcgQEAgLSAodm9pZClrZXlEb3du
OihXZWJFdmVudCAqKWV2ZW50CiAgICAgQk9PTCBjYWxsU3VwZXIgPSBZRVM7CiAgICAgRnJhbWUq
IGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIEJPT0wgbWFpbnRhaW5zQmFja0Zv
cndhcmRMaXN0ID0gY29yZUZyYW1lICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlzdCo+KGNv
cmVGcmFtZS0+cGFnZSgpLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+ZW5hYmxlZCgpID8gWUVT
IDogTk87Ci0gICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisKICAgICBj
b3VudCA9IFtjaGFyYWN0ZXJzIGxlbmd0aF07CiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwg
Y291bnQ7ICsraW5kZXgpIHsKICAgICAgICAgc3dpdGNoIChbY2hhcmFjdGVycyBjaGFyYWN0ZXJB
dEluZGV4OmluZGV4XSkgewpAQCAtOTI4LDcgKzkyNiw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2Vi
RXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAvLyBUaGlz
IG9kZCBiZWhhdmlvciBtYXRjaGVzIHNvbWUgZXhpc3RpbmcgYnJvd3NlcnMsCiAgICAgICAgICAg
ICAgICAgLy8gaW5jbHVkaW5nIFdpbmRvd3MgSUUKLSAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVy
RmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQpIHsKICAgICAgICAgICAgICAgICAgICAg
W3NlbGYgX2dvRm9yd2FyZF07CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgW3NlbGYgX2dvQmFja107CkBAIC05NDMsNyArOTQxLDcgQEAgLSAodm9pZClrZXlE
b3duOihXZWJFdmVudCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9IFlF
UzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spIHsKKyAgICAgICAg
ICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkgewog
ICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlVXA6bmlsXTsKICAgICAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBzY3JvbGxQYWdlRG93bjpu
aWxdOwpAQCAtOTg0LDcgKzk4Miw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVu
dAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBOU1VwQXJyb3dGdW5j
dGlvbktleToKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYW5kbGUgc2hpZnRlZCBvciBj
b250cm9sLWFycm93IGtleXMgaGVyZSwgc28gbGV0IHN1cGVyIGhhdmUgYSBjaGFuY2UuCi0gICAg
ICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiAoTlNTaGlmdEtleU1hc2sgfCBOU0NvbnRy
b2xLZXlNYXNrKSkgeworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TRXZl
bnRNb2RpZmllckZsYWdTaGlmdCB8IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKSkgewogICAg
ICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTk5OCw5ICs5OTYsOSBAQCAtICh2b2lkKWtleURv
d246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBO
U0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBbc2VsZiBz
Y3JvbGxUb0JlZ2lubmluZ09mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7
CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VVcDpuaWxdOwogICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbExpbmVVcDpu
aWxdOwpAQCAtMTAwOSw3ICsxMDA3LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2
ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TRG93bkFycm93
RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQg
b3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgot
ICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlND
b250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChO
U0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC0xMDIzLDkgKzEwMjEsOSBAQCAtICh2b2lk
KWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0NvbW1hbmRLZXlNYXNrKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICBb
c2VsZiBzY3JvbGxUb0VuZE9mRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spIHsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKSB7
CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIHNjcm9sbFBhZ2VEb3duOm5pbF07CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgW3NlbGYgc2Nyb2xsTGluZURv
d246bmlsXTsKQEAgLTEwMzQsMTIgKzEwMzIsMTIgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVu
dCAqKWV2ZW50CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TTGVm
dEFycm93RnVuY3Rpb25LZXk6CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNo
aWZ0ZWQgb3IgY29udHJvbC1hcnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hh
bmNlLgotICAgICAgICAgICAgICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNr
IHwgTlNDb250cm9sS2V5TWFzaykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFn
cyAmIChOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gQ2hl
Y2sgYmFjay9mb3J3YXJkIHJlbGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TQ29tbWFuZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZp
ZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICghbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAg
LTEwNTIsNyArMTA1MCw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykg
eworICAgICAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmll
ckZsYWdPcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdlSG9yaXpv
bnRhbGx5OllFU107CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBbc2VsZiBfc2Nyb2xsTGluZUhvcml6b250YWxseTpZRVNdOwpAQCAtMTA2Miwx
MiArMTA2MCwxMiBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgTlNSaWdodEFycm93RnVuY3Rpb25LZXk6
CiAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGFuZGxlIHNoaWZ0ZWQgb3IgY29udHJvbC1h
cnJvdyBrZXlzIGhlcmUsIHNvIGxldCBzdXBlciBoYXZlIGEgY2hhbmNlLgotICAgICAgICAgICAg
ICAgIGlmIChtb2RpZmllckZsYWdzICYgKE5TU2hpZnRLZXlNYXNrIHwgTlNDb250cm9sS2V5TWFz
aykpIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIChOU0V2ZW50TW9kaWZp
ZXJGbGFnU2hpZnQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAgICAgICAg
ICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgYmFjay9mb3J3YXJkIHJl
bGF0ZWQga2V5cy4KLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQ29tbWFu
ZEtleU1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbWFpbnRhaW5z
QmFja0ZvcndhcmRMaXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZ
RVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTEwODAsNyArMTA3OCw3IEBA
IC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBp
ZiAobW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykgeworICAgICAgICAgICAgICAg
ICAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9wYWdlSG9yaXpvbnRhbGx5Ok5PXTsKICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9z
Y3JvbGxMaW5lSG9yaXpvbnRhbGx5Ok5PXTsKQEAgLTEwOTAsNyArMTA4OCw2IEBAIC0gKHZvaWQp
a2V5RG93bjooV2ViRXZlbnQgKilldmVudAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgIGlmIChjYWxsU3Vw
ZXIpIHsKICAgICAgICAgW3N1cGVyIGtleURvd246ZXZlbnRdOwogICAgIH0gZWxzZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5t
bQppbmRleCA5ZmQ5NTY2MTdmMDdjNmNmNmY0ODU3Y2M5ZTIyMTQwYjIxODhiMmU0Li43NzQ1OWIz
ZWUyMDgxMzU5ZDU2NGYzODEyNjBiNDcxMDUxZDBkMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTg2LDExICs4
Niw4IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJGdWxsU2NyZWVuQ29udHJvbGxlcgogI3ByYWdtYSBt
YXJrIEluaXRpYWxpemF0aW9uCiAtIChpZClpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCiAgICAgLy8gRG8gbm90IGRlZmVyIHdpbmRvdyBjcmVhdGlvbiwgdG8gbWFr
ZSBzdXJlIC13aW5kb3dOdW1iZXIgaXMgY3JlYXRlZCAobmVlZGVkIGJ5IFdlYldpbmRvd1NjYWxl
QW5pbWF0aW9uKS4KLSAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU1plcm9SZWN0IHN0eWxlTWFzazpOU0Ns
b3NhYmxlV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9d
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIE5TV2luZG93ICp3aW5kb3cgPSBb
W1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TWmVy
b1JlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQ2xvc2FibGUgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2lu
ZG93OndpbmRvd107CiAgICAgW3dpbmRvdyByZWxlYXNlXTsKICAgICBpZiAoIXNlbGYpCkBAIC00
NjIsMTAgKzQ1OSw3IEBAIC0gKHZvaWQpX3N3YXBWaWV3OihOU1ZpZXcqKXZpZXcgd2l0aDooTlNW
aWV3KilvdGhlclZpZXcKIAogc3RhdGljIFJldGFpblB0cjxOU1dpbmRvdz4gY3JlYXRlQmFja2dy
b3VuZEZ1bGxzY3JlZW5XaW5kb3coTlNSZWN0IGZyYW1lKQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW05TV2luZG93IGFsbG9j
XSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dN
YXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNXaW5kb3cgYWxs
b2NdIGluaXRXaXRoQ29udGVudFJlY3Q6ZnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNr
Qm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAg
IFt3aW5kb3cgc2V0T3BhcXVlOllFU107CiAgICAgW3dpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6
W05TQ29sb3IgYmxhY2tDb2xvcl1dOwogICAgIFt3aW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2Vk
Ok5PXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDU1ZjFh
ZTJkNDU4ZjU2MTM5NWZjMzI2YWFjYmM2MGY0ZGIzMjEzYzQuLmU0MjMwMTgyODMzYWZlN2U0NDU5
ODY1NGNjMzFlYzIzZDAxZTZiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQpAQCAtMTQwLDEyICsxNDAsMTIgQEAKICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAK
ICNpZiAhUExBVEZPUk0oSU9TKQorI2ltcG9ydCAiV2ViTlNFdmVudEV4dHJhcy5oIgorI2ltcG9y
dCAiV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmgiCiAjaW1wb3J0IDxBcHBLaXQvTlNBY2Nlc3NpYmls
aXR5Lmg+CiAjaW1wb3J0IDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTlNNZW51U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLmg+Ci0jaW1wb3J0ICJXZWJOU0V2ZW50RXh0cmFzLmgiCi0jaW1w
b3J0ICJXZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaCIKICNlbmRpZgogCiAjaW1wb3J0IDxRdWFydHpD
b3JlL1F1YXJ0ekNvcmUuaD4KQEAgLTEzNTEsMTIgKzEzNTEsOSBAQCAtICh2b2lkKV9wYXN0ZUFz
UGxhaW5UZXh0V2l0aFBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQKIAogLSAo
dm9pZClfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudDooTlNFdmVu
dCAqKWZsYWdzQ2hhbmdlZEV2ZW50CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBl
Ok5TTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2Nh
dGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFn
c0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCiAg
ICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZlbnQubW9kaWZpZXJGbGFncyB0aW1l
c3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0YW1wIHdpbmRvd051bWJlcjpmbGFnc0NoYW5n
ZWRFdmVudC53aW5kb3dOdW1iZXIKICAgICAgICAgY29udGV4dDpudWxscHRyIGV2ZW50TnVtYmVy
OjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIFtzZWxmIG1vdXNlTW92ZWQ6ZmFrZUV2ZW50XTsKIH0KIApAQCAtMTUwNiwxMCArMTUw
Myw3IEBAIC0gKHZvaWQpX3NldE1vdXNlRG93bkV2ZW50OihXZWJFdmVudCAqKWV2ZW50CiAjZW5k
aWYKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93
biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0g
TlNPdGhlck1vdXNlRG93bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQVNT
RVJUKCFldmVudCB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIHx8
IFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duIHx8IFtldmVudCB0eXBl
XSA9PSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duKTsKICNlbHNlCiAgICAgQVNTRVJUKCFldmVu
dCB8fCBldmVudC50eXBlID09IFdlYkV2ZW50TW91c2VEb3duKTsKICNlbmRpZgpAQCAtMTY2MSwx
NiArMTY1NSwxNyBAQCAtIChpZClfYnJpZGdlCiAKIC0gKHZvaWQpX3VwZGF0ZU1vdXNlb3Zlcldp
dGhGYWtlRXZlbnQKIHsKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCisgICAgICAgIGxvY2F0aW9uOltbc2Vs
ZiB3aW5kb3ddCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNFdmVu
dCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZAot
ICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2
ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50
IG1vdXNlTG9jYXRpb25dXQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBt
b2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAg
ICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAg
ICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgIGNv
bnRleHQ6bnVsbHB0cgogICAgICAgICBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3Vy
ZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIFtzZWxmIF91cGRhdGVN
b3VzZW92ZXJXaXRoRXZlbnQ6ZmFrZUV2ZW50XTsKIH0KQEAgLTE4NjgsMTEgKzE4NjMsOCBAQCAt
IChCT09MKV9pbnNpZGVBbm90aGVySFRNTFZpZXcKICNpZiAhUExBVEZPUk0oSU9TKQogc3RhdGlj
IEJPT0wgaXNRdWlja0xvb2tFdmVudChOU0V2ZW50ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBjb25zdCBpbnQga0NHU0V2ZW50U3lzdGVtU3VidHlw
ZUhvdEtleUNvbWJpbmF0aW9uUmVsZWFzZWQgPSA5OwotICAgIHJldHVybiBbZXZlbnQgdHlwZV0g
PT0gTlNTeXN0ZW1EZWZpbmVkICYmIFtldmVudCBzdWJ0eXBlXSA9PSBrQ0dTRXZlbnRTeXN0ZW1T
dWJ0eXBlSG90S2V5Q29tYmluYXRpb25SZWxlYXNlZCAmJiBbZXZlbnQgZGF0YTFdID09ICdsa3Vw
JzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gW2V2ZW50IHR5cGVd
ID09IE5TRXZlbnRUeXBlU3lzdGVtRGVmaW5lZCAmJiBbZXZlbnQgc3VidHlwZV0gPT0ga0NHU0V2
ZW50U3lzdGVtU3VidHlwZUhvdEtleUNvbWJpbmF0aW9uUmVsZWFzZWQgJiYgW2V2ZW50IGRhdGEx
XSA9PSAnbGt1cCc7CiB9CiAjZW5kaWYKIApAQCAtMTkyOCwxNCArMTkyMCwxMSBAQCAtIChOU1Zp
ZXcgKiloaXRUZXN0OihOU1BvaW50KXBvaW50CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIEZJWE1F
OiBXaHkgZG9lc24ndCB0aGlzIGluY2x1ZGUgbW91c2UgZW50ZXJlZC9leGl0ZWQgZXZlbnRzLCBv
ciBvdGhlciBtb3VzZSBidXR0b24gZXZlbnRzPwogICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtb
c2VsZiB3aW5kb3ddIGN1cnJlbnRFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgICAgIGNhcHR1cmVIaXRzT25TdWJ2aWV3cyA9ICEoW2V2ZW50IHR5cGVdID09
IE5TTW91c2VNb3ZlZAotICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TUmlnaHRNb3Vz
ZURvd24KLSAgICAgICAgICAgIHx8IChbZXZlbnQgdHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duICYm
IChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKSAhPSAwKQotICAgICAg
ICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkCisgICAgICAgIGNhcHR1cmVI
aXRzT25TdWJ2aWV3cyA9ICEoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlTW91c2VNb3ZlZAor
ICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24K
KyAgICAgICAgICAgIHx8IChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3du
ICYmIFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sKQor
ICAgICAgICAgICAgfHwgW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkCiAg
ICAgICAgICAgICB8fCBpc1F1aWNrTG9va0V2ZW50KGV2ZW50KSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiAgICAgfQogCiAgICAgaWYgKCFjYXB0dXJlSGl0c09uU3Vidmlld3MpIHsK
QEAgLTIwMjMsOSArMjAxMiw3IEBAIC0gKHZvaWQpX3JlbW92ZVRyYWNraW5nUmVjdHM6KE5TVHJh
Y2tpbmdSZWN0VGFnICopdGFncyBjb3VudDooaW50KWNvdW50CiAtICh2b2lkKV9zZW5kVG9vbFRp
cE1vdXNlRXhpdGVkCiB7CiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRy
YWNraW5nTnVtYmVyLCBhbmQgdXNlckRhdGEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRX
aXRoVHlwZTpOU01vdXNlRXhpdGVkCisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQg
ZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlRXhpdGVkCiAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAg
ICB0aW1lc3RhbXA6MApAQCAtMjAzNCwxNiArMjAyMSwxMyBAQCAtICh2b2lkKV9zZW5kVG9vbFRp
cE1vdXNlRXhpdGVkCiAgICAgICAgIGV2ZW50TnVtYmVyOjAKICAgICAgICAgdHJhY2tpbmdOdW1i
ZXI6VFJBQ0tJTkdfUkVDVF9UQUcKICAgICAgICAgdXNlckRhdGE6X3ByaXZhdGUtPnRyYWNraW5n
UmVjdFVzZXJEYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbX3ByaXZh
dGUtPnRyYWNraW5nUmVjdE93bmVyIG1vdXNlRXhpdGVkOmZha2VFdmVudF07CiB9CiAKIC0gKHZv
aWQpX3NlbmRUb29sVGlwTW91c2VFbnRlcmVkCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCiAgICAgLy8gTm90aGluZyBtYXR0ZXJzIGV4Y2VwdCB3aW5kb3csIHRyYWNraW5n
TnVtYmVyLCBhbmQgdXNlckRhdGEuCi0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQg
ZW50ZXJFeGl0RXZlbnRXaXRoVHlwZTpOU01vdXNlRW50ZXJlZAorICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZUVu
dGVyZWQKICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgbW9kaWZp
ZXJGbGFnczowCiAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yMDUzLDcgKzIwMzcsNiBAQCAtICh2
b2lkKV9zZW5kVG9vbFRpcE1vdXNlRW50ZXJlZAogICAgICAgICB0cmFja2luZ051bWJlcjpUUkFD
S0lOR19SRUNUX1RBRwogICAgICAgICB1c2VyRGF0YTpfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0VXNl
ckRhdGFdOwogICAgIFtfcHJpdmF0ZS0+dHJhY2tpbmdSZWN0T3duZXIgbW91c2VFbnRlcmVkOmZh
a2VFdmVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAjZW5kaWYgLy8gIVBM
QVRGT1JNKElPUykKIApAQCAtMjA4OSwyMSArMjA3MiwxOCBAQCAtIChOU1N0cmluZyAqKXZpZXc6
KE5TVmlldyAqKXZpZXcgc3RyaW5nRm9yVG9vbFRpcDooTlNUb29sVGlwVGFnKXRhZyBwb2ludDoo
TlNQbwogc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAq
ZXZlbnQpCiB7CiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246Ci0gICAgICAg
IGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURyYWdnZWQ6Ci0g
ICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VV
cDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICBjYXNlIE5TT3Ro
ZXJNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2Ug
TlNPdGhlck1vdXNlRHJhZ2dlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNF
dmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6
CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogfQogCkBAIC0yMTM0LDE2ICsyMTE0LDE0IEBAIC0gKHZvaWQpX3VwZGF0ZU1vdXNl
b3ZlcldpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50CiAgICAgICAgIGZsb2F0IHlTY3JvbGwgPSB2
aXNpYmxlUmVjdC5vcmlnaW4ueTsKICAgICAgICAgZmxvYXQgeFNjcm9sbCA9IHZpc2libGVSZWN0
Lm9yaWdpbi54OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAg
IE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3Zl
ZAorICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZU1vdXNlTW92ZWQKICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KC0x
IC0geFNjcm9sbCwgLTEgLSB5U2Nyb2xsKQogICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05T
QXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgIHRpbWVzdGFtcDpb
TlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgICAgIHdpbmRv
d051bWJlcjpbW3ZpZXcgd2luZG93XSB3aW5kb3dOdW1iZXJdCiAgICAgICAgICAgICBjb250ZXh0
Om51bGxwdHIKICAgICAgICAgICAgIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCiAgICAgICAgIGlmIChGcmFtZSog
bGFzdEhpdENvcmVGcmFtZSA9IGNvcmUoW2xhc3RIaXRWaWV3IF9mcmFtZV0pKQogICAgICAgICAg
ICAgbGFzdEhpdENvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChldmVudCwgW1tz
ZWxmIF93ZWJWaWV3XSBfcHJlc3N1cmVFdmVudF0pOwogICAgIH0KQEAgLTIzMzAsMTYgKzIzMDgs
MTggQEAgLSAodm9pZClfYXV0b3Njcm9sbAogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCisg
ICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlTGVmdE1vdXNlRHJhZ2dlZAorICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQog
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmZha2VFdmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURyYWdnZWQKLSAgICAg
ICAgbG9jYXRpb246W1tzZWxmIHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBt
b3VzZUxvY2F0aW9uXV0KKyAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3Vz
ZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgbW9kaWZp
ZXJGbGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgdGlt
ZXN0YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3
aW5kb3dOdW1iZXI6W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0
Om51bGxwdHIKICAgICAgICAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKICAgICBbc2VsZiBtb3VzZURyYWdnZWQ6
ZmFrZUV2ZW50XTsKICNlbmRpZgogfQpAQCAtMzM1NCwxMiArMzMzNCw5IEBAIC0gKEJPT0wpYWNj
ZXB0c0ZpcnN0UmVzcG9uZGVyCiAgICAgLy8gb3IgZnJvbSBjYWxscyBiYWNrIGZyb20gV2ViQ29y
ZSBvbmNlIHdlIGJlZ2luIG1vdXNlLWRvd24gZXZlbnQgaGFuZGxpbmcuCiAjaWYgIVBMQVRGT1JN
KElPUykgICAgICAgICAgICAKICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZl
bnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQg
dHlwZV0gPT0gTlNMZWZ0TW91c2VEb3duCisgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd24KICAgICAgICAgICAgICYmICFfcHJpdmF0ZS0+aGFuZGxpbmdNb3Vz
ZURvd25FdmVudAogICAgICAgICAgICAgJiYgTlNQb2ludEluUmVjdChbZXZlbnQgbG9jYXRpb25J
bldpbmRvd10sIFtzZWxmIGNvbnZlcnRSZWN0OltzZWxmIHZpc2libGVSZWN0XSB0b1ZpZXc6bmls
XSkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgcmV0dXJuIE5POwog
ICAgIH0KICNlbHNlCkBAIC0zNTI4LDEzICszNTA1LDEwIEBAIC0gKHZvaWQpdmlld0RpZE1vdmVU
b1dpbmRvdwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICAgICAgaWYgKCFfcHJpdmF0ZS0+Zmxh
Z3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgICAgICAgICBfcHJpdmF0ZS0+ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05T
RXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2Vk
TWFzayBoYW5kbGVyOl4oTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKKyAgICAgICAgICAg
IF9wcml2YXRlLT5mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1v
bml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNFdmVudE1hc2tGbGFnc0NoYW5nZWQgaGFuZGxl
cjpeKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgW3NlbGYg
X3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6ZmxhZ3NDaGFuZ2Vk
RXZlbnRdOwogICAgICAgICAgICAgICAgIHJldHVybiBmbGFnc0NoYW5nZWRFdmVudDsKICAgICAg
ICAgICAgIH1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICB9CiAgICAg
fSBlbHNlIHsKICAgICAgICAgW05TRXZlbnQgcmVtb3ZlTW9uaXRvcjpfcHJpdmF0ZS0+ZmxhZ3ND
aGFuZ2VkRXZlbnRNb25pdG9yXTsKQEAgLTQ1NDAsMTEgKzQ1MTQsMTIgQEAgLSAodm9pZCltb3Vz
ZURvd246KFdlYkV2ZW50ICopZXZlbnQKICAgICBOU0lucHV0TWFuYWdlciAqY3VycmVudElucHV0
TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXTsKIAogICAgIGlm
ICghW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNlRXZlbnRzXSB8fCAhW2N1
cnJlbnRJbnB1dE1hbmFnZXIgaGFuZGxlTW91c2VFdmVudDpldmVudF0pIHsKKyNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJvbGxl
ciBlbmRSZXZlcnRpbmdDaGFuZ2U6Tk8gbW92ZUxlZnQ6Tk9dOwogCiAgICAgICAgIC8vIElmIHRo
ZSB3ZWIgcGFnZSBoYW5kbGVzIHRoZSBjb250ZXh0IG1lbnUgZXZlbnQgYW5kIG1lbnVGb3JFdmVu
dDogcmV0dXJucyBuaWwsIHdlJ2xsIGdldCBjb250cm9sIGNsaWNrIGV2ZW50cyBoZXJlLgogICAg
ICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHBhc3MgdGhlbSBhbG9uZyB0byBLSFRNTCBhIHNlY29u
ZCB0aW1lLgotICAgICAgICBpZiAoIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRyb2xL
ZXlNYXNrKSkgeworICAgICAgICBpZiAoIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29udHJvbCkpIHsKICAgICAgICAgICAgIF9wcml2YXRlLT5pZ25vcmluZ01v
dXNlRHJhZ2dlZEV2ZW50cyA9IE5POwogCiAgICAgICAgICAgICAvLyBMZXQgV2ViQ29yZSBnZXQg
YSBjaGFuY2UgdG8gZGVhbCB3aXRoIHRoZSBldmVudC4gVGhpcyB3aWxsIGNhbGwgYmFjayB0byB1
cwpAQCAtNDU1Myw3ICs0NTI4LDYgQEAgLSAodm9pZCltb3VzZURvd246KFdlYkV2ZW50ICopZXZl
bnQKICAgICAgICAgICAgICAgICBjb3JlZnJhbWUtPmV2ZW50SGFuZGxlcigpLm1vdXNlRG93bihl
dmVudCwgW1tzZWxmIF93ZWJWaWV3XSBfcHJlc3N1cmVFdmVudF0pOwogICAgICAgICB9CiAgICAg
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogI2VuZGlmCiAKICAgICBfcHJpdmF0ZS0+
aGFuZGxpbmdNb3VzZURvd25FdmVudCA9IE5POwpAQCAtNDY0Miw3ICs0NjE2LDcgQEAgLSAodm9p
ZClkcmFnZ2VkSW1hZ2U6KE5TSW1hZ2UgKilhbkltYWdlIGVuZGVkQXQ6KE5TUG9pbnQpYVBvaW50
IG9wZXJhdGlvbjooTlNEcmEKICAgICAKICAgICAvLyBPbmNlIHRoZSBkcmFnZ2luZyBtYWNoaW5l
cnkga2lja3MgaW4sIHdlIG5vIGxvbmdlciBnZXQgbW91c2UgZHJhZ3Mgb3IgdGhlIHVwIGV2ZW50
LgogICAgIC8vIFdlYkNvcmUgZXhwZWN0cyB0byBnZXQgYmFsYW5jZWQgZG93bi91cCdzLCBzbyB3
ZSBtdXN0IGZha2UgdXAgYSBtb3VzZXVwLgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZVVwCisgICAgTlNFdmVudCAqZmFrZUV2
ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246d2lu
ZG93TW91c2VMb2MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlm
aWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltOU0RhdGUgdGltZUlu
dGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQpAQCAtNDgxOCwxOSArNDc5MiwxMiBAQCBzdGF0aWMg
UGFzc1JlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29y
ZUZyYW1lKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgY2FzZSBOU0tleURvd246
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQorICAgIGNhc2UgTlNFdmVudFR5cGVL
ZXlEb3duOiB7CiAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwbGF0Zm9ybUV2ZW50ID0g
UGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCk7
CiAgICAgICAgIHBsYXRmb3JtRXZlbnQuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3Jt
RXZlbnQ6OlJhd0tleURvd24pOwogICAgICAgICByZXR1cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRl
KHBsYXRmb3JtRXZlbnQsIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAg
ICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNLZXlV
cDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlS2V5
VXA6CiAgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUoUGxhdGZvcm1FdmVudEZh
Y3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCksIGNvcmVGcmFtZS0+ZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIDA7
CkBAIC01NTI0LDExICs1NDkxLDggQEAgLSAoQk9PTClfaGFuZGxlU3R5bGVLZXlFcXVpdmFsZW50
OihOU0V2ZW50ICopZXZlbnQKICAgICBpZiAoIVtzZWxmIF9jYW5FZGl0XSkKICAgICAgICAgcmV0
dXJuIE5POwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlm
ICgoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxh
Z3NNYXNrKSAhPSBOU0NvbW1hbmRLZXlNYXNrKQorICAgIGlmICgoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrKSAhPSBO
U0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCkKICAgICAgICAgcmV0dXJuIE5POwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFtldmVudCBjaGFy
YWN0ZXJzXTsKICAgICBpZiAoW3N0cmluZyBjYXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiYiJdID09
IE5TT3JkZXJlZFNhbWUpIHsKQEAgLTY0NDgsMTQgKzY0MTIsMTEgQEAgLSAoQk9PTClfaW50ZXJw
cmV0S2V5RXZlbnQ6KEtleWJvYXJkRXZlbnQqKWV2ZW50IHNhdmluZ0NvbW1hbmRzOihCT09MKXNh
dmluZ0NvbW0KICAgICAgICAgcmV0dXJuIE5POwogCiAgICAgTlNFdmVudCAqbWFjRXZlbnQgPSBw
bGF0Zm9ybUV2ZW50LT5tYWNFdmVudCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgotICAgIGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duICYmIFtfcHJpdmF0ZS0+
Y29tcGxldGlvbkNvbnRyb2xsZXIgZmlsdGVyS2V5RG93bjptYWNFdmVudF0pCisgICAgaWYgKFtt
YWNFdmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gJiYgW19wcml2YXRlLT5jb21wbGV0
aW9uQ29udHJvbGxlciBmaWx0ZXJLZXlEb3duOm1hY0V2ZW50XSkKICAgICAgICAgcmV0dXJuIFlF
UzsKICAgICAKLSAgICBpZiAoW21hY0V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQorICAg
IGlmIChbbWFjRXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCiAgICAgICAg
IHJldHVybiBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAKICAgICBwYXJh
bWV0ZXJzLmV2ZW50ID0gZXZlbnQ7CiAgICAgX3ByaXZhdGUtPmludGVycHJldEtleUV2ZW50c1Bh
cmFtZXRlcnMgPSAmcGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmll
dy5tbQppbmRleCA3OGY1NmU0OTFlMDg2YWFlOTgzYjM4MDY5OWE1NTE1N2NkOThmZGJhLi5hNzMz
MGUxODAwOTZiZDcyNWViNmExY2EyZTkyOTA2ZTNjMWE2ZDdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQREZWaWV3Lm1tCkBAIC0zMjEsMTAgKzMyMSw3IEBAIC0gKE5TVmlldyAqKWhp
dFRlc3Q6KE5TUG9pbnQpcG9pbnQKICAgICAvLyBPdmVycmlkZSBoaXRUZXN0IHNvIHdlIGNhbiBv
dmVycmlkZSBtZW51Rm9yRXZlbnQuCiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVu
dEV2ZW50XTsKICAgICBOU0V2ZW50VHlwZSB0eXBlID0gW2V2ZW50IHR5cGVdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICh0eXBlID09IE5TUmlnaHRNb3VzZURv
d24gfHwgKHR5cGUgPT0gTlNMZWZ0TW91c2VEb3duICYmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10g
JiBOU0NvbnRyb2xLZXlNYXNrKSkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
aWYgKHR5cGUgPT0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biB8fCAodHlwZSA9PSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd24gJiYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2Rp
ZmllckZsYWdDb250cm9sKSkpCiAgICAgICAgIHJldHVybiBzZWxmOwogCiAgICAgcmV0dXJuIFtz
dXBlciBoaXRUZXN0OnBvaW50XTsKQEAgLTEwMDksMzkgKzEwMDYsMzMgQEAgLSAodm9pZClQREZW
aWV3V2lsbENsaWNrT25MaW5rOihQREZWaWV3ICopc2VuZGVyIHdpdGhVUkw6KE5TVVJMICopVVJM
CiAgICAgaW50IGJ1dHRvbiA9IG5vQnV0dG9uOwogICAgIFJlZlB0cjxFdmVudD4gZXZlbnQ7CiAg
ICAgc3dpdGNoIChbbnNFdmVudCB0eXBlXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24g
PSAwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlVXA6Ci0g
ICAgICAgICAgICBidXR0b24gPSAxOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
TlNPdGhlck1vdXNlVXA6Ci0gICAgICAgICAgICBidXR0b24gPSBbbnNFdmVudCBidXR0b25OdW1i
ZXJdOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTlNLZXlEb3duOiB7Ci0gICAg
ICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGUgPSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6
Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KG5zRXZlbnQpOwotICAgICAgICAgICAgcGUuZGlz
YW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwotICAgICAg
ICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91
c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gMTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICAgICAgYnV0dG9uID0gW25z
RXZlbnQgYnV0dG9uTnVtYmVyXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOU0V2ZW50VHlw
ZUtleURvd246IHsKKyAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1F
dmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKKyAgICAg
ICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24p
OworICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9CiAgICAg
aWYgKGJ1dHRvbiAhPSBub0J1dHRvbikgewogICAgICAgICBldmVudCA9IE1vdXNlRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwg
MCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250
cm9sS2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRl
cm5hdGVLZXlNYXNrLAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU1No
aWZ0S2V5TWFzaywKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb21t
YW5kS2V5TWFzaywKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIFtu
c0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wsCisgICAg
ICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRp
b24sCisgICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdCwKKyAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQsCiAgICAgICAgICAgICBidXR0b24sIDAsIFdlYkNvcmU6OkZv
cmNlQXRDbGljaywgMCwgMCwgdHJ1ZSk7CiAgICAgfQogCkBAIC0xMTQ5LDkgKzExNDAsNyBAQCAt
IChOU0V2ZW50ICopX2Zha2VLZXlFdmVudFdpdGhGdW5jdGlvbktleToodW5pY2hhcilmdW5jdGlv
bktleQogICAgIC8vIEZJWE1FIDQ0MDA0ODA6IHdoZW4gUERGVmlldyBpbXBsZW1lbnRzIHRoZSBz
dGFuZGFyZCBzY3JvbGxpbmcgc2VsZWN0b3JzIHRoYXQgdGhpcwogICAgIC8vIG1ldGhvZCBpcyB1
c2VkIHRvIG1pbWljLCB3ZSBjYW4gZWxpbWluYXRlIHRoaXMgbWV0aG9kIGFuZCBjYWxsIHRoZW0g
ZGlyZWN0bHkuCiAgICAgTlNTdHJpbmcgKmtleUFzU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzOiZmdW5jdGlvbktleSBsZW5ndGg6MV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNL
ZXlEb3duCisgICAgcmV0dXJuIFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVL
ZXlEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNaZXJvUG9pbnQK
ICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA6MApAQCAtMTE2MSw3ICsxMTUwLDYgQEAgLSAoTlNFdmVudCAq
KV9mYWtlS2V5RXZlbnRXaXRoRnVuY3Rpb25LZXk6KHVuaWNoYXIpZnVuY3Rpb25LZXkKICAgICAg
ICAgIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczprZXlBc1N0cmluZwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaXNBUmVwZWF0Ok5PCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGtleUNvZGU6MF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIC0gKHZvaWQp
X2xvb2tVcEluRGljdGlvbmFyeUZyb21NZW51OihpZClzZW5kZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KaW5k
ZXggNDM4MmIwNDQ3NGU2MGM4YzIzNzMzMDQ3YjgxMzk2NGE0Zjc4NDI2My4uZmQ0ZWZmOTMwNmRh
YTljOGU1N2MyNTc1MGRmMDJiNzc2Njk0OTU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KQEAgLTExMiwx
MCArMTEyLDcgQEAgLSAodm9pZClfYnVpbGRVSQogICAgIFtzY3JvbGxWaWV3IHNldERvY3VtZW50
VmlldzpfdGFibGVWaWV3XTsKICAgICBbX3RhYmxlVmlldyByZWxlYXNlXTsKICAgICAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBfcG9wdXBXaW5kb3cgPSBbW05TV2lu
ZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OnNjcm9sbEZyYW1lIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpO
T107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgX3BvcHVwV2luZG93ID0gW1tO
U1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpzY3JvbGxGcmFtZSBzdHlsZU1hc2s6
TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJl
ZCBkZWZlcjpOT107CiAgICAgW19wb3B1cFdpbmRvdyBzZXRBbHBoYVZhbHVlOjAuODhmXTsKICAg
ICBbX3BvcHVwV2luZG93IHNldENvbnRlbnRWaWV3OnNjcm9sbFZpZXddOwogICAgIFtzY3JvbGxW
aWV3IHJlbGVhc2VdOwpAQCAtMTU1LDggKzE1Miw4IEBAIC0gKHZvaWQpX3BsYWNlUG9wdXBXaW5k
b3c6KE5TUG9pbnQpdG9wTGVmdAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1Njcm9sbFZpZXcgZnJhbWVTaXplRm9yQ29udGVu
dFNpemU6TlNNYWtlU2l6ZShtYXhXaWR0aCwgMTAwLjBmKSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6
Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9yZGVyVHlwZTpOU05vQm9yZGVyXS53aWR0aCk7
Ci0gICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TV2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRS
ZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5T
Qm9yZGVybGVzc1dpbmRvd01hc2tdLnNpemUud2lkdGgpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JD
b250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAuMGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxl
TWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3NdLnNpemUud2lkdGgpOwogICAgICAgICBt
YXhXaWR0aCArPSA1LjBmOwogICAgICAgICB3aW5kb3dGcmFtZS5zaXplLndpZHRoID0gc3RkOjpt
YXgobWF4V2lkdGgsIHdpbmRvd0ZyYW1lLnNpemUud2lkdGgpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3Y2ZhYTg3YjU1NmViNDc2YmYzYzVmZWQ1ZTAzZTY4
ZmJhMmRlNGJmLi41MWQwZGRiODA2MDg0NDVjY2EzNTVmMzdmOGFlYjgzZWIzZWNlZTU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC02MDk1LDEwICs2MDk1LDcgQEAgLSAo
RHJhZ0FwcGxpY2F0aW9uRmxhZ3MpYXBwbGljYXRpb25GbGFnczooaWQgPE5TRHJhZ2dpbmdJbmZv
PilkcmFnZ2luZ0luZm8KICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSGFzQXR0YWNo
ZWRTaGVldDsKICAgICBpZiAoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZV0gPT0gc2VsZikK
ICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2U7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2Rp
ZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBpZiAoW1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNF
dmVudE1vZGlmaWVyRmxhZ09wdGlvbikKICAgICAgICAgZmxhZ3MgfD0gRHJhZ0FwcGxpY2F0aW9u
SXNDb3B5S2V5RG93bjsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RHJhZ0FwcGxpY2F0aW9uRmxh
Z3M+KGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hp
bGRQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NN
YWMubW0KaW5kZXggMmU2NTgwNmRiNWQ2OGYwYTRhMjgyZDM4M2I5NmU3YjQ1MTZiOTA0MC4uZmE2
MjVlMzU5NzU3NjVlMzU5ZGRhMWY0YzRmNzI5M2Y2ZDBlMmViYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTE5NywxMCArMTk3LDcgQEAgdm9p
ZCBDaGlsZFByb2Nlc3M6OnN0b3BOU0FwcFJ1bkxvb3AoKQogICAgIEFTU0VSVChbTlNBcHAgaXNS
dW5uaW5nXSk7CiAgICAgW05TQXBwIHN0b3A6bmlsXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgb3RoZXJFdmVudFdp
dGhUeXBlOk5TQXBwbGljYXRpb25EZWZpbmVkIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApIG1v
ZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MC4wIHdpbmRvd051bWJlcjowIGNvbnRleHQ6bmlsIHN1
YnR5cGU6MCBkYXRhMTowIGRhdGEyOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlQXBwbGljYXRpb25EZWZpbmVkIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApIG1vZGlmaWVy
RmxhZ3M6MCB0aW1lc3RhbXA6MC4wIHdpbmRvd051bWJlcjowIGNvbnRleHQ6bmlsIHN1YnR5cGU6
MCBkYXRhMTowIGRhdGEyOjBdOwogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDp0
cnVlXTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFj
dG9yeS5tbQppbmRleCBhODVlZmNhZWU5YTUyZDhjMDQ1NjY2ZDk0YzQ5MTg3MGNhNjhhN2QzLi44
YjA2ZWU3NDg5NjgzYTMxYjUzNTgzN2M2MTQxNDEwZWRlZmRjYWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAtNjMsNzggKzYzLDY5IEBAIHN0
YXRpYyBXZWJNb3VzZUV2ZW50OjpCdXR0b24gY3VycmVudE1vdXNlQnV0dG9uKCkKIAogc3RhdGlj
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvckV2ZW50KE5TRXZlbnQgKmV2ZW50
KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRjaCAoW2V2
ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAgICBjYXNl
IE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgICAg
ICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b247Ci0gICAgICAgIGNhc2UgTlNS
aWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAgICAgY2Fz
ZSBOU1JpZ2h0TW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQ6
OlJpZ2h0QnV0dG9uOwotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgIGNh
c2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAg
ICAgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVCdXR0b247CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVw
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgICAgICByZXR1cm4g
V2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpS
aWdodEJ1dHRvbjsKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3Vz
ZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBXZWJNb3VzZUV2ZW50OjpNaWRkbGVCdXR0b247CiAj
aWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICAgICAgY2FzZSBOU0V2ZW50VHlwZVByZXNzdXJlOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotICAgICAgICBjYXNlIE5TTW91
c2VFbnRlcmVkOgotICAgICAgICBjYXNlIE5TTW91c2VFeGl0ZWQ6Ci0gICAgICAgICAgICByZXR1
cm4gY3VycmVudE1vdXNlQnV0dG9uKCk7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNl
RW50ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgICAgIHJldHVy
biBjdXJyZW50TW91c2VCdXR0b24oKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gV2Vi
TW91c2VFdmVudDo6Tm9CdXR0b247CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogfQogCiBzdGF0aWMgV2ViRXZlbnQ6OlR5cGUgbW91c2VFdmVudFR5cGVGb3JFdmVudChOU0V2
ZW50KiBldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBz
d2l0Y2ggKFtldmVudCB0eXBlXSkgewotICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoK
LSAgICAgICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICAgICAgY2FzZSBOU01vdXNlRXhpdGVk
OgotICAgICAgICBjYXNlIE5TTW91c2VNb3ZlZDoKLSAgICAgICAgY2FzZSBOU090aGVyTW91c2VE
cmFnZ2VkOgotICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKLSAgICAgICAgY2FzZSBOU0xlZnRNb3VzZURvd246
Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICAgICAgY2FzZSBOU090aGVyTW91
c2VEb3duOgotICAgICAgICAgICAgcmV0dXJuIFdlYkV2ZW50OjpNb3VzZURvd247Ci0gICAgICAg
IGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICAg
ICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91
c2VVcDsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91
c2VNb3ZlOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2Ug
TlNFdmVudFR5cGVNb3VzZUVudGVyZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRXhpdGVk
OgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVkOgorICAgIGNhc2UgTlNFdmVudFR5cGVP
dGhlck1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6
CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VNb3ZlOworICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgICAgIHJldHVybiBXZWJFdmVu
dDo6TW91c2VEb3duOworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNl
VXA6CisgICAgICAgIHJldHVybiBXZWJFdmVudDo6TW91c2VVcDsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCiB9CiAKIHN0YXRpYyBpbnQgY2xpY2tDb3VudEZvckV2ZW50KE5TRXZlbnQg
KmV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIHN3aXRj
aCAoW2V2ZW50IHR5cGVdKSB7Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgotICAgICAg
ICBjYXNlIE5TTGVmdE1vdXNlVXA6Ci0gICAgICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgICAgICBjYXNlIE5TUmlnaHRNb3VzZURvd246Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNl
VXA6Ci0gICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgY2FzZSBOU090
aGVyTW91c2VEb3duOgotICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZVVwOgotICAgICAgICBjYXNl
IE5TT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICByZXR1cm4gW2V2ZW50IGNsaWNrQ291
bnRdOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVw
OgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVu
dFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgor
ICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgICAgIHJldHVybiBbZXZl
bnQgY2xpY2tDb3VudF07CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogfQogCiBzdGF0aWMgTlNQb2ludCBnbG9iYWxQ
b2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQpAQCAtMTQzLDIyICsxMzQsMTkgQEAgc3RhdGlj
IE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChOU0V2ZW50ICpldmVudCkKICNpZiBkZWZpbmVk
KF9fTFA2NF9fKQogICAgIGNhc2UgTlNFdmVudFR5cGVQcmVzc3VyZToKICNlbmRpZgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGNhc2UgTlNMZWZ0TW91c2VEb3duOgot
ICAgIGNhc2UgTlNMZWZ0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKLSAg
ICBjYXNlIE5TTW91c2VFbnRlcmVkOgotICAgIGNhc2UgTlNNb3VzZUV4aXRlZDoKLSAgICBjYXNl
IE5TTW91c2VNb3ZlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgY2FzZSBOU090
aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNPdGhlck1vdXNlVXA6Ci0gICAgY2FzZSBOU1Jp
Z2h0TW91c2VEb3duOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5T
UmlnaHRNb3VzZVVwOgotICAgIGNhc2UgTlNTY3JvbGxXaGVlbDoKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURy
YWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZDoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNl
IE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpnbG9iYWxQ
b2ludChbZXZlbnQgbG9jYXRpb25JbldpbmRvd10sIFtldmVudCB3aW5kb3ddKTsKICAgICBkZWZh
dWx0OgogICAgICAgICByZXR1cm4gTlNaZXJvUG9pbnQ7CkBAIC0xNzEsMjIgKzE1OSwxOSBAQCBz
dGF0aWMgTlNQb2ludCBwb2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRv
d1ZpZXcpCiAjaWYgZGVmaW5lZChfX0xQNjRfXykKICAgICBjYXNlIE5TRXZlbnRUeXBlUHJlc3N1
cmU6CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBjYXNl
IE5TTGVmdE1vdXNlRG93bjoKLSAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNl
IE5TTGVmdE1vdXNlVXA6Ci0gICAgY2FzZSBOU01vdXNlRW50ZXJlZDoKLSAgICBjYXNlIE5TTW91
c2VFeGl0ZWQ6Ci0gICAgY2FzZSBOU01vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU090aGVyTW91c2VE
b3duOgotICAgIGNhc2UgTlNPdGhlck1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TT3RoZXJNb3Vz
ZVVwOgotICAgIGNhc2UgTlNSaWdodE1vdXNlRG93bjoKLSAgICBjYXNlIE5TUmlnaHRNb3VzZURy
YWdnZWQ6Ci0gICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKLSAgICBjYXNlIE5TU2Nyb2xsV2hlZWw6
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVm
dE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6CisgICAgY2FzZSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlRW50
ZXJlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VFeGl0ZWQ6CisgICAgY2FzZSBOU0V2ZW50
VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOgorICAg
IGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVy
TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjoKKyAgICBj
YXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1v
dXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWw6IHsKICAgICAgICAg
Ly8gTm90ZTogVGhpcyB3aWxsIGhhdmUgaXRzIG9yaWdpbiBhdCB0aGUgYm90dG9tIGxlZnQgb2Yg
dGhlIHdpbmRvdyB1bmxlc3Mgd2luZG93VmlldyBpcyBmbGlwcGVkLgogICAgICAgICAvLyBJbiB0
aG9zZSBjYXNlcywgdGhlIFkgY29vcmRpbmF0ZSBnZXRzIGZsaXBwZWQgYnkgV2lkZ2V0Ojpjb252
ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cuCiAgICAgICAgIE5TUG9pbnQgbG9jYXRpb24gPSBbZXZl
bnQgbG9jYXRpb25JbldpbmRvd107CkBAIC0yNDAsMTAgKzIyNSw3IEBAIHN0YXRpYyBpbmxpbmUg
U3RyaW5nIHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFjZXNTb2Z0U3Bh
Y2UpCiB7CiAgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQogICAgICAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2
ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQpCiAgICAg
ICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmcoW2V2ZW50IGNoYXJh
Y3RlcnNdKTsKIH0KQEAgLTI1MiwxMCArMjM0LDcgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgdW5t
b2RpZmllZFRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFjZXNTb2Z0U3AK
IHsKICAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQg
dHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCkKICAgICAgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0cmluZyhbZXZlbnQgY2hhcmFjdGVy
c0lnbm9yaW5nTW9kaWZpZXJzXSk7CiB9CkBAIC0yNjQsNzQgKzI0Myw2OCBAQCBzdGF0aWMgYm9v
bCBpc0tleXBhZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhp
cyBpcyB0aGUgdHlwZSBvZiBldmVudCB0aGF0IGhhcyBhIGtleUNvZGUuCiAgICAgc3dpdGNoIChb
ZXZlbnQgdHlwZV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAg
ICAgY2FzZSBOU0tleURvd246Ci0gICAgICAgIGNhc2UgTlNLZXlVcDoKLSAgICAgICAgY2FzZSBO
U0ZsYWdzQ2hhbmdlZDoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVLZXlVcDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkOgorICAgICAgICBicmVhazsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgc3dpdGNoIChbZXZlbnQg
a2V5Q29kZV0pIHsKLSAgICAgICAgY2FzZSA3MTogLy8gQ2xlYXIKLSAgICAgICAgY2FzZSA4MTog
Ly8gPQotICAgICAgICBjYXNlIDc1OiAvLyAvCi0gICAgICAgIGNhc2UgNjc6IC8vICoKLSAgICAg
ICAgY2FzZSA3ODogLy8gLQotICAgICAgICBjYXNlIDY5OiAvLyArCi0gICAgICAgIGNhc2UgNzY6
IC8vIEVudGVyCi0gICAgICAgIGNhc2UgNjU6IC8vIC4KLSAgICAgICAgY2FzZSA4MjogLy8gMAot
ICAgICAgICBjYXNlIDgzOiAvLyAxCi0gICAgICAgIGNhc2UgODQ6IC8vIDIKLSAgICAgICAgY2Fz
ZSA4NTogLy8gMwotICAgICAgICBjYXNlIDg2OiAvLyA0Ci0gICAgICAgIGNhc2UgODc6IC8vIDUK
LSAgICAgICAgY2FzZSA4ODogLy8gNgotICAgICAgICBjYXNlIDg5OiAvLyA3Ci0gICAgICAgIGNh
c2UgOTE6IC8vIDgKLSAgICAgICAgY2FzZSA5MjogLy8gOQotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgIH0KKyAgICBjYXNlIDcxOiAvLyBDbGVhcgorICAgIGNhc2UgODE6IC8vID0KKyAg
ICBjYXNlIDc1OiAvLyAvCisgICAgY2FzZSA2NzogLy8gKgorICAgIGNhc2UgNzg6IC8vIC0KKyAg
ICBjYXNlIDY5OiAvLyArCisgICAgY2FzZSA3NjogLy8gRW50ZXIKKyAgICBjYXNlIDY1OiAvLyAu
CisgICAgY2FzZSA4MjogLy8gMAorICAgIGNhc2UgODM6IC8vIDEKKyAgICBjYXNlIDg0OiAvLyAy
CisgICAgY2FzZSA4NTogLy8gMworICAgIGNhc2UgODY6IC8vIDQKKyAgICBjYXNlIDg3OiAvLyA1
CisgICAgY2FzZSA4ODogLy8gNgorICAgIGNhc2UgODk6IC8vIDcKKyAgICBjYXNlIDkxOiAvLyA4
CisgICAgY2FzZSA5MjogLy8gOQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgIAog
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0g
ICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0ZsYWdzQ2hhbmdlZCkKLSAgICAgICAgcmV0dXJuIFtl
dmVudCB0eXBlXSA9PSBOU0tleVVwOworICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5
cGVGbGFnc0NoYW5nZWQpCisgICAgICAgIHJldHVybiBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5
cGVLZXlVcDsKICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBmYWlscyBpZiB0aGUgdXNlciBwcmVz
c2VzIGJvdGggU2hpZnQga2V5cyBhdCBvbmNlLCBmb3IgZXhhbXBsZToKICAgICAvLyB3ZSB0cmVh
dCByZWxlYXNpbmcgb25lIG9mIHRoZW0gYXMga2V5RG93bi4KICAgICBzd2l0Y2ggKFtldmVudCBr
ZXlDb2RlXSkgewotICAgICAgICBjYXNlIDU0OiAvLyBSaWdodCBDb21tYW5kCi0gICAgICAgIGNh
c2UgNTU6IC8vIExlZnQgQ29tbWFuZAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZp
ZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAgCi0gICAgICAg
IGNhc2UgNTc6IC8vIENhcHNsb2NrCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAotICAgICAgICBjYXNlIDYwOiAvLyBSaWdodCBTaGlm
dAotICAgICAgICAgICAgcmV0dXJuIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU1NoaWZ0S2V5
TWFzaykgPT0gMDsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIDU4OiAvLyBMZWZ0IEFsdAot
ICAgICAgICBjYXNlIDYxOiAvLyBSaWdodCBBbHQKLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKSA9PSAwOwotICAgICAgICAgICAg
Ci0gICAgICAgIGNhc2UgNTk6IC8vIExlZnQgQ3RybAotICAgICAgICBjYXNlIDYyOiAvLyBSaWdo
dCBDdHJsCi0gICAgICAgICAgICByZXR1cm4gKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29u
dHJvbEtleU1hc2spID09IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSA2MzogLy8gRnVu
Y3Rpb24KLSAgICAgICAgICAgIHJldHVybiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNGdW5j
dGlvbktleU1hc2spID09IDA7CisgICAgY2FzZSA1NDogLy8gUmlnaHQgQ29tbWFuZAorICAgIGNh
c2UgNTU6IC8vIExlZnQgQ29tbWFuZAorICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJG
bGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCk7CisKKyAgICBjYXNlIDU3OiAvLyBD
YXBzbG9jaworICAgICAgICByZXR1cm4gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50
TW9kaWZpZXJGbGFnQ2Fwc0xvY2spOworCisgICAgY2FzZSA1NjogLy8gTGVmdCBTaGlmdAorICAg
IGNhc2UgNjA6IC8vIFJpZ2h0IFNoaWZ0CisgICAgICAgIHJldHVybiAhKFtldmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCk7CisKKyAgICBjYXNlIDU4OiAvLyBM
ZWZ0IEFsdAorICAgIGNhc2UgNjE6IC8vIFJpZ2h0IEFsdAorICAgICAgICByZXR1cm4gIShbZXZl
bnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKTsKKworICAgIGNh
c2UgNTk6IC8vIExlZnQgQ3RybAorICAgIGNhc2UgNjI6IC8vIFJpZ2h0IEN0cmwKKyAgICAgICAg
cmV0dXJuICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRy
b2wpOworCisgICAgY2FzZSA2MzogLy8gRnVuY3Rpb24KKyAgICAgICAgcmV0dXJuICEoW2V2ZW50
IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uKTsKICAgICB9Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0z
MzksNyArMzEyLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVy
c0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7
CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIGlm
IChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spCiAg
ICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fwc0xvY2tLZXk7CiAgICAgaWYgKFtldmVu
dCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCkKQEAgLTM1MCwxOCAr
MzIyLDYgQEAgc3RhdGljIGlubGluZSBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVyc0ZvckV2
ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkFsdEtl
eTsKICAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0Nv
bW1hbmQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtleTsKLSNlbHNlCi0g
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWxwaGFTaGlmdEtleU1hc2spCi0gICAg
ICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6Q2Fwc0xvY2tLZXk7Ci0gICAgaWYgKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gV2Vi
RXZlbnQ6OlNoaWZ0S2V5OwotICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbnRy
b2xLZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRyb2xLZXk7Ci0g
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSAgICAg
ICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpBbHRLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVu
dDo6TWV0YUtleTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIChXZWJFdmVudDo6TW9kaWZpZXJzKW1v
ZGlmaWVyczsKIH0KQEAgLTQ4NCwxMCArNDQ0LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEK
ICAgICBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlICAgICAgID0gd2luZG93c0tleUNvZGVGb3JL
ZXlFdmVudChldmVudCk7CiAgICAgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlICAgICAgICA9IFtl
dmVudCBrZXlDb2RlXTsKICAgICBpbnQgbWFjQ2hhckNvZGUgICAgICAgICAgICAgICAgID0gV0tH
ZXROU0V2ZW50S2V5Q2hhcihldmVudCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgYm9vbCBhdXRvUmVwZWF0ICAgICAgICAgICAgICAgICA9IChbZXZlbnQgdHlwZV0g
IT0gTlNGbGFnc0NoYW5nZWQpICYmIFtldmVudCBpc0FSZXBlYXRdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIGJvb2wgYXV0b1JlcGVhdCAgICAgICAgICAgICAgICAgPSBbZXZl
bnQgdHlwZV0gIT0gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgJiYgW2V2ZW50IGlzQVJlcGVhdF07
CiAgICAgYm9vbCBpc0tleXBhZCAgICAgICAgICAgICAgICAgICA9IGlzS2V5cGFkRXZlbnQoZXZl
bnQpOwogICAgIGJvb2wgaXNTeXN0ZW1LZXkgICAgICAgICAgICAgICAgPSBmYWxzZTsgLy8gU3lz
dGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogICAgIFdlYkV2ZW50OjpNb2RpZmll
cnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1t
CmluZGV4IGJhMTk5NmIyMTc0ZTIzZTQ3Nzg0NjM3ZWQ3MjEwN2M3NTFiMGMzY2UuLjY3ZThiZDM2
MGJkMTlkYWY4NDlkZjFiNGU0NzMyZjE3NTRlNjQ3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLm1tCkBAIC03
OSw3ICs3OSw2IEBAIHN0YXRpYyBOU0V2ZW50TW9kaWZpZXJGbGFncyB0b05TRXZlbnRNb2RpZmll
ckZsYWdzKFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVycyBtCiB7CiAgICAgTlNFdmVudE1vZGlm
aWVyRmxhZ3MgbW9kaWZpZXJGbGFncyA9IDA7CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTIwMAogICAgIGlmIChtb2RpZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50
OjpDYXBzTG9ja0tleSkKICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnQ2Fwc0xvY2s7CiAgICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6OlNoaWZ0
S2V5KQpAQCAtOTAsMTggKzg5LDYgQEAgc3RhdGljIE5TRXZlbnRNb2RpZmllckZsYWdzIHRvTlNF
dmVudE1vZGlmaWVyRmxhZ3MoV2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXJzIG0KICAgICAgICAg
bW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAgIGlmIChtb2Rp
ZmllcnMgJiBXZWJLaXQ6OldlYkV2ZW50OjpNZXRhS2V5KQogICAgICAgICBtb2RpZmllckZsYWdz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwotI2Vsc2UKLSAgICBpZiAobW9kaWZpZXJz
ICYgV2ViS2l0OjpXZWJFdmVudDo6Q2Fwc0xvY2tLZXkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3Mg
fD0gTlNBbHBoYVNoaWZ0S2V5TWFzazsKLSAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJF
dmVudDo6U2hpZnRLZXkpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7
Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYktpdDo6V2ViRXZlbnQ6OkNvbnRyb2xLZXkpCi0gICAg
ICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNDb250cm9sS2V5TWFzazsKLSAgICBpZiAobW9kaWZpZXJz
ICYgV2ViS2l0OjpXZWJFdmVudDo6QWx0S2V5KQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
QWx0ZXJuYXRlS2V5TWFzazsKLSAgICBpZiAobW9kaWZpZXJzICYgV2ViS2l0OjpXZWJFdmVudDo6
TWV0YUtleSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0NvbW1hbmRLZXlNYXNrOwotI2Vu
ZGlmCiAKICAgICByZXR1cm4gbW9kaWZpZXJGbGFnczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAzMmU2MzljNGQ5MTlhZDE2ZTlhOTQ4
MmI5MzVjZWYwNDYzNzcxZmJhLi5kMjhkMzUzNjc5N2U1MDE4NTYyY2JjYzk5MzhlZjczMmFkZWFl
OGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CkBAIC02MjAsMTEgKzYyMCw4IEBAIGJvb2wgV2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9u
ZGVyKCkKICAgICBpZiAoZGlyZWN0aW9uICE9IE5TRGlyZWN0U2VsZWN0aW9uKSB7CiAgICAgICAg
IE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVudF07CiAgICAgICAgIE5TRXZlbnQg
KmtleWJvYXJkRXZlbnQgPSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9
PSBOU0tleVVwKQorICAgICAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRXZlbnRUeXBlS2V5RG93
biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNFdmVudFR5cGVLZXlVcCkKICAgICAgICAgICAgIGtleWJv
YXJkRXZlbnQgPSBldmVudDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAg
bV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4dCwga2V5
Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCwg
ZmFsc2UsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsgfSk7
CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtODQ4LDEwICs4NDUsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjp1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKQogICAgICAgICByZXR1cm47
CiAKICAgICBOU1dpbmRvdyAqd2luZG93ID0gbV92aWV3LndpbmRvdzsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoKHdpbmRvdy5zdHlsZU1hc2sgJiBOU0Z1bGxT
aXplQ29udGVudFZpZXdXaW5kb3dNYXNrKSAmJiAhd2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5z
cGFyZW50ICYmICFbbV92aWV3IGVuY2xvc2luZ1Njcm9sbFZpZXddKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgaWYgKCh3aW5kb3cuc3R5bGVNYXNrICYgTlNXaW5kb3dTdHls
ZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3KSAmJiAhd2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5z
cGFyZW50ICYmICFbbV92aWV3IGVuY2xvc2luZ1Njcm9sbFZpZXddKSB7CiAgICAgICAgIE5TUmVj
dCBjb250ZW50TGF5b3V0UmVjdCA9IFttX3ZpZXcgY29udmVydFJlY3Q6d2luZG93LmNvbnRlbnRM
YXlvdXRSZWN0IGZyb21WaWV3Om5pbF07CiAgICAgICAgIENHRmxvYXQgbmV3VG9wQ29udGVudElu
c2V0ID0gTlNNYXhZKGNvbnRlbnRMYXlvdXRSZWN0KSAtIE5TSGVpZ2h0KGNvbnRlbnRMYXlvdXRS
ZWN0KTsKICAgICAgICAgaWYgKG1fdG9wQ29udGVudEluc2V0ICE9IG5ld1RvcENvbnRlbnRJbnNl
dCkKQEAgLTEyMjgsMTAgKzEyMjIsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRv
V2luZG93KCkKIAogICAgICAgICBpZiAoIW1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7CiAg
ICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAgICAgICAgbV9mbGFnc0NoYW5nZWRFdmVudE1v
bml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNG
bGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6W3dlYWtUaGlzXSAoTlNFdmVudCAqZmxhZ3NDaGFuZ2Vk
RXZlbnQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIG1fZmxh
Z3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRz
TWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2VkIGhhbmRsZXI6W3dlYWtUaGlzXSAo
TlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKICAgICAgICAgICAgICAgICBpZiAod2Vha1Ro
aXMpCiAgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5wb3N0RmFrZU1vdXNlTW92ZWRFdmVu
dEZvckZsYWdzQ2hhbmdlZEV2ZW50KGZsYWdzQ2hhbmdlZEV2ZW50KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CkBAIC0xMzAyLDEyICsxMjkzLDkgQEAgTlNWaWV3
ICpXZWJWaWV3SW1wbDo6aGl0VGVzdChDR1BvaW50IHBvaW50KQogCiB2b2lkIFdlYlZpZXdJbXBs
Ojpwb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50KE5TRXZlbnQgKmZs
YWdzQ2hhbmdlZEV2ZW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01v
dXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFuZ2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25P
dXRzaWRlT2ZFdmVudFN0cmVhbQorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQgbG9jYXRpb246ZmxhZ3NDaGFu
Z2VkRXZlbnQud2luZG93Lm1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbQogICAgICAg
ICBtb2RpZmllckZsYWdzOmZsYWdzQ2hhbmdlZEV2ZW50Lm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1w
OmZsYWdzQ2hhbmdlZEV2ZW50LnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6ZmxhZ3NDaGFuZ2VkRXZl
bnQud2luZG93TnVtYmVyCiAgICAgICAgIGNvbnRleHQ6bnVsbHB0ciBldmVudE51bWJlcjowIGNs
aWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAg
ICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGZha2VFdmVudCwgbV9sYXN0UHJlc3N1cmVF
dmVudC5nZXQoKSwgbV92aWV3KTsKICAgICBtX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZl
bnQpOwogfQpAQCAtMTY1NiwxMCArMTY0NCw3IEBAIE5TVmlldyAqV2ViVmlld0ltcGw6OmZ1bGxT
Y3JlZW5QbGFjZWhvbGRlclZpZXcoKQogTlNXaW5kb3cgKldlYlZpZXdJbXBsOjpjcmVhdGVGdWxs
U2NyZWVuV2luZG93KCkKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJuIFtbW1dlYkNvcmVGdWxsU2NyZWVu
V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4gbWFpblNjcmVlbl0g
ZnJhbWVdIHN0eWxlTWFzazooTlNCb3JkZXJsZXNzV2luZG93TWFzayB8IE5TUmVzaXphYmxlV2lu
ZG93TWFzaykgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSBhdXRvcmVs
ZWFzZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgcmV0dXJuIFtbW1dlYkNv
cmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OltbTlNTY3JlZW4g
bWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazooTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNz
IHwgTlNXaW5kb3dTdHlsZU1hc2tSZXNpemFibGUpIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZm
ZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVhc2VdOwogI2Vsc2UKICAgICByZXR1cm4gbmlsOwogI2Vu
ZGlmCkBAIC0yNjMxLDkgKzI2MTYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZW1vdmVUcmFja2lu
Z1JlY3RzKE5TVHJhY2tpbmdSZWN0VGFnICp0YWdzLCBpbnQgY291bnQpCiB2b2lkIFdlYlZpZXdJ
bXBsOjpzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCkKIHsKICAgICAvLyBOb3RoaW5nIG1hdHRlcnMg
ZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0YS4KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVu
dCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFeGl0ZWQKKyAgICBOU0V2ZW50ICpmYWtl
RXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VF
eGl0ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowCkBAIC0yNjQyLDE2ICsyNjI1LDEzIEBAIHZv
aWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFeGl0ZWQoKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJBQ0tJTkdfUkVD
VF9UQUcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVz
ZXJEYXRhOm1fdHJhY2tpbmdSZWN0VXNlckRhdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAogICAgIFttX3RyYWNraW5nUmVjdE93bmVyIG1vdXNlRXhpdGVkOmZha2VFdmVudF07CiB9
CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFbnRlcmVkKCkKIHsKICAgICAv
LyBOb3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2Vy
RGF0YS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBOU0V2ZW50ICpm
YWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhUeXBlOk5TTW91c2VFbnRlcmVk
CisgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgZW50ZXJFeGl0RXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZU1vdXNlRW50ZXJlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOjAKQEAgLTI2
NjAsNyArMjY0MCw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFbnRlcmVk
KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVt
YmVyOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNraW5n
TnVtYmVyOlRSQUNLSU5HX1JFQ1RfVEFHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1c2VyRGF0YTptX3RyYWNraW5nUmVjdFVzZXJEYXRhXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBbbV90cmFja2luZ1JlY3RPd25lciBtb3VzZUVu
dGVyZWQ6ZmFrZUV2ZW50XTsKIH0KIApAQCAtMjgxNiwxMCArMjc5NSw3IEBAIHN0YXRpYyBXZWJD
b3JlOjpEcmFnQXBwbGljYXRpb25GbGFncyBhcHBsaWNhdGlvbkZsYWdzRm9yRHJhZyhOU1ZpZXcg
KnZpZXcsIGlkIDxOCiAgICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkhh
c0F0dGFjaGVkU2hlZXQ7CiAgICAgaWYgKGRyYWdnaW5nSW5mby5kcmFnZ2luZ1NvdXJjZSA9PSB2
aWV3KQogICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW05TQXBwIGN1cnJl
bnRFdmVudF0ubW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBpZiAoW05TQXBwIGN1cnJlbnRFdmVudF0ubW9kaWZpZXJG
bGFncyAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24pCiAgICAgICAgIGZsYWdzIHw9IFdlYkNv
cmU6OkRyYWdBcHBsaWNhdGlvbklzQ29weUtleURvd247CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzPihmbGFncyk7CiAKQEAgLTMzNTksMTAgKzMz
MzUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzbWFydE1hZ25pZnlXaXRoRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldExhc3RNb3VzZURvd25FdmVudChOU0V2ZW50
ICpldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBBU1NF
UlQoIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT0gTlNMZWZ0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUg
PT0gTlNSaWdodE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TT3RoZXJNb3VzZURvd24pOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFTU0VSVCghZXZlbnQgfHwgZXZlbnQu
dHlwZSA9PSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gfHwgZXZlbnQudHlwZSA9PSBOU0V2ZW50
VHlwZVJpZ2h0TW91c2VEb3duIHx8IGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVPdGhlck1vdXNl
RG93bik7CiAKICAgICBpZiAoZXZlbnQgPT0gbV9sYXN0TW91c2VEb3duRXZlbnQuZ2V0KCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTMzOTksMTEgKzMzNzIsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpk
aWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpkb25lV2l0aEtl
eUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TS2V5
RG93bikKKyAgICBpZiAoW2V2ZW50IHR5cGVdICE9IE5TRXZlbnRUeXBlS2V5RG93bikKICAgICAg
ICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgaWYgKHRyeVBv
c3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24oZXZlbnQpKQogICAgICAgICBy
ZXR1cm47CkBAIC0zNDc5LDExICszNDQ5LDggQEAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZD4gV2ViVmlld0ltcGw6OmNvbGxlY3RLZXlib2FyZExheW91dENvbW1hbmRzRm9yRXYKIHsK
ICAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBjb21tYW5kczsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNL
ZXlEb3duKQorICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNFdmVudFR5cGVLZXlEb3duKQogICAg
ICAgICByZXR1cm4gY29tbWFuZHM7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAKICAg
ICBBU1NFUlQoIW1fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kcyk7CiAgICAgbV9jb2xsZWN0ZWRL
ZXlwcmVzc0NvbW1hbmRzID0gJmNvbW1hbmRzOwpAQCAtMzg1OCwxMSArMzgyNSw4IEBAIGJvb2wg
V2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIC8v
IFdlIGdldCBFc2Mga2V5IGhlcmUgYWZ0ZXIgcHJvY2Vzc2luZyBlaXRoZXIgRXNjIG9yIENtZCtw
ZXJpb2QuIFRoZSBmb3JtZXIgc3RhcnRzIGFzIGEga2V5RG93biwgYW5kIHRoZSBsYXR0ZXIgc3Rh
cnRzIGFzIGEga2V5IGVxdWl2YWxlbnQsCiAgICAgLy8gYnV0IGJvdGggZ2V0IHRyYW5zZm9ybWVk
IHRvIGEgY2FuY2VsT3BlcmF0aW9uOiBjb21tYW5kLCBleGVjdXRpbmcgd2hpY2ggcGFzc2VzIGFu
IEVzYyBrZXkgZXZlbnQgdG8gLXBlcmZvcm1LZXlFcXVpdmFsZW50Oi4KICAgICAvLyBEb24ndCBp
bnRlcnByZXQgdGhpcyBldmVudCBhZ2FpbiwgYXZvaWRpbmcgcmUtZW50cmFuY3kgYW5kIGluZmlu
aXRlIGxvb3BzLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmIChb
W2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUi
XSAmJiAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmll
ckZsYWdzTWFzaykpCisgICAgaWYgKFtbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJz
XSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNF
dmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NNYXNrKSkKICAgICAgICAgcmV0
dXJuIFttX3ZpZXcgX3dlYl9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgIGlmIChtX2tleURvd25FdmVudEJlaW5nUmVz
ZW50KSB7CiAgICAgICAgIC8vIFdlYkNvcmUgaGFzIGFscmVhZHkgc2VlbiB0aGUgZXZlbnQsIG5v
IG5lZWQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KaW5k
ZXggZjA3ZDI3OWQ2MzdkMzBmOGY1MDUzMTdkOGYwOTYwNTU3YTExZDJkMi4uMjY4ZDA5ZTVkOTA5
MWQ1Zjg5NTM4ZWMwMTM2MjE0M2M5MTkwZTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1t
CkBAIC0yMzEsMTAgKzIzMSw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpiZWdpbk1vZGFs
KCkKICAgICBBU1NFUlQoIW1fcGxhY2Vob2xkZXJXaW5kb3cpOwogICAgIEFTU0VSVCghbV9hY3Rp
dmF0aW9uT2JzZXJ2ZXIpOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIG1fcGxhY2Vob2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV0tQbGFjZWhvbGRlck1vZGFs
V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkg
c3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1
ZmZlcmVkIGRlZmVyOllFU10pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIG1f
cGxhY2Vob2xkZXJXaW5kb3cgPSBhZG9wdE5TKFtbV0tQbGFjZWhvbGRlck1vZGFsV2luZG93IGFs
bG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMSwgMSkgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6WUVTXSk7CiAgICAgW21fcGxhY2Vob2xkZXJXaW5kb3cgc2V0UmVsZWFzZWRXaGVu
Q2xvc2VkOk5PXTsKICAgICAKICAgICBtX2FjdGl2YXRpb25PYnNlcnZlciA9IFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOk5TQXBwbGljYXRp
b25XaWxsQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcCBxdWV1ZTpuaWwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbQppbmRleCBhNDgzOTY0ZDhmMWYyMjZkNGFlY2MyN2NjYjBmMDc2MDcxYjdiYmQxLi40
N2RhMjE3MjEzZjliYmY3MjgyMmIyOTIwYmM5ZWQxNmU3Nzg1NmM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBA
IC00NjMsMTAgKzQ2Myw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6c2hvd0NvbnRl
eHRNZW51V2l0aEl0ZW1zKGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVuCiAgICAgW1tXS01lbnVU
YXJnZXQgc2hhcmVkTWVudVRhcmdldF0gc2V0TWVudVByb3h5OnRoaXNdOwogCiAgICAgTlNQb2lu
dCBtZW51TG9jYXRpb24gPSBbbV93ZWJWaWV3IGNvbnZlcnRQb2ludDptX2NvbnRleHQubWVudUxv
Y2F0aW9uKCkgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdo
dE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6
MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwg
ZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAgbG9jYXRpb246bWVudUxvY2F0aW9uIG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6bV93ZWJWaWV3LndpbmRvdy53aW5k
b3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6
MF07CiAgICAgW05TTWVudSBwb3BVcENvbnRleHRNZW51Om1fbWVudS5nZXQoKSB3aXRoRXZlbnQ6
ZXZlbnQgZm9yVmlldzptX3dlYlZpZXddOwogCiAgICAgaWYgKG1fY29udGV4dE1lbnVMaXN0ZW5l
cikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0
b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9y
UHJveHlNYWMubW0KaW5kZXggMGE3OTkxMzQ2ZDE1Y2NmYWM3NzQzNWVmMzBlZjhkZjgyMmFmYWUy
My4uODE4YmQzOTBkNDgzZDA4MjJiYWU3OTM0ZTEwNmZkYmIwY2RmZjg1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCkBA
IC00OCwxMCArNDgsNyBAQCBTT0ZUX0xJTktfU1RBR0VEX0ZSQU1FV09SSyhXZWJJbnNwZWN0b3JV
SSwgUHJpdmF0ZUZyYW1ld29ya3MsIEEpCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LXN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHdpbmRvd1N0eWxlTWFzayA9IE5TVGl0bGVkV2luZG93
TWFzayB8IE5TQ2xvc2FibGVXaW5kb3dNYXNrIHwgTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sg
fCBOU1Jlc2l6YWJsZVdpbmRvd01hc2sgfCBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNr
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorc3RhdGljIGNvbnN0IE5TVUludGVnZXIg
d2luZG93U3R5bGVNYXNrID0gTlNXaW5kb3dTdHlsZU1hc2tUaXRsZWQgfCBOU1dpbmRvd1N0eWxl
TWFza0Nsb3NhYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tNaW5pYXR1cml6YWJsZSB8IE5TV2luZG93
U3R5bGVNYXNrUmVzaXphYmxlIHwgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRlbnRWaWV3
OwogCiAvLyBUaGUgdGltZSB3ZSBrZWVwIG91ciBXZWJWaWV3IGFsaXZlIGJlZm9yZSBjbG9zaW5n
IGl0IGFuZCBpdHMgcHJvY2Vzcy4KIC8vIFJldXNpbmcgdGhlIFdlYlZpZXcgaW1wcm92ZXMgc3Rh
cnQgdXAgdGltZSBmb3IgcGVvcGxlIHRoYXQganVtcCBpbiBhbmQgb3V0IG9mIHRoZSBJbnNwZWN0
b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVu
dVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQ
cm94eU1hYy5tbQppbmRleCBkMjlkMDg5MDUyYzg4N2FmYjg2NDIzODQ1NWFhMTg4NGI0ZGQ0NjVj
Li5kMzAxOTRkYmYwNjVkYWZlZGM5YTQwZTFhMzE0ODc0YmZkMWIwNTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAg
LTc0LDE5ICs3NCwxMyBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpwb3B1bGF0ZShjb25z
dCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIE5TRm9udCAqZgogICAgICAgICAgICAgUmV0
YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0eWxlPiBwYXJhZ3JhcGhTdHlsZSA9IGFkb3B0TlMo
W1tOU1BhcmFncmFwaFN0eWxlIGRlZmF1bHRQYXJhZ3JhcGhTdHlsZV0gbXV0YWJsZUNvcHldKTsK
ICAgICAgICAgICAgIE5TV3JpdGluZ0RpcmVjdGlvbiB3cml0aW5nRGlyZWN0aW9uID0gaXRlbXNb
aV0ubV90ZXh0RGlyZWN0aW9uID09IExUUiA/IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0
IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQ7CiAgICAgICAgICAgICBbcGFyYWdyYXBo
U3R5bGUgc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb246d3JpdGluZ0RpcmVjdGlvbl07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUg
c2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0aW9uID09IExUUiA/IE5TTGVmdFRleHRBbGlnbm1l
bnQgOiBOU1JpZ2h0VGV4dEFsaWdubWVudF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICBbcGFyYWdyYXBoU3R5bGUgc2V0QWxpZ25tZW50Om1lbnVUZXh0RGlyZWN0
aW9uID09IExUUiA/IE5TVGV4dEFsaWdubWVudExlZnQgOiBOU1RleHRBbGlnbm1lbnRSaWdodF07
CiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gYXR0cmlidXRlcyA9
IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aE9iamVjdHNBbmRL
ZXlzOgogICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0eWxlLmdldCgpLCBOU1BhcmFncmFwaFN0
eWxlQXR0cmlidXRlTmFtZSwKICAgICAgICAgICAgICAgICBmb250LCBOU0ZvbnRBdHRyaWJ1dGVO
YW1lLAogICAgICAgICAgICAgbmlsXSk7CiAgICAgICAgICAgICBpZiAoaXRlbXNbaV0ubV9oYXNU
ZXh0RGlyZWN0aW9uT3ZlcnJpZGUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdyaXRpbmdEaXJlY3Rpb25W
YWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJbnRlZ2VyOndyaXRpbmdE
aXJlY3Rpb24gKyBOU1RleHRXcml0aW5nRGlyZWN0aW9uT3ZlcnJpZGVdKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHdy
aXRpbmdEaXJlY3Rpb25WYWx1ZSA9IGFkb3B0TlMoW1tOU051bWJlciBhbGxvY10gaW5pdFdpdGhJ
bnRlZ2VyOndyaXRpbmdEaXJlY3Rpb24gKyBOU1dyaXRpbmdEaXJlY3Rpb25PdmVycmlkZV0pOwog
ICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PiB3cml0aW5nRGlyZWN0aW9uQXJyYXkg
PSBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOndyaXRpbmdEaXJlY3Rp
b25WYWx1ZS5nZXQoKSwgbmlsXSk7CiAgICAgICAgICAgICAgICAgW2F0dHJpYnV0ZXMgc2V0T2Jq
ZWN0OndyaXRpbmdEaXJlY3Rpb25BcnJheS5nZXQoKSBmb3JLZXk6TlNXcml0aW5nRGlyZWN0aW9u
QXR0cmlidXRlTmFtZV07CiAgICAgICAgICAgICB9CkBAIC0xNTQsMTggKzE0OCwxNSBAQCB2b2lk
IFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3Qs
IFRleHREaXJlY3Rpb24gdGV4dAogCiAgICAgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZTsKICAg
ICBzd2l0Y2ggKGRhdGEubWVudVNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKICAgICBjYXNlIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9y
bWFsOgotICAgICAgICBjb250cm9sU2l6ZSA9IE5TUmVndWxhckNvbnRyb2xTaXplOworICAgICAg
ICBjb250cm9sU2l6ZSA9IE5TQ29udHJvbFNpemVSZWd1bGFyOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplU21hbGw6Ci0gICAg
ICAgIGNvbnRyb2xTaXplID0gTlNTbWFsbENvbnRyb2xTaXplOworICAgICAgICBjb250cm9sU2l6
ZSA9IE5TQ29udHJvbFNpemVTbWFsbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3Jl
OjpQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZU1pbmk6Ci0gICAgICAgIGNvbnRyb2xTaXpl
ID0gTlNNaW5pQ29udHJvbFNpemU7CisgICAgICAgIGNvbnRyb2xTaXplID0gTlNDb250cm9sU2l6
ZU1pbmk7CiAgICAgICAgIGJyZWFrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAg
IH0KIAogICAgIFJlZjxXZWJQb3B1cE1lbnVQcm94eU1hYz4gcHJvdGVjdCgqdGhpcyk7CkBAIC0x
ODMsMTMgKzE3NCwxMSBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51
KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAogICAgIGlmICghbV9jbGll
bnQtPmN1cnJlbnRseVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCkpCiAgICAgICAgIHJldHVybjsK
ICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBOU0V2ZW50KiBp
bml0aWF0aW5nTlNFdmVudCA9IG1fY2xpZW50LT5jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25F
dmVudCgpLT5uYXRpdmVFdmVudCgpOwotICAgIGlmIChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0g
IT0gTlNMZWZ0TW91c2VEb3duKQorICAgIGlmIChbaW5pdGlhdGluZ05TRXZlbnQgdHlwZV0gIT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKQogICAgICAgICByZXR1cm47CiAKLSAgICBOU0V2ZW50
ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAor
ICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZUxlZnRNb3VzZVVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvY2F0aW9uOltpbml0aWF0aW5nTlNFdmVudCBsb2NhdGlvbkluV2luZG93XQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlh
dGluZ05TRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KQEAg
LTE5OCwxMyArMTg3LDE0IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1l
bnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOltpbml0aWF0aW5nTlNFdmVu
dCBldmVudE51bWJlcl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNsaWNrQ291bnQ6W2luaXRpYXRpbmdOU0V2ZW50IGNsaWNrQ291bnRdCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlOltpbml0aWF0aW5nTlNFdmVu
dCBwcmVzc3VyZV1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCiAgICAgW05TQXBw
IHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOworICAgIGZha2VFdmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1ttX3dlYlZpZXcgd2luZG93XQogI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGZha2VFdmVudCA9IFtOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9jYXRpb246W1ttX3dlYlZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9C
YXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQorICAgICAgICAgICAgICAgICAgICAgICAgY29u
dmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KKyNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3M6W2luaXRpYXRpbmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBdCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOltpbml0aWF0aW5nTlNF
dmVudCB3aW5kb3dOdW1iZXJdCkBAIC0yMTIsNyArMjAyLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVQ
cm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9u
IHRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6MAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDowCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlOjBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KaW5kZXggMWY5OTMwZTJkODlm
ZTAwMTMzMDBhMDE0YTQyZDYxMzk4MDc5MmEyNi4uYjkyNmRiMDkwMmY1YjhmNzUwNDdmZWFkYzJj
NTQzYzZhY2MyZTVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBA
IC00NzUsMTMgKzQ3NSwxMyBAQCBzdGF0aWMgdWludDMyX3QgbW9kaWZpZXJGbGFncyhjb25zdCBX
ZWJFdmVudCYgZXZlbnQpCiAgICAgdWludDMyX3QgbW9kaWZpZXJzID0gMDsKIAogICAgIGlmIChl
dmVudC5zaGlmdEtleSgpKQotICAgICAgICBtb2RpZmllcnMgfD0gTlNTaGlmdEtleU1hc2s7Cisg
ICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CiAgICAgaWYgKGV2
ZW50LmNvbnRyb2xLZXkoKSkKLSAgICAgICAgbW9kaWZpZXJzIHw9IE5TQ29udHJvbEtleU1hc2s7
CisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKICAgICBp
ZiAoZXZlbnQuYWx0S2V5KCkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBOU0FsdGVybmF0ZUtleU1h
c2s7CisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOwogICAg
IGlmIChldmVudC5tZXRhS2V5KCkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBOU0NvbW1hbmRLZXlN
YXNrOworICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CiAg
ICAgCiAgICAgcmV0dXJuIG1vZGlmaWVyczsKIH0KQEAgLTcwNiwxNSArNzA2LDE1IEBAIHN0YXRp
YyB1bnNpZ25lZCBtb2RpZmllckZsYWdzKGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJk
RXZlbnQpCiAgICAgdW5zaWduZWQgbW9kaWZpZXJGbGFncyA9IDA7CiAKICAgICBpZiAoa2V5Ym9h
cmRFdmVudC5jYXBzTG9ja0tleSgpKQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQWxwaGFT
aGlmdEtleU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z0NhcHNMb2NrOwogICAgIGlmIChrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkpCi0gICAgICAgIG1v
ZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtleU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwogICAgIGlmIChrZXlib2FyZEV2ZW50LmNvbnRyb2xL
ZXkoKSkKLSAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0NvbnRyb2xLZXlNYXNrOworICAgICAg
ICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwogICAgIGlmIChr
ZXlib2FyZEV2ZW50LmFsdEtleSgpKQotICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQWx0ZXJu
YXRlS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFn
T3B0aW9uOwogICAgIGlmIChrZXlib2FyZEV2ZW50Lm1ldGFLZXkoKSkKLSAgICAgICAgbW9kaWZp
ZXJGbGFncyB8PSBOU0NvbW1hbmRLZXlNYXNrOworICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwogCiAgICAgcmV0dXJuIG1vZGlmaWVyRmxhZ3M7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJl
Y2F0ZWRQREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KaW5kZXggNWVkZTU2ZWVlNDBhY2ZkYjk5MDExOWRlN2Fj
ZTkxOGU2NzhiYzY2Ni4uZjlmMzM5YTliNzEzMmVmMGMxMTdiZDczZDcyMTI0NzNmYzU0OWIwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNh
dGVkUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQpAQCAtMTI3OCwzMyArMTI3OCwyOCBAQCB2b2lkIFBE
RlBsdWdpbjo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0KHVpbnQ2NF90LCBjb25zdCBXVEY6OlN0cmlu
ZyYpCiAgICAgCiBzdGF0aWMgTlNVSW50ZWdlciBtb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KGNv
bnN0IFdlYkV2ZW50JiBldmVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKLSAgICByZXR1cm4gKGV2ZW50LnNoaWZ0S2V5KCkgPyBOU1NoaWZ0S2V5TWFzayA6IDApCi0g
ICAgICAgIHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/IE5TQ29udHJvbEtleU1hc2sgOiAwKQotICAg
ICAgICB8IChldmVudC5hbHRLZXkoKSA/IE5TQWx0ZXJuYXRlS2V5TWFzayA6IDApCi0gICAgICAg
IHwgKGV2ZW50Lm1ldGFLZXkoKSA/IE5TQ29tbWFuZEtleU1hc2sgOiAwKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICByZXR1cm4gKGV2ZW50LnNoaWZ0S2V5KCkgPyBOU0V2ZW50
TW9kaWZpZXJGbGFnU2hpZnQgOiAwKQorICAgICAgICB8IChldmVudC5jb250cm9sS2V5KCkgPyBO
U0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCA6IDApCisgICAgICAgIHwgKGV2ZW50LmFsdEtleSgp
ID8gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbiA6IDApCisgICAgICAgIHwgKGV2ZW50Lm1ldGFL
ZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kIDogMCk7CiB9CiAgICAgCiBzdGF0aWMg
Ym9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2
ZW50VHlwZSYgZXZlbnRUeXBlKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgogICAgIHN3aXRjaCAoZXZlbnQudHlwZSgpKSB7CiAgICAgY2FzZSBXZWJFdmVudDo6S2V5RG93
bjoKLSAgICAgICAgZXZlbnRUeXBlID0gTlNLZXlEb3duOworICAgICAgICBldmVudFR5cGUgPSBO
U0V2ZW50VHlwZUtleURvd247CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgV2ViRXZl
bnQ6OktleVVwOgotICAgICAgICBldmVudFR5cGUgPSBOU0tleVVwOworICAgICAgICBldmVudFR5
cGUgPSBOU0V2ZW50VHlwZUtleVVwOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIFdl
YkV2ZW50OjpNb3VzZURvd246CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2Vi
TW91c2VFdmVudCY+KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZl
bnQ6OkxlZnRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZURvd247
CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1
dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZURvd247CisgICAgICAg
ICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0xMzEyLDEwICsxMzA3LDEwIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJF
dmVudChjb25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2Fz
ZSBXZWJFdmVudDo6TW91c2VVcDoKICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxjb25zdCBX
ZWJNb3VzZUV2ZW50Jj4oZXZlbnQpLmJ1dHRvbigpKSB7CiAgICAgICAgIGNhc2UgV2ViTW91c2VF
dmVudDo6TGVmdEJ1dHRvbjoKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlVXA7
CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0
b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VVcDsKKyAgICAgICAgICAg
IGV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0x
MzIzLDEzICsxMzE4LDEzIEBAIHN0YXRpYyBib29sIGdldEV2ZW50VHlwZUZyb21XZWJFdmVudChj
b25zdCBXZWJFdmVudCYgZXZlbnQsIE5TRXZlbnRUeXBlJiBldmVudFR5CiAgICAgY2FzZSBXZWJF
dmVudDo6TW91c2VNb3ZlOgogICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PGNvbnN0IFdlYk1v
dXNlRXZlbnQmPihldmVudCkuYnV0dG9uKCkpIHsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50
OjpMZWZ0QnV0dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEcmFnZ2Vk
OworICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6Umln
aHRCdXR0b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU1JpZ2h0TW91c2VEcmFnZ2VkOwor
ICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0
dG9uOgotICAgICAgICAgICAgZXZlbnRUeXBlID0gTlNNb3VzZU1vdmVkOworICAgICAgICAgICAg
ZXZlbnRUeXBlID0gTlNFdmVudFR5cGVNb3VzZU1vdmVkOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzM3
LDcgKzEzMzIsNiBAQCBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3Qg
V2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9
CiAgICAgCiBOU0V2ZW50ICpQREZQbHVnaW46Om5zRXZlbnRGb3JXZWJNb3VzZUV2ZW50KGNvbnN0
IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCBjNGQyNTZjNTU5ZmI3NDZjODk0NmZlMTgw
NmY3YTQzNWRiMTViNTVlLi40YTcyYWI3OTM1MjU5YjU0Yjg0NWRhZGM5ZmEzNmZiYThjYTgzNjlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbQpAQCAtOTYzLDEwICs5NjMsMTAgQEAgdm9pZCBQREZQbHVnaW46OmRpZEV2YWx1YXRl
SmF2YVNjcmlwdCh1aW50NjRfdCwgY29uc3QgV1RGOjpTdHJpbmcmKQogCiBzdGF0aWMgTlNVSW50
ZWdlciBtb2RpZmllckZsYWdzRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBldmVudCkKIHsK
LSAgICByZXR1cm4gKGV2ZW50LnNoaWZ0S2V5KCkgPyBOU1NoaWZ0S2V5TWFzayA6IDApCi0gICAg
ICAgIHwgKGV2ZW50LmNvbnRyb2xLZXkoKSA/IE5TQ29udHJvbEtleU1hc2sgOiAwKQotICAgICAg
ICB8IChldmVudC5hbHRLZXkoKSA/IE5TQWx0ZXJuYXRlS2V5TWFzayA6IDApCi0gICAgICAgIHwg
KGV2ZW50Lm1ldGFLZXkoKSA/IE5TQ29tbWFuZEtleU1hc2sgOiAwKTsKKyAgICByZXR1cm4gKGV2
ZW50LnNoaWZ0S2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQgOiAwKQorICAgICAgICB8
IChldmVudC5jb250cm9sS2V5KCkgPyBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCA6IDApCisg
ICAgICAgIHwgKGV2ZW50LmFsdEtleSgpID8gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbiA6IDAp
CisgICAgICAgIHwgKGV2ZW50Lm1ldGFLZXkoKSA/IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5k
IDogMCk7CiB9CiAgICAgCiBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29u
c3QgV2ViRXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeXBlKQpAQCAtOTc1LDEwICs5
NzUsMTAgQEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2
ZW50JiBldmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3Vz
ZURvd246CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+
KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0
b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZURvd247CisgICAgICAgICAg
ICBldmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAg
ICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZURvd247CisgICAgICAgICAgICBldmVudFR5
cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC05ODYsMTAg
Kzk4NiwxMCBAQCBzdGF0aWMgYm9vbCBnZXRFdmVudFR5cGVGcm9tV2ViRXZlbnQoY29uc3QgV2Vi
RXZlbnQmIGV2ZW50LCBOU0V2ZW50VHlwZSYgZXZlbnRUeQogICAgIGNhc2UgV2ViRXZlbnQ6Ok1v
dXNlVXA6CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+
KGV2ZW50KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0
b246Ci0gICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZVVwOworICAgICAgICAgICAg
ZXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VVcDsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgotICAgICAgICAg
ICAgZXZlbnRUeXBlID0gTlNSaWdodE1vdXNlVXA7CisgICAgICAgICAgICBldmVudFR5cGUgPSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtOTk3LDEzICs5OTcsMTMg
QEAgc3RhdGljIGJvb2wgZ2V0RXZlbnRUeXBlRnJvbVdlYkV2ZW50KGNvbnN0IFdlYkV2ZW50JiBl
dmVudCwgTlNFdmVudFR5cGUmIGV2ZW50VHkKICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZU1vdmU6
CiAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCY+KGV2ZW50
KS5idXR0b24oKSkgewogICAgICAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b246Ci0g
ICAgICAgICAgICBldmVudFR5cGUgPSBOU0xlZnRNb3VzZURyYWdnZWQ7CisgICAgICAgICAgICBl
dmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbjoKLSAgICAg
ICAgICAgIGV2ZW50VHlwZSA9IE5TUmlnaHRNb3VzZURyYWdnZWQ7CisgICAgICAgICAgICBldmVu
dFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGNhc2UgV2ViTW91c2VFdmVudDo6Tm9CdXR0b246Ci0gICAgICAgICAg
ICBldmVudFR5cGUgPSBOU01vdXNlTW92ZWQ7CisgICAgICAgICAgICBldmVudFR5cGUgPSBOU0V2
ZW50VHlwZU1vdXNlTW92ZWQ7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE3NTYsMTEgKzE3NTYsMTEgQEAg
Ym9vbCBQREZQbHVnaW46OkhVRDo6bW91c2VFdmVudChQYWdlT3ZlcmxheSYsIGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYgZXZlbnQpCiAKICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUoKSkgewogICAg
IGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDoKLSAgICAgICAgcmV0dXJuIFtwZGZMYXll
ckNvbnRyb2xsZXIgbW91c2VEcmFnZ2VkOmV2ZW50V2l0aFR5cGUoTlNMZWZ0TW91c2VEcmFnZ2Vk
KSBpbkhVRFdpdGhCb3VuZHM6SFVEUmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CisgICAgICAg
IHJldHVybiBbcGRmTGF5ZXJDb250cm9sbGVyIG1vdXNlRHJhZ2dlZDpldmVudFdpdGhUeXBlKE5T
RXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZCkgaW5IVURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RW
aWV3Q29vcmRpbmF0ZXNdOwogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOgot
ICAgICAgICByZXR1cm4gW3BkZkxheWVyQ29udHJvbGxlciBtb3VzZURvd246ZXZlbnRXaXRoVHlw
ZShOU0xlZnRNb3VzZURvd24pIGluSFVEV2l0aEJvdW5kczpIVURSZWN0SW5Sb290Vmlld0Nvb3Jk
aW5hdGVzXTsKKyAgICAgICAgcmV0dXJuIFtwZGZMYXllckNvbnRyb2xsZXIgbW91c2VEb3duOmV2
ZW50V2l0aFR5cGUoTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duKSBpbkhVRFdpdGhCb3VuZHM6SFVE
UmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3Vz
ZVJlbGVhc2VkOgotICAgICAgICByZXR1cm4gW3BkZkxheWVyQ29udHJvbGxlciBtb3VzZVVwOmV2
ZW50V2l0aFR5cGUoTlNMZWZ0TW91c2VVcCkgaW5IVURXaXRoQm91bmRzOkhVRFJlY3RJblJvb3RW
aWV3Q29vcmRpbmF0ZXNdOworICAgICAgICByZXR1cm4gW3BkZkxheWVyQ29udHJvbGxlciBtb3Vz
ZVVwOmV2ZW50V2l0aFR5cGUoTlNFdmVudFR5cGVMZWZ0TW91c2VVcCkgaW5IVURXaXRoQm91bmRz
OkhVRFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCmluZGV4IDZjNjBiZGRl
OTVmZGQzMTdmNmI3MTRlMWY0NGY2ZWViMmYzM2QzMGIuLmJjZjljNTVlYTIzMzMzMDI1NmU2MTll
NWVlNWJkYWRiNzY3MTJlM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQpAQCAt
NTMsMjEgKzUzLDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHN0YXRpYyBjb25z
dCBTdHJpbmcgY3NzQWxpZ25tZW50VmFsdWVGb3JOU1RleHRBbGlnbm1lbnQoTlNUZXh0QWxpZ25t
ZW50IGFsaWdubWVudCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAg
ICBzd2l0Y2ggKGFsaWdubWVudCkgewotICAgIGNhc2UgTlNMZWZ0VGV4dEFsaWdubWVudDoKKyAg
ICBjYXNlIE5TVGV4dEFsaWdubWVudExlZnQ6CiAgICAgICAgIHJldHVybiAibGVmdCI7Ci0gICAg
Y2FzZSBOU1JpZ2h0VGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudFJpZ2h0
OgogICAgICAgICByZXR1cm4gInJpZ2h0IjsKLSAgICBjYXNlIE5TQ2VudGVyVGV4dEFsaWdubWVu
dDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudENlbnRlcjoKICAgICAgICAgcmV0dXJuICJjZW50
ZXIiOwotICAgIGNhc2UgTlNKdXN0aWZpZWRUZXh0QWxpZ25tZW50OgorICAgIGNhc2UgTlNUZXh0
QWxpZ25tZW50SnVzdGlmaWVkOgogICAgICAgICByZXR1cm4gImp1c3RpZnkiOwotICAgIGNhc2Ug
TlNOYXR1cmFsVGV4dEFsaWdubWVudDoKKyAgICBjYXNlIE5TVGV4dEFsaWdubWVudE5hdHVyYWw6
CiAgICAgICAgIHJldHVybiAiLXdlYmtpdC1zdGFydCI7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IGEzNmYzYjMyM2Fi
OTE2NTE0NzdiZDNjN2JlMjhjNmEyM2RlOWIxN2QuLmFmMjY5NWY0NDRiZTgxNzEyMjk5OGNhNTc3
MjNiNjE5M2QwMTBmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNjMs
MTAgKzYzLDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBjb252ZXJ0SW1h
Z2VUb0JpdG1hcChOU0ltYWdlICppbWFnZSwgY29uc3QgSW4KICAgICBSZXRhaW5QdHI8TlNHcmFw
aGljc0NvbnRleHQ+IHNhdmVkQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29u
dGV4dF07CiAKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3Jh
cGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Z3JhcGhpY3NDb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOllFU11dOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwg
Yml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFwLT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0
Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxIHJl
c3BlY3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCku
d2lkdGgoKSwgYml0bWFwLT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3Bl
cmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEgcmVzcGVj
dEZsaXBwZWQ6WUVTIGhpbnRzOm5pbF07CiAKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3Vy
cmVudENvbnRleHQ6c2F2ZWRDb250ZXh0LmdldCgpXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJiYTJjNDBkNjRlZmIxNDczNjFjZDM2NDNm
NTIzZDgxZWUxN2U1ODQuLmNmMGM5OTg3Mzk3Y2FjZjVjMDYxYjk2ZDE0MDZiOWJjYWY4MDE2ZTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MiBAQAorMjAxNi0xMS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtNYWNdIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBBcHBLaXQgZW51bWVyYXRpb24g
dmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ0OTQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTdG9w
IHVzaW5nIGRlcHJlY2F0ZWQgQXBwS2l0IGVudW1lcmF0aW9uIHZhbHVlcy4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tOgorICAgICAgICAo
ZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rpb24pOgorICAgICAgICAobW9kaWZpZXJGbGFn
cyk6CisgICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgbW91c2VNb3ZlVG9YOlk6XSk6
CisgICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgY29udGV4dENsaWNrXSk6CisgICAg
ICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIga2V5RG93bjp3aXRoTW9kaWZpZXJzOndpdGhM
b2NhdGlvbjpdKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJv
bGxlci5tOgorICAgICAgICAoLVtUZXh0SW5wdXRDb250cm9sbGVyIGludGVycHJldEtleUV2ZW50
czp3aXRoU2VuZGVyOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbToKKyAgICAgICAgKHNpbXVsYXRlQ29tbWFuZEFycm93
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVu
RGVsZWdhdGUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWlu
dHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuVG9wQ29udGVudEluc2V0Lm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9u
cy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL1VzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW06CisgICAg
ICAgIChVc2VySW5pdGlhdGVkQWN0aW9uVGVzdDo6U2V0VXApOgorICAgICAgICAoVXNlckluaXRp
YXRlZEFjdGlvblRlc3Q6OmNsaWNrKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9BY2NlcHRzRmlyc3RNb3VzZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkFjY2VwdHNG
aXJzdE1vdXNlOjpydW5UZXN0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9D
b250ZXh0TWVudUNhbkNvcHlVUkwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjb250ZXh0
TWVudUNvcHlMaW5rKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3Mu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OkZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lOjpydW5UZXN0KToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9NZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
bWFjL1BsYXRmb3JtVXRpbGl0aWVzTWFjLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRp
bDo6aXNLZXlEb3duKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZp
ZXdNYWMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmluaXRp
YWxpemUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0
ZVNwYWNlYmFyS2V5UHJlc3MpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJW
aWV3OjpzaW11bGF0ZVJpZ2h0Q2xpY2spOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZv
cm1XZWJWaWV3OjpzaW11bGF0ZU1vdXNlTW92ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpl
dmVudFR5cGVGb3JCdXR0b24pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6bW9kaWZpZXJGbGFn
c0ZvcldLTW9kaWZpZXJzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJW
aWV3TWFjLm1tOgorICAgICAgICAoX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVu
dHNNYXNrKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgX21vdXNlRG93bkF0
UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBfc2V0
VXBUZXN0V2luZG93Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6
XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbToK
KyAgICAgICAgKFdUUjo6ZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rpb24pOgorICAgICAg
ICAoV1RSOjpidWlsZE1vZGlmaWVyRmxhZ3MpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclBy
b3h5OjpzZW5kTW91c2VEb3duVG9TdGFydFByZXNzdXJlRXZlbnRzKToKKyAgICAgICAgKFdUUjo6
RXZlbnRTZW5kZXJQcm94eTo6bW91c2VGb3JjZUNsaWNrKToKKyAgICAgICAgKFdUUjo6RXZlbnRT
ZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZvcmNlQ2xpY2spOgorICAgICAgICAoV1RS
OjpFdmVudFNlbmRlclByb3h5Ojptb3VzZU1vdmVUbyk6CisgICAgICAgIChXVFI6OkV2ZW50U2Vu
ZGVyUHJveHk6OmtleURvd24pOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojpzd2lw
ZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tOgorICAgICAgICAoV1RSOjpQbGF0Zm9y
bVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9t
YWMvVGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorCiAyMDE2LTExLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMl1bTkVUV09SS19TRVNT
SU9OXSBBZGQgc3VwcG9ydCBmb3IgZG93bmxvYWRpbmcgZmlsZSBiYWNrZWQgYmxvYnMKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KaW5k
ZXggZTFiM2VmYTk2MjExOGY5MTMwYWU4ODdhMTA5ODRmNjFjM2M5YThlNi4uNjVlMmMxZjViNTZj
YjNkZGUzNDU5N2Y1NDExYTUxNDY1YTcwNzkyMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KQEAgLTQzLDYgKzQzLDcgQEAKIAog
I2lmICFQTEFURk9STShJT1MpCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+IC8vIGZvciBHZXRD
dXJyZW50RXZlbnRUaW1lKCkKKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURl
Y2xhcmF0aW9ucy5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zNTUsMzMgKzM1
NiwzMyBAQCAtICh2b2lkKWNsZWFyS2lsbFJpbmcKIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5
cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3Rpb24p
CiB7CiAgICAgc3dpdGNoIChidXR0b24pIHsKLSAgICAgICAgY2FzZSBMZWZ0TW91c2VCdXR0b246
Ci0gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgICAgICAgICAgICAgIGNhc2UgTW91
c2VEb3duOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOwotICAg
ICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5T
TGVmdE1vdXNlVXA7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBOU0xlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIGNhc2UgUmlnaHRNb3VzZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9u
KSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBOU1JpZ2h0TW91c2VEb3duOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VVcDoK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TUmlnaHRNb3VzZVVwOwotICAgICAgICAgICAg
ICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNSaWdo
dE1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBOU090aGVyTW91c2VEb3duOwotICAgICAgICAgICAg
ICAgIGNhc2UgTW91c2VVcDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TT3RoZXJNb3Vz
ZVVwOwotICAgICAgICAgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gTlNPdGhlck1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KKyAgICBjYXNl
IExlZnRNb3VzZUJ1dHRvbjoKKyAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICAgICAgY2Fz
ZSBNb3VzZURvd246CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3du
OworICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDsKKyAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6CisgICAgICAgICAgICByZXR1
cm4gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICB9CisgICAgY2FzZSBSaWdo
dE1vdXNlQnV0dG9uOgorICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1v
dXNlRG93bjoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOwor
ICAgICAgICBjYXNlIE1vdXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdo
dE1vdXNlVXA7CisgICAgICAgIGNhc2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJu
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KKyAgICBkZWZhdWx0Ogor
ICAgICAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAg
ICAgICAgIHJldHVybiBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOworICAgICAgICBjYXNlIE1v
dXNlVXA6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7CisgICAg
ICAgIGNhc2UgTW91c2VEcmFnZ2VkOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlT3Ro
ZXJNb3VzZURyYWdnZWQ7CisgICAgICAgIH0KICAgICB9CiAgICAgYXNzZXJ0KDApOwogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxOU0V2ZW50VHlwZT4oMCk7CkBAIC00MzMsMTEgKzQzNCwxMSBAQCAt
ICh2b2lkKXVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b246KGludClidXR0b25OdW1iZXIKIHN0YXRp
YyBpbnQgbW9kaWZpZXJGbGFncyhjb25zdCBOU1N0cmluZyogbW9kaWZpZXJOYW1lKQogewogI2lm
ICFQTEFURk9STShJT1MpCi0gICAgY29uc3QgaW50IGNvbnRyb2xLZXlNYXNrID0gTlNDb250cm9s
S2V5TWFzazsKLSAgICBjb25zdCBpbnQgc2hpZnRLZXlNYXNrID0gTlNTaGlmdEtleU1hc2s7Ci0g
ICAgY29uc3QgaW50IGFsdGVybmF0ZUtleU1hc2sgPSBOU0FsdGVybmF0ZUtleU1hc2s7Ci0gICAg
Y29uc3QgaW50IGNvbW1hbmRLZXlNYXNrID0gTlNDb21tYW5kS2V5TWFzazsKLSAgICBjb25zdCBp
bnQgY2Fwc0xvY2tLZXlNYXNrID0gTlNBbHBoYVNoaWZ0S2V5TWFzazsKKyAgICBjb25zdCBpbnQg
Y29udHJvbEtleU1hc2sgPSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKKyAgICBjb25zdCBp
bnQgc2hpZnRLZXlNYXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAgIGNvbnN0IGlu
dCBhbHRlcm5hdGVLZXlNYXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAgICBjb25z
dCBpbnQgY29tbWFuZEtleU1hc2sgPSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKKyAgICBj
b25zdCBpbnQgY2Fwc0xvY2tLZXlNYXNrID0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOwog
I2Vsc2UKICAgICBjb25zdCBpbnQgY29udHJvbEtleU1hc2sgPSBXZWJFdmVudEZsYWdNYXNrQ29u
dHJvbDsKICAgICBjb25zdCBpbnQgc2hpZnRLZXlNYXNrID0gV2ViRXZlbnRGbGFnTWFza1NoaWZ0
OwpAQCAtNjQzLDcgKzY0NCw3IEBAIC0gKHZvaWQpbW91c2VNb3ZlVG9YOihpbnQpeCBZOihpbnQp
eQogICAgIE5TVmlldyAqdmlldyA9IFttYWluRnJhbWUgd2ViVmlld107CiAjaWYgIVBMQVRGT1JN
KElPUykKICAgICBsYXN0TW91c2VQb3NpdGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDpOU01ha2VQ
b2ludCh4LCBbdmlldyBmcmFtZV0uc2l6ZS5oZWlnaHQgLSB5KSB0b1ZpZXc6bmlsXTsKLSAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0
dG9uRG93biA/IE5TTGVmdE1vdXNlRHJhZ2dlZCA6IE5TTW91c2VNb3ZlZCkKKyAgICBOU0V2ZW50
ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobGVmdE1vdXNlQnV0dG9uRG93
biA/IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZCA6IE5TRXZlbnRUeXBlTW91c2VNb3ZlZCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpsYXN0TW91
c2VQb3NpdGlvbiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJG
bGFnczowIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1w
OltzZWxmIGN1cnJlbnRFdmVudFRpbWVdCkBAIC03NzcsNyArNzc4LDcgQEAgLSAoTlNBcnJheSAq
KWNvbnRleHRDbGljawogICAgIFtbW21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10g
bGF5b3V0XTsKICAgICBbc2VsZiB1cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uOlJpZ2h0TW91c2VC
dXR0b25dOwogCi0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNSaWdodE1vdXNlRG93bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpsYXN0TW91c2VQb3NpdGlvbiAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltzZWxmIGN1cnJlbnRFdmVu
dFRpbWVdCkBAIC0xMDEzLDcgKzEwMTQsNyBAQCAtICh2b2lkKWtleURvd246KE5TU3RyaW5nICop
Y2hhcmFjdGVyIHdpdGhNb2RpZmllcnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlmaWVycwogCiAg
ICAgaWYgKFtjaGFyYWN0ZXIgbGVuZ3RoXSA9PSAxICYmIFtjaGFyYWN0ZXIgY2hhcmFjdGVyQXRJ
bmRleDowXSA+PSAnQScgJiYgW2NoYXJhY3RlciBjaGFyYWN0ZXJBdEluZGV4OjBdIDw9ICdaJykg
ewogI2lmICFQTEFURk9STShJT1MpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNTaGlmdEtl
eU1hc2s7CisgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0
OwogI2Vsc2UKICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBXZWJFdmVudEZsYWdNYXNrQWxwaGFT
aGlmdDsKICNlbmRpZgpAQCAtMTAyMywxMiArMTAyNCwxMiBAQCAtICh2b2lkKWtleURvd246KE5T
U3RyaW5nICopY2hhcmFjdGVyIHdpdGhNb2RpZmllcnM6KFdlYlNjcmlwdE9iamVjdCAqKW1vZGlm
aWVycwogICAgIG1vZGlmaWVyRmxhZ3MgfD0gYnVpbGRNb2RpZmllckZsYWdzKG1vZGlmaWVycyk7
CiAKICAgICBpZiAobG9jYXRpb24gPT0gRE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpCi0gICAgICAg
IG1vZGlmaWVyRmxhZ3MgfD0gTlNOdW1lcmljUGFkS2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJG
bGFncyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKIAogICAgIFtbW21haW5GcmFt
ZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKIAogI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TS2V5RG93
bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZUtleURvd24KICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50
KDUsIDUpCiAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOm1vZGlmaWVyRmxh
Z3MKICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbc2VsZiBjdXJyZW50RXZlbnRU
aW1lXQpAQCAtMTA2MCw3ICsxMDYxLDcgQEAgLSAodm9pZClrZXlEb3duOihOU1N0cmluZyAqKWNo
YXJhY3RlciB3aXRoTW9kaWZpZXJzOihXZWJTY3JpcHRPYmplY3QgKiltb2RpZmllcnMKICNlbmRp
ZgogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0
aFR5cGU6TlNLZXlVcAorICAgIGV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZUtleVVwCiAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2lu
dCg1LCA1KQogICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczptb2RpZmllckZs
YWdzCiAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W3NlbGYgY3VycmVudEV2ZW50
VGltZV0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250
cm9sbGVyLm0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5t
CmluZGV4IDVlYzJhOTk2ZjlhNGMxMmNjMzg5NzBhYjVkMGIwMTFkMDAwYjdiZWUuLjc0ZjFiMTEz
NGRmNmU5Njg5ZDBmY2UyZjRhNTE3NGIwNTA2NGMyZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXIubQpAQCAtNTEsNiArNTEsNyBAQAogI2ltcG9y
dCA8V2ViS2l0L1dlYlNjcmlwdE9iamVjdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlR5cGVzSW50
ZXJuYWwuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3Lmg+CisjaW1wb3J0IDx3dGYvbWFjL0Fw
cEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBUZXh0SW5wdXRD
b250cm9sbGVyIChEdW1wUmVuZGVyVHJlZUlucHV0TWV0aG9kSGFuZGxlcikKIC0gKEJPT0wpaW50
ZXJwcmV0S2V5RXZlbnRzOihOU0FycmF5ICopZXZlbnRBcnJheSB3aXRoU2VuZGVyOihXZWJIVE1M
VmlldyAqKXNlbmRlcjsKQEAgLTUwNywyMSArNTA4LDIxIEBAIC0gKEJPT0wpaW50ZXJwcmV0S2V5
RXZlbnRzOihOU0FycmF5ICopZXZlbnRBcnJheSB3aXRoU2VuZGVyOihXZWJIVE1MVmlldyAqKXNl
bmRlCiAgICAgTlNFdmVudCAqZXZlbnQgPSBbZXZlbnRBcnJheSBvYmplY3RBdEluZGV4OjBdOwog
ICAgIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MgPSBbZXZlbnQgbW9kaWZpZXJGbGFnc107IAogICAg
IE5TTXV0YWJsZUFycmF5ICptb2RpZmllcnMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0
XTsKLSAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQWxwaGFTaGlmdEtleU1hc2spCisgICAgaWYg
KG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2spCiAgICAgICAgIFtt
b2RpZmllcnMgYWRkT2JqZWN0OkAiTlNBbHBoYVNoaWZ0S2V5TWFzayJdOwotICAgIGlmIChtb2Rp
ZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2
ZW50TW9kaWZpZXJGbGFnU2hpZnQpCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAiTlNT
aGlmdEtleU1hc2siXTsKLSAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TQ29udHJvbEtleU1hc2sp
CisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCkKICAg
ICAgICAgW21vZGlmaWVycyBhZGRPYmplY3Q6QCJOU0NvbnRyb2xLZXlNYXNrIl07Ci0gICAgaWYg
KG1vZGlmaWVyRmxhZ3MgJiBOU0FsdGVybmF0ZUtleU1hc2spCisgICAgaWYgKG1vZGlmaWVyRmxh
Z3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uKQogICAgICAgICBbbW9kaWZpZXJzIGFkZE9i
amVjdDpAIk5TQWx0ZXJuYXRlS2V5TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlND
b21tYW5kS2V5TWFzaykKKyAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TRXZlbnRNb2RpZmllckZs
YWdDb21tYW5kKQogICAgICAgICBbbW9kaWZpZXJzIGFkZE9iamVjdDpAIk5TQ29tbWFuZEtleU1h
c2siXTsKLSAgICBpZiAobW9kaWZpZXJGbGFncyAmIE5TTnVtZXJpY1BhZEtleU1hc2spCisgICAg
aWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCkKICAgICAg
ICAgW21vZGlmaWVycyBhZGRPYmplY3Q6QCJOU051bWVyaWNQYWRLZXlNYXNrIl07Ci0gICAgaWYg
KG1vZGlmaWVyRmxhZ3MgJiBOU0hlbHBLZXlNYXNrKQorICAgIGlmIChtb2RpZmllckZsYWdzICYg
TlNFdmVudE1vZGlmaWVyRmxhZ0hlbHApCiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAi
TlNIZWxwS2V5TWFzayJdOwotICAgIGlmIChtb2RpZmllckZsYWdzICYgTlNGdW5jdGlvbktleU1h
c2spCisgICAgaWYgKG1vZGlmaWVyRmxhZ3MgJiBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb24p
CiAgICAgICAgIFttb2RpZmllcnMgYWRkT2JqZWN0OkAiTlNGdW5jdGlvbktleU1hc2siXTsKICAg
ICAKICAgICBXZWJTY3JpcHRPYmplY3QqIGV2ZW50UGFyYW0gPSBbaW5wdXRNZXRob2RIYW5kbGVy
IGV2YWx1YXRlV2ViU2NyaXB0OkAibmV3IE9iamVjdCgpOyJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQ29tbWFuZEJhY2tGb3J3YXJk
Lm1tCmluZGV4IDY3ODY3MDBlZDIzZDdhYWE4MWMxZTE2MDFiNjlmZDNhMjFkNWVjNTIuLmFkMDRj
NWVjODRmOGJmNGY1OWZiZDMxNjEwZmZjMmU4MThhNjliZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Db21tYW5kQmFja0Zvcndh
cmQubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0ci5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgog
CiBAaW50ZXJmYWNlIENvbW1hbmRCYWNrRm9yd2FyZE9mZnNjcmVlbldpbmRvdyA6IE5TV2luZG93
CiBAZW5kCkBAIC02Miw5ICs2Myw5IEBAIHN0YXRpYyB2b2lkIHNpbXVsYXRlQ29tbWFuZEFycm93
KE5TVmlldyAqdmlldywgQXJyb3dEaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIE5TU3RyaW5nICpl
dmVudENoYXJhY3RlciA9IChkaXJlY3Rpb24gPT0gTGVmdCkgPyBbTlNTdHJpbmcgc3RyaW5nV2l0
aENoYXJhY3RlcnM6JmxlZnQgbGVuZ3RoOjFdIDogW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0
ZXJzOiZyaWdodCBsZW5ndGg6MV07CiAgICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IChkaXJl
Y3Rpb24gPT0gTGVmdCkgPyAweDdCIDogMHg3QzsKIAotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05T
RXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0tleURvd24KKyAgICBOU0V2ZW50ICpldmVudCA9IFtO
U0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOk5TQ29tbWFuZEtleU1h
c2sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6TlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbW1hbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2luZG93TnVtYmVyOlt2aWV3LndpbmRvdyB3aW5kb3dOdW1iZXJdCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OltOU0dyYXBoaWNzQ29u
dGV4dCBjdXJyZW50Q29udGV4dF0KQEAgLTc1LDkgKzc2LDkgQEAgc3RhdGljIHZvaWQgc2ltdWxh
dGVDb21tYW5kQXJyb3coTlNWaWV3ICp2aWV3LCBBcnJvd0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAK
ICAgICBbdmlldyBrZXlEb3duOmV2ZW50XTsKIAotICAgIGV2ZW50ID0gW05TRXZlbnQga2V5RXZl
bnRXaXRoVHlwZTpOU0tleVVwCisgICAgZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBl
Ok5TRXZlbnRUeXBlS2V5VXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246
TlNNYWtlUG9pbnQoNSwgNSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6
TlNDb21tYW5kS2V5TWFzaworICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpO
U0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp
bWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKICAgICAgICAgICAgICAgICAgICAgICAgICB3
aW5kb3dOdW1iZXI6W3ZpZXcud2luZG93IHdpbmRvd051bWJlcl0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNj
cmVlbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
RnVsbHNjcmVlbkRlbGVnYXRlLm1tCmluZGV4IGViZTg4YjZhNDJjZTJhMWY0MTVjMzcwOTUzZTc0
YWEyNDBmOWI3ZmMuLjg0ZGNiZTJmMjI1NmNlOWVmZGYyOGVjYWFmNDgzMTVmZDQzZTY1NGMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3Jl
ZW5EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRnVsbHNjcmVlbkRlbGVn
YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtp
dENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRMb2Fk
ZWRNZXNzYWdlOwogc3RhdGljIGJvb2wgcmVjZWl2ZWRXaWxsRW50ZXJGdWxsc2NyZWVuTWVzc2Fn
ZTsKQEAgLTgzLDE0ICs4NCwxNCBAQCBURVNUKEZ1bGxzY3JlZW4sIERlbGVnYXRlKQogICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAImZ1bGxzY3JlZW5DaGFuZ2VIYW5kbGVyIl07CiAgICAg
W3dlYlZpZXcgX3NldEZ1bGxzY3JlZW5EZWxlZ2F0ZTpoYW5kbGVyLmdldCgpXTsKIAotICAgIFJl
dGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2lu
ZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBS
ZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5p
dFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TV2luZG93U3R5bGVN
YXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsK
ICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKIAog
ICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkZ1bGxzY3JlZW5EZWxlZ2F0
ZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRMb2FkZWRNZXNzYWdlKTsKIAotICAgIE5TRXZl
bnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBs
b2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2lu
ZG93TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVy
OjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpO
U01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVy
OndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tD
b3VudDowIHByZXNzdXJlOjBdOwogICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpldmVudF07CiAKICAg
ICBBU1NFUlRfRkFMU0UoW3dlYlZpZXcgX2lzSW5GdWxsc2NyZWVuXSk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuTGF5b3V0Q29u
c3RyYWludHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxs
c2NyZWVuTGF5b3V0Q29uc3RyYWludHMubW0KaW5kZXggNGRlYTBiYzNmZGUwYTEyMDZmMTdmMjBl
MmFlOWFmZThhZmY4ZDM4NS4uYmMzMGI2OGY1Y2MzNTMwYTllMWMwMDBkYWExM2JmMzI2MTVkYzg4
YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVs
bHNjcmVlbkxheW91dENvbnN0cmFpbnRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5tbQpAQCAtMzIsNiAr
MzIsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25z
Lmg+CiAKIHN0YXRpYyBib29sIHJlY2VpdmVkTG9hZGVkTWVzc2FnZTsKIHN0YXRpYyBib29sIHJl
Y2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2U7CkBAIC02MCw3ICs2MSw3IEBAIFRFU1QoRnVs
bHNjcmVlbiwgTGF5b3V0Q29uc3RyYWludHMpCiAgICAgUmV0YWluUHRyPEZ1bGxzY3JlZW5TdGF0
ZUNoYW5nZU1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW0Z1bGxzY3JlZW5TdGF0
ZUNoYW5nZU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9u
IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5n
ZXQoKSBuYW1lOkAiZnVsbHNjcmVlblN0YXRlQ2hhbmdlSGFuZGxlciJdOwogCi0gICAgUmV0YWlu
UHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dN
YXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworICAgIFJldGFp
blB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tC
b3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAg
IHdlYlZpZXcuZ2V0KCkudHJhbnNsYXRlc0F1dG9yZXNpemluZ01hc2tJbnRvQ29uc3RyYWludHMg
PSBOTzsKICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgp
XTsKICAgICAKQEAgLTc0LDE0ICs3NSwxNCBAQCBURVNUKEZ1bGxzY3JlZW4sIExheW91dENvbnN0
cmFpbnRzKQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRMb2FkZWRNZXNzYWdlKTsKIAotICAgIE5TRXZlbnQg
KmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2Nh
dGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93
TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAg
Y2xpY2tDb3VudDowIHByZXNzdXJlOjBdOworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01h
a2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndp
bmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3Vu
dDowIHByZXNzdXJlOjBdOwogICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpldmVudF07CiAKICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2Up
OwogICAgIAogICAgIHJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2UgPSBmYWxzZTsKICAg
ICAKLSAgICBOU0V2ZW50ICpleGl0RlNFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFn
czowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVyIGNv
bnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKKyAgICBOU0V2
ZW50ICpleGl0RlNFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczow
IHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVtYmVyIGNvbnRl
eHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAgICBbd2ViVmll
dyBtb3VzZURvd246ZXhpdEZTRXZlbnRdOwogICAgIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdlTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuVG9wQ29udGVudElu
c2V0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVl
blRvcENvbnRlbnRJbnNldC5tbQppbmRleCBiZjFkMGNiYzJmNDVlNGZmYjU2MmQ0ZTY3NGFkMGUw
ZjdhMzc1YTYxLi4wMWY2ZTg4OTNjMWYzNzI3M2Y3OTgwMjM3NzhjZGM1MjFlZWJkMzhmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVu
VG9wQ29udGVudEluc2V0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL0Z1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8
V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBzdGF0
aWMgYm9vbCByZWNlaXZlZExvYWRlZE1lc3NhZ2U7CiBzdGF0aWMgYm9vbCByZWNlaXZlZEZ1bGxz
Y3JlZW5DaGFuZ2VNZXNzYWdlOwpAQCAtNjEsMTQgKzYyLDE0IEBAIFRFU1QoRnVsbHNjcmVlbiwg
VG9wQ29udGVudEluc2V0KQogICAgIFJldGFpblB0cjxGdWxsc2NyZWVuQ2hhbmdlTWVzc2FnZUhh
bmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbRnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2VIYW5kbGVy
IGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxl
cl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAiZnVsbHNjcmVl
bkNoYW5nZUhhbmRsZXIiXTsKIAotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRv
cHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1l
XSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFk
b3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFt
ZV0gc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRk
U3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIkZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkTG9hZGVkTWVzc2FnZSk7CiAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwg
NSkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCku
d2luZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3Vy
ZTowXTsKKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZp
ZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2luZG93TnVt
YmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKICAg
ICBbd2ViVmlldyBtb3VzZURvd246ZXZlbnRdOwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJ
bk5ld1dpbmRvd0FjdGlvbnMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9TaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tCmluZGV4IDNh
YmE5NzA4YjIzYzFmNDQxNTA5YjBlNzk2Yzk5NzNjMzFhMWZkODEuLjFhYzNkOTIzZGExNDcxNGY3
ZGE5ZjgyOTU2Y2NiYjVkYzQwM2M3M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlv
bnMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvU2hvdWxk
T3BlbkV4dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9ucy5tbQpAQCAtMzEsNiArMzEsNyBAQAog
I2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdl
YktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1w
b3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogI2lmIFdL
X0FQSV9FTkFCTEVECiAKQEAgLTczLDcgKzc0LDcgQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzSW5XaW5kb3dPcGVuKQogewogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCldKTsKIAotICAgIGF1dG8gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2lu
ZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CisgICAg
YXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3Mg
YmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogICAgIFtbd2luZG93
IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOwogCiAgICAgYXV0byBjb250
cm9sbGVyID0gYWRvcHROUyhbW1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlv
bnNDb250cm9sbGVyIGFsbG9jXSBpbml0XSk7CkBAIC04Niw4ICs4Nyw4IEBAIFRFU1QoV2ViS2l0
MiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luV2luZG93T3BlbikKIAogICAgIE5TUG9pbnQgY2xp
Y2tQb2ludCA9IE5TTWFrZVBvaW50KDEwMCwgMTAwKTsKIAotICAgIFtbd2ViVmlldyBoaXRUZXN0
OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0
TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDow
IHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1i
ZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFtbd2ViVmlldyBoaXRUZXN0OmNs
aWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNl
VXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93
TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNs
aWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2lu
dF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAg
d2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJl
cjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xp
Y2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVM
ZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6
MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVt
YmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmNyZWF0ZWRXZWJWaWV3KTsKICAgICBjcmVhdGVkV2ViVmlldyA9IGZhbHNlOwogCkBA
IC0xMDgsOCArMTA5LDggQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5X
aW5kb3dPcGVuKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0
aW9uKTsKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKIAotICAgIFtbd2ViVmlldyBo
aXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVz
dGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZl
bnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFtbd2ViVmlldyBoaXRU
ZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVm
dE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAg
d2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJl
cjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xp
Y2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0
YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVu
dE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgW1t3ZWJWaWV3IGhpdFRl
c3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVu
dFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmNyZWF0ZWRXZWJWaWV3KTsKICAgICBjcmVhdGVkV2ViVmlldyA9IGZhbHNl
OwogCkBAIC0xMzQsNyArMTM1LDcgQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzSW5UYXJnZXRlZExpbmspCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwog
Ci0gICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNr
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKKyAgICBhdXRvIHdp
bmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2Vi
VmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgW1t3aW5kb3cgY29udGVu
dFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAKICAgICBhdXRvIGNvbnRyb2xsZXIg
PSBhZG9wdE5TKFtbU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9uc0NvbnRy
b2xsZXIgYWxsb2NdIGluaXRdKTsKQEAgLTE0OCw4ICsxNDksOCBAQCBURVNUKFdlYktpdDIsIFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNJblRhcmdldGVkTGluaykKICAgICBOU1BvaW50IGNsaWNrUG9p
bnQgPSBOU01ha2VQb2ludCgxMDAsIDEwMCk7CiAKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7
Ci0gICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVy
XSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07Ci0g
ICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2
ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxh
Z3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRl
eHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAgICBbW3dl
YlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05TRXZlbnQgbW91c2VFdmVudFdp
dGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJd
IGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAg
ICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50IG1vdXNlRXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9k
aWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJl
cl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CiAgICAgZGVjaWRl
ZFBvbGljeSA9IGZhbHNlOwogCkBAIC0xNzgsOCArMTc5LDggQEAgVEVTVChXZWJLaXQyLCBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzSW5UYXJnZXRlZExpbmspCiAgICAgZmluaXNoZWROYXZpZ2F0aW9u
ID0gZmFsc2U7CiAKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7Ci0gICAgW1t3ZWJWaWV3IGhp
dFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0xlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0
YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVu
dE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07Ci0gICAgW1t3ZWJWaWV3IGhpdFRl
c3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0
TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3
aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVy
OjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlj
a1BvaW50XSBtb3VzZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
TGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3Rh
bXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAgICBbW3dlYlZpZXcgaGl0VGVz
dDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZUxlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVz
dGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZl
bnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwogICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwog
CkBAIC0yMTAsNyArMjExLDcgQEAgVEVTVChXZWJLaXQyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
SW5UYXJnZXRlZExpbmspCiBURVNUKFdlYktpdDIsIFJlc3RvcmVTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5QWZ0ZXJDcmFzaCkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7
Ci0gICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNr
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKKyAgICBhdXRvIHdp
bmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2Vi
VmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CiAgICAgW1t3aW5kb3cgY29udGVu
dFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CiAgICAgYXV0byBjb250cm9sbGVyID0g
YWRvcHROUyhbW1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnNDb250cm9s
bGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmNv
bnRyb2xsZXIuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1VzZXJJbml0aWF0ZWRBY3Rpb25J
bk5hdmlnYXRpb25BY3Rpb24ubW0KaW5kZXggNmZkYzA3NWQ1MTUzNjY4NTZmZDIzNWJkYjY5ZGQz
YjJjNTgyZTNiZC4uYzg0NGIyZTI1YmJjZmRmYmVlNWI4NjQ4M2Y2Y2I0MDMxZDBmMjk5MyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVXNlckluaXRp
YXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9Vc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9u
Lm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgogI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJJbml0aWF0ZWRBY3Rpb24uaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIApAQCAtNzIsNyArNzMsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwogCi0gICAgICAgIHdp
bmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2Vi
VmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOworICAgICAgICB3aW5kb3cgPSBhZG9wdE5T
KFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0
eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogICAgICAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRk
U3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKIAogICAgICAgICBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tV
c2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKQEAgLTk5LDggKzEwMCw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIE5TUG9pbnQgY2xp
Y2tQb2ludCA9IE5TTWFrZVBvaW50KDEwMCwgMTAwKTsKIAotICAgICAgICBbW3dlYlZpZXcgaGl0
VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
TGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3Rh
bXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKLSAgICAgICAgW1t3ZWJWaWV3IGhp
dFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNM
ZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6
MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVt
YmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKKyAgICAgICAgW1t3ZWJWaWV3IGhpdFRl
c3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5p
bCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CisgICAgICAgIFtbd2Vi
VmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZs
YWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250
ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CiAgICAgfQog
fTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWNjZXB0c0Zp
cnN0TW91c2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BY2NlcHRzRmlyc3RN
b3VzZS5tbQppbmRleCBkZWM3ODg4MDRmNjViNDE2NjFlOWU5ZDBmM2ZmMGQ2YWZlZTQ3YjIyLi43
YzM0NDk0NTUwZjcyNDViMTBlMDczYjQ4NzE4ZDExOWEwZGI0ZDQwIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BY2NlcHRzRmlyc3RNb3VzZS5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BY2NlcHRzRmlyc3RNb3VzZS5tbQpAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIldlYktpdEFnbm9zdGljVGVzdC5oIgogCiAjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKFRlc3RXZWJLaXRBUElOU0Fw
cGxpY2F0aW9uRGV0YWlscykKIC0gKHZvaWQpX3NldEN1cnJlbnRFdmVudDooTlNFdmVudCAqKWV2
ZW50OwpAQCAtNDcsMTcgKzQ4LDE3IEBAIHB1YmxpYzoKIHRlbXBsYXRlIDx0eXBlbmFtZSBWaWV3
Pgogdm9pZCBBY2NlcHRzRmlyc3RNb3VzZTo6cnVuVGVzdChWaWV3IHZpZXcpCiB7Ci0gICAgUmV0
YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRX
aXRoQ29udGVudFJlY3Q6dmlldy5mcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFz
ayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXSk7CisgICAgUmV0YWlu
UHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6dmlldy5mcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJs
ZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKICAgICBbW3dp
bmRvdy5nZXQoKSBjb250ZW50Vmlld10gYWRkU3Vidmlldzp2aWV3XTsKIAogICAgIENHRmxvYXQg
dmlld0hlaWdodCA9IHZpZXcuYm91bmRzLnNpemUuaGVpZ2h0OwogCiAgICAgTlNQb2ludCBwb2lu
dEluc2lkZVNlbGVjdGlvbiA9IE5TTWFrZVBvaW50KDUwLCB2aWV3SGVpZ2h0IC0gNTApOwotICAg
IE5TRXZlbnQgKm1vdXNlRXZlbnRJbnNpZGVTZWxlY3Rpb24gPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50SW5zaWRlU2VsZWN0aW9uIG1v
ZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdy5nZXQoKSB3aW5k
b3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJl
OjFdOworICAgIE5TRXZlbnQgKm1vdXNlRXZlbnRJbnNpZGVTZWxlY3Rpb24gPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOnBvaW50
SW5zaWRlU2VsZWN0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6
W3dpbmRvdy5nZXQoKSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xp
Y2tDb3VudDoxIHByZXNzdXJlOjFdOwogICAgIEVYUEVDVF9UUlVFKFtbdmlldyBoaXRUZXN0OnBv
aW50SW5zaWRlU2VsZWN0aW9uXSBhY2NlcHRzRmlyc3RNb3VzZTptb3VzZUV2ZW50SW5zaWRlU2Vs
ZWN0aW9uXSk7CiAKICAgICBOU1BvaW50IHBvaW50T3V0c2lkZVNlbGVjdGlvbiA9IE5TTWFrZVBv
aW50KDUwLCB2aWV3SGVpZ2h0IC0gMTUwKTsKLSAgICBOU0V2ZW50ICptb3VzZUV2ZW50T3V0c2lk
ZVNlbGVjdGlvbiA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3VzZURvd24g
bG9jYXRpb246cG9pbnRPdXRzaWRlU2VsZWN0aW9uIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6
MCB3aW5kb3dOdW1iZXI6W3dpbmRvdy5nZXQoKSB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdOworICAgIE5TRXZlbnQgKm1vdXNl
RXZlbnRPdXRzaWRlU2VsZWN0aW9uID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpwb2ludE91dHNpZGVTZWxlY3Rpb24gbW9kaWZp
ZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93LmdldCgpIHdpbmRvd051
bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07
CiAgICAgRVhQRUNUX0ZBTFNFKFtbdmlldyBoaXRUZXN0OnBvaW50SW5zaWRlU2VsZWN0aW9uXSBh
Y2NlcHRzRmlyc3RNb3VzZTptb3VzZUV2ZW50T3V0c2lkZVNlbGVjdGlvbl0pOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlV
UkwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudUNhbkNvcHlV
UkwubW0KaW5kZXggOGRhYjYzNzgwODlmNzk5NTUxZTE4YmY3Yjc1MGVkOGYzMjRjZmNhZC4uZDk1
NzYzOTQ0YzZmOTJlYzU0ZjM3MjIzYTllNTY5ODdjNGM2MjFlMCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQpAQCAt
MzMsNiArMzMsNyBAQAogI2ltcG9ydCA8V2ViS2l0L0RPTS5oPgogI2ltcG9ydCA8Q2FyYm9uL0Nh
cmJvbi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBL
aXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIAogQGludGVyZmFjZSBDb250ZXh0TWVu
dUNhbkNvcHlVUkxEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXZWJGcmFtZUxvYWREZWxlZ2F0ZT4gewpA
QCAtNjEsNyArNjIsNyBAQCBzdGF0aWMgdm9pZCBjb250ZXh0TWVudUNvcHlMaW5rKFdlYlZpZXcq
IHdlYlZpZXcsIGludCBpdGVtSW5kZXgpCiAgICAgRE9NSFRNTEFuY2hvckVsZW1lbnQgKmFuY2hv
ciA9IChET01IVE1MQW5jaG9yRWxlbWVudCAqKVtbZG9jdW1lbnRFbGVtZW50IHF1ZXJ5U2VsZWN0
b3JBbGw6QCJhIl0gaXRlbTppdGVtSW5kZXhdOwogCiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFt3
ZWJWaWV3IHdpbmRvd107Ci0gICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93bgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludChhbmNob3Iu
b2Zmc2V0TGVmdCArIGFuY2hvci5vZmZzZXRXaWR0aCAvIDIsIHdpbmRvdy5mcmFtZS5zaXplLmhl
aWdodCAtIChhbmNob3Iub2Zmc2V0VG9wICsgYW5jaG9yLm9mZnNldEhlaWdodCAvIDIpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRU
aW1lKCkKQEAgLTg5LDcgKzkwLDcgQEAgc3RhdGljIHZvaWQgY29udGV4dE1lbnVDb3B5TGluayhX
ZWJWaWV3KiB3ZWJWaWV3LCBpbnQgaXRlbUluZGV4KQogVEVTVChXZWJLaXQxLCBDb250ZXh0TWVu
dUNhbkNvcHlVUkwpCiB7CiAgICAgUmV0YWluUHRyPFdlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5T
KFtbV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsMCw4MDAsNjAwKSBm
cmFtZU5hbWU6bmlsIGdyb3VwTmFtZTpuaWxdKTsKLSAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdp
bmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01h
a2VSZWN0KDEwMCwgMTAwLCA4MDAsIDYwMCkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01h
c2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOworICAgIFJldGFp
blB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMTAwLCAxMDAsIDgwMCwgNjAwKSBzdHlsZU1hc2s6TlNX
aW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpZRVNdKTsKICAgICBSZXRhaW5QdHI8Q29udGV4dE1lbnVDYW5Db3B5VVJMRGVsZWdhdGU+
IGRlbGVnYXRlID0gYWRvcHROUyhbW0NvbnRleHRNZW51Q2FuQ29weVVSTERlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CiAKICAgICBbd2luZG93LmdldCgpLmNvbnRlbnRWaWV3IGFkZFN1YnZpZXc6d2Vi
Vmlldy5nZXQoKV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9D
b250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFncy5tbQppbmRleCA5ZTA0N2Y2
YTg1MmI4ZTRhYmYyYWNhZGVlNGNmYjRjOThmZmI1NDY4Li41OGYwMjE3YmM4ZDZmNWJmNmE2ODA3
ZDUyZDZmOTk4MmRmNzc2NTBhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9Db250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3MubW0KQEAg
LTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgogI2ltcG9ydCA8Q2Fy
Ym9uL0NhcmJvbi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL21h
Yy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+CiAKIEBpbnRlcmZhY2UgQ29udGV4
dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFnc0RlbGVnYXRlIDogTlNPYmplY3QgPFdlYkZyYW1lTG9h
ZERlbGVnYXRlPgogQGVuZApAQCAtNDksNyArNTAsNyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CiBURVNUKFdlYktpdDEsIENvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3MpCiB7CiAg
ICAgUmV0YWluUHRyPFdlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBmcmFtZU5hbWU6bmlsIGdy
b3VwTmFtZTpuaWxdKTsKLSAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMo
W1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDEwMCwgMTAw
LCA4MDAsIDYwMCkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOworICAgIFJldGFpblB0cjxOU1dpbmRvdz4g
d2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5T
TWFrZVJlY3QoMTAwLCAxMDAsIDgwMCwgNjAwKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tC
b3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdKTsKICAg
ICBSZXRhaW5QdHI8Q29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFnc0RlbGVnYXRlPiBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tDb250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKIAogICAgIFt3aW5kb3cuZ2V0KCkuY29udGVudFZpZXcgYWRkU3Vidmll
dzp3ZWJWaWV3LmdldCgpXTsKQEAgLTU5LDcgKzYwLDcgQEAgVEVTVChXZWJLaXQxLCBDb250ZXh0
TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzKQogCiAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2Fk
KTsKIAotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
UmlnaHRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNDAwLCAzMDApIG1vZGlmaWVyRmxh
Z3M6MCB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCisg
ICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVSaWdodE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg0MDAsIDMwMCkgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0K
ICAgICAgICAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0OltOU0dy
YXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAg
cHJlc3N1cmU6MF07CiAgICAgTlNWaWV3ICpzdWJWaWV3ID0gW3dlYlZpZXcgaGl0VGVzdDpbZXZl
bnQgbG9jYXRpb25JbldpbmRvd11dOwogICAgIE5TTWVudSAqbWVudSA9IFtzdWJWaWV3IG1lbnVG
b3JFdmVudDpldmVudF07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tCmluZGV4IGQzMmFhY2UwMzU4ZDgx
MzRkYmM4NmM2MjI3OGE4ZTZmMjNhMGNiNGIuLmZmYzBjNmU3NTM1MGU1MWQ2YzYyOTJlOTk2M2Nj
OGUwMDJjOTJmNDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1
bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tCkBAIC0zNCw2ICszNCw3IEBACiAj
aW1wb3J0IDxXZWJLaXQvV0tWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVy
ZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBOU1dp
bmRvd0NvbnRyb2xsZXIgKFdlYktpdEZ1bGxTY3JlZW5BZGRpdGlvbnMpCiAtIChOU1JlY3QpaW5p
dGlhbEZyYW1lOwpAQCAtMTUwLDEyICsxNTEsMTIgQEAgdm9pZCBGdWxsc2NyZWVuWm9vbUluaXRp
YWxGcmFtZTo6c2VuZE1vdXNlRG93bkV2ZW50KFdLVmlldyAqd2tWaWV3LCBOU0V2ZW50ICpldmUK
IHRlbXBsYXRlIDx0eXBlbmFtZSBWaWV3Pgogdm9pZCBGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFt
ZTo6cnVuVGVzdChWaWV3IHZpZXcpCiB7Ci0gICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cg
PSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6dmlldy5mcmFt
ZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFk
b3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp2aWV3LmZyYW1lIHN0
eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAgW3dpbmRvdy5nZXQoKS5jb250ZW50VmlldyBhZGRT
dWJ2aWV3OnZpZXddOwogCiAgICAgc2V0UGFnZVNjYWxlKHZpZXcsIDIpOwogCi0gICAgTlNFdmVu
dCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxv
Y2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5k
b3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6
MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5T
TWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6
d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0Nv
dW50OjAgcHJlc3N1cmU6MF07CiAKICAgICBpc1dhaXRpbmdGb3JQYWdlU2lnbmFsVG9Db250aW51
ZSA9IHRydWU7CiAgICAgZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUgPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lbnVUeXBlc0Zvck1vdXNlRXZl
bnRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVudVR5cGVzRm9yTW91c2VF
dmVudHMubW0KaW5kZXggOGU0YjRmNzkxYTlhZjBhN2ZlMmI3NmZlZTZlOTAzYjgxMGMxZjBiNi4u
MjMyMDc0MGM1YmE3NGU3N2UzNTBmNzU2ZjZkZmRhMjkzYzhjOGJhNSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVudVR5cGVzRm9yTW91c2VFdmVudHMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVudVR5cGVzRm9yTW91c2VFdmVudHMu
bW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMuaD4KICNpbXBvcnQgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0
aW9ucy5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKQEAgLTYzLDc3ICs2NCw3NyBA
QCBzdGF0aWMgdm9pZCBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlIGJ1dHRvbkV2ZW50
LCBOU0V2ZW50TW9kaWZpZXJGbGFncyBtbwogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25G
b3JOb3JtYWxMZWZ0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0xlZnRNb3Vz
ZURvd24sIDAsIFdlYkNvcmU6OkxlZnRCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWls
ZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biwgMCwgV2ViQ29yZTo6TGVm
dEJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0
b25Gb3JOb3JtYWxSaWdodENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNSaWdo
dE1vdXNlRG93biwgMCwgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVu
dSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duLCAw
LCBXZWJDb3JlOjpSaWdodEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKIH0KIAogVEVT
VChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yTm9ybWFsTWlkZGxlQ2xpY2spCiB7Ci0gICAgYnVp
bGRBbmRQZXJmb3JtVGVzdChOU090aGVyTW91c2VEb3duLCAwLCBXZWJDb3JlOjpNaWRkbGVCdXR0
b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBl
T3RoZXJNb3VzZURvd24sIDAsIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUp
OwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JDb250cm9sTGVmdENsaWNrKQog
ewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNMZWZ0TW91c2VEb3duLCBOU0NvbnRyb2xLZXlN
YXNrLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOworICAgIGJ1
aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duLCBOU0V2ZW50TW9kaWZp
ZXJGbGFnQ29udHJvbCwgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51
KTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQ29udHJvbFJpZ2h0Q2xpY2sp
CiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU1JpZ2h0TW91c2VEb3duLCBOU0NvbnRyb2xL
ZXlNYXNrLCBXZWJDb3JlOjpSaWdodEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKKyAg
ICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24sIE5TRXZlbnRN
b2RpZmllckZsYWdDb250cm9sLCBXZWJDb3JlOjpSaWdodEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRl
eHRNZW51KTsKIH0KIAogVEVTVChXZWJLaXQxLCBNZW51QW5kQnV0dG9uRm9yQ29udHJvbE1pZGRs
ZUNsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNPdGhlck1vdXNlRG93biwgTlND
b250cm9sS2V5TWFzaywgV2ViQ29yZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7Cisg
ICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duLCBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29udHJvbCwgV2ViQ29yZTo6TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9u
ZSk7CiB9CiAgICAgCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25Gb3JTaGlmdExlZnRDbGlj
aykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TTGVmdE1vdXNlRG93biwgTlNTaGlmdEtl
eU1hc2ssIFdlYkNvcmU6OkxlZnRCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAgICBidWlsZEFu
ZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxh
Z1NoaWZ0LCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CiB9CiAKIFRFU1Qo
V2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvclNoaWZ0UmlnaHRDbGljaykKIHsKLSAgICBidWlsZEFu
ZFBlcmZvcm1UZXN0KE5TUmlnaHRNb3VzZURvd24sIE5TU2hpZnRLZXlNYXNrLCBXZWJDb3JlOjpS
aWdodEJ1dHRvbiwgTlNNZW51VHlwZUNvbnRleHRNZW51KTsKKyAgICBidWlsZEFuZFBlcmZvcm1U
ZXN0KE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdCwg
V2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1Qo
V2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvclNoaWZ0TWlkZGxlQ2xpY2spCiB7Ci0gICAgYnVpbGRB
bmRQZXJmb3JtVGVzdChOU090aGVyTW91c2VEb3duLCBOU1NoaWZ0S2V5TWFzaywgV2ViQ29yZTo6
TWlkZGxlQnV0dG9uLCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChO
U0V2ZW50VHlwZU90aGVyTW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQsIFdlYkNv
cmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1l
bnVBbmRCdXR0b25Gb3JDb21tYW5kTGVmdENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRl
c3QoTlNMZWZ0TW91c2VEb3duLCBOU0NvbW1hbmRLZXlNYXNrLCBXZWJDb3JlOjpMZWZ0QnV0dG9u
LCBOU01lbnVUeXBlTm9uZSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZUxl
ZnRNb3VzZURvd24sIE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kLCBXZWJDb3JlOjpMZWZ0QnV0
dG9uLCBOU01lbnVUeXBlTm9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZv
ckNvbW1hbmRSaWdodENsaWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNSaWdodE1v
dXNlRG93biwgTlNDb21tYW5kS2V5TWFzaywgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5
cGVDb250ZXh0TWVudSk7CisgICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0V2ZW50VHlwZVJpZ2h0
TW91c2VEb3duLCBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCwgV2ViQ29yZTo6UmlnaHRCdXR0
b24sIE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1
dHRvbkZvckNvbW1hbmRNaWRkbGVDbGljaykKIHsKLSAgICBidWlsZEFuZFBlcmZvcm1UZXN0KE5T
T3RoZXJNb3VzZURvd24sIE5TQ29tbWFuZEtleU1hc2ssIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwg
TlNNZW51VHlwZU5vbmUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVPdGhl
ck1vdXNlRG93biwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQsIFdlYkNvcmU6Ok1pZGRsZUJ1
dHRvbiwgTlNNZW51VHlwZU5vbmUpOwogfQogCiBURVNUKFdlYktpdDEsIE1lbnVBbmRCdXR0b25G
b3JBbHRMZWZ0Q2xpY2spCiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU0xlZnRNb3VzZURv
d24sIE5TQWx0ZXJuYXRlS2V5TWFzaywgV2ViQ29yZTo6TGVmdEJ1dHRvbiwgTlNNZW51VHlwZU5v
bmUpOworICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duLCBO
U0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uLCBXZWJDb3JlOjpMZWZ0QnV0dG9uLCBOU01lbnVUeXBl
Tm9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvckFsdFJpZ2h0Q2xpY2sp
CiB7Ci0gICAgYnVpbGRBbmRQZXJmb3JtVGVzdChOU1JpZ2h0TW91c2VEb3duLCBOU0FsdGVybmF0
ZUtleU1hc2ssIFdlYkNvcmU6OlJpZ2h0QnV0dG9uLCBOU01lbnVUeXBlQ29udGV4dE1lbnUpOwor
ICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNFdmVudFR5cGVSaWdodE1vdXNlRG93biwgTlNFdmVu
dE1vZGlmaWVyRmxhZ09wdGlvbiwgV2ViQ29yZTo6UmlnaHRCdXR0b24sIE5TTWVudVR5cGVDb250
ZXh0TWVudSk7CiB9CiAKIFRFU1QoV2ViS2l0MSwgTWVudUFuZEJ1dHRvbkZvckFsdE1pZGRsZUNs
aWNrKQogewotICAgIGJ1aWxkQW5kUGVyZm9ybVRlc3QoTlNPdGhlck1vdXNlRG93biwgTlNBbHRl
cm5hdGVLZXlNYXNrLCBXZWJDb3JlOjpNaWRkbGVCdXR0b24sIE5TTWVudVR5cGVOb25lKTsKKyAg
ICBidWlsZEFuZFBlcmZvcm1UZXN0KE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd24sIE5TRXZlbnRN
b2RpZmllckZsYWdPcHRpb24sIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbiwgTlNNZW51VHlwZU5vbmUp
OwogfQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtVXRp
bGl0aWVzTWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1VdGlsaXRpZXNN
YWMubW0KaW5kZXggOWM2MzhmZjQ0NDJhYjQwNDE0MjhmMDViMzc2ODk2YzhiMWQ5YzUyOS4uYTBj
NDJlNzg5YjQ0MGNkODEzYjY3ZmQyMzZlOWE4OWE2ZWYyOTMwMCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1VdGlsaXRpZXNNYWMubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9tYWMvUGxhdGZvcm1VdGlsaXRpZXNNYWMubW0KQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXNwb25zZU5TLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewogbmFtZXNwYWNlIFV0aWwgewpAQCAtNjIsNyArNjMsNyBAQCBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gTUlNRVR5cGVGb3JXS1VSTFJlc3BvbnNlKFdLVVJMUmVzcG9uc2VSZWYgd2tS
ZXNwb25zZSkKIAogYm9vbCBpc0tleURvd24oV0tOYXRpdmVFdmVudFB0ciBldmVudCkKIHsKLSAg
ICByZXR1cm4gW2V2ZW50IHR5cGVdID09IE5TS2V5RG93bjsKKyAgICByZXR1cm4gW2V2ZW50IHR5
cGVdID09IE5TRXZlbnRUeXBlS2V5RG93bjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVXRpbApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IGFkMzVm
NTg2Y2Y3MjM1OWEzYjdlOTEzNmY5ZWJlYmExNjIyZjdjN2QuLjJlMzljYTRhNGM4MWE4YWU2NzM4
ZjUwZTdjYTIxNTMyMzQwN2Q3N2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1BsYXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0
Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgPENhcmJvbi9DYXJi
b24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0ci5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
Vmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oPgogCiBAaW50ZXJmYWNlIEFjdGl2ZU9mZnNjcmVlbldpbmRvdyA6IE5TV2luZG93
CiBAZW5kCkBAIC01Myw3ICs1NCw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojppbml0aWFsaXpl
KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgQ2xhc3Mgd2tWCiAgICAgW21f
dmlldyBzZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOk5PXTsKIAogICAgIE5TUmVj
dCB3aW5kb3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgWyhOU1NjcmVlbiAqKVtb
TlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSBy
ZWN0LnNpemUuaGVpZ2h0ICsgMTAwMDApOwotICAgIG1fd2luZG93ID0gW1tBY3RpdmVPZmZzY3Jl
ZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93UmVjdCBzdHlsZU1hc2s6
TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKKyAgICBtX3dpbmRvdyA9IFtbQWN0aXZlT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRSZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNr
Qm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKICAg
ICBbbV93aW5kb3cgc2V0Q29sb3JTcGFjZTpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGNvbG9yU3Bh
Y2VdXTsKICAgICBbW21fd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3Om1fdmlld107CiAg
ICAgW21fd2luZG93IG9yZGVyQmFjazpuaWxdOwpAQCAtMTIxLDcgKzEyMiw3IEBAIHZvaWQgUGxh
dGZvcm1XZWJWaWV3Ojpmb2N1cygpCiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVNw
YWNlYmFyS2V5UHJlc3MoKQogewotICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQga2V5RXZl
bnRXaXRoVHlwZTpOU0tleURvd24KKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpCkBAIC0xMzQsNyAr
MTM1LDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlU3BhY2ViYXJLZXlQcmVzcygp
CiAKICAgICBbbV92aWV3IGtleURvd246ZXZlbnRdOwogCi0gICAgZXZlbnQgPSBbTlNFdmVudCBr
ZXlFdmVudFdpdGhUeXBlOk5TS2V5VXAKKyAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVLZXlVcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh
dGlvbjpOU01ha2VQb2ludCg1LCA1KQogICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJG
bGFnczowCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOkdldEN1cnJlbnRF
dmVudFRpbWUoKQpAQCAtMTUwLDcgKzE1MSw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11
bGF0ZVNwYWNlYmFyS2V5UHJlc3MoKQogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVS
aWdodENsaWNrKHVuc2lnbmVkIHgsIHVuc2lnbmVkIHkpCiB7Ci0gICAgTlNFdmVudCAqZXZlbnQg
PSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNSaWdodE1vdXNlRG93bgorICAgIE5TRXZl
bnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRN
b3VzZURvd24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlv
bjpOU01ha2VQb2ludCh4LCB5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
b2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp
bWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIFBs
YXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdodENsaWNrKHVuc2lnbmVkIHgsIHVuc2lnbmVkIHkp
CiAKICAgICBbbV92aWV3IHJpZ2h0TW91c2VEb3duOmV2ZW50XTsKIAotICAgIGV2ZW50ID0gW05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TUmlnaHRNb3VzZVVwCisgICAgZXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVSaWdodE1vdXNlVXAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCh4LCB5KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTE3OSw3ICsxODAs
NyBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdodENsaWNrKHVuc2lnbmVkIHgs
IHVuc2lnbmVkIHkpCiAgICAgCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVNb3VzZU1v
dmUodW5zaWduZWQgeCwgdW5zaWduZWQgeSkKIHsgICAKLSAgICBOU0V2ZW50ICpldmVudCA9IFtO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQKKyAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCh4LCB5KQog
ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkKQEAgLTE5Nywz
MSArMTk4LDMxIEBAIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5cGVGb3JCdXR0b24oV0tFdmVu
dE1vdXNlQnV0dG9uIGJ1dHRvbikKIHsKICAgICBzd2l0Y2ggKGJ1dHRvbikgewogICAgIGNhc2Ug
a1dLRXZlbnRNb3VzZUJ1dHRvbkxlZnRCdXR0b246Ci0gICAgICAgIHJldHVybiBOU0xlZnRNb3Vz
ZURvd247CisgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAgICAgY2Fz
ZSBrV0tFdmVudE1vdXNlQnV0dG9uUmlnaHRCdXR0b246Ci0gICAgICAgIHJldHVybiBOU1JpZ2h0
TW91c2VEb3duOworICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKICAg
ICBjYXNlIGtXS0V2ZW50TW91c2VCdXR0b25NaWRkbGVCdXR0b246Ci0gICAgICAgIHJldHVybiBO
U090aGVyTW91c2VEb3duOworICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlRG93
bjsKICAgICBjYXNlIGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1dHRvbjoKLSAgICAgICAgcmV0dXJu
IE5TTGVmdE1vdXNlRG93bjsKKyAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
bjsKICAgICB9CiAKLSAgICByZXR1cm4gTlNMZWZ0TW91c2VEb3duOworICAgIHJldHVybiBOU0V2
ZW50VHlwZUxlZnRNb3VzZURvd247CiB9CiAKIHN0YXRpYyBOU0V2ZW50TW9kaWZpZXJGbGFncyBt
b2RpZmllckZsYWdzRm9yV0tNb2RpZmllcnMoV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMpCiB7
CiAgICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgcmV0dXJuVmFsID0gMDsKICAgICBpZiAobW9kaWZp
ZXJzICYga1dLRXZlbnRNb2RpZmllcnNTaGlmdEtleSkKLSAgICAgICAgcmV0dXJuVmFsIHw9IE5T
U2hpZnRLZXlNYXNrOworICAgICAgICByZXR1cm5WYWwgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1No
aWZ0OwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc0NvbnRyb2xLZXkpCi0g
ICAgICAgIHJldHVyblZhbCB8PSBOU0NvbnRyb2xLZXlNYXNrOworICAgICAgICByZXR1cm5WYWwg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2
ZW50TW9kaWZpZXJzQWx0S2V5KQotICAgICAgICByZXR1cm5WYWwgfD0gTlNBbHRlcm5hdGVLZXlN
YXNrOworICAgICAgICByZXR1cm5WYWwgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKICAg
ICBpZiAobW9kaWZpZXJzICYga1dLRXZlbnRNb2RpZmllcnNNZXRhS2V5KQotICAgICAgICByZXR1
cm5WYWwgfD0gTlNDb21tYW5kS2V5TWFzazsKKyAgICAgICAgcmV0dXJuVmFsIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwogICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVy
c0NhcHNMb2NrS2V5KQotICAgICAgICByZXR1cm5WYWwgfD0gTlNBbHBoYVNoaWZ0S2V5TWFzazsK
KyAgICAgICAgcmV0dXJuVmFsIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKIAogICAg
IHJldHVybiByZXR1cm5WYWw7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21h
Yy9UZXN0V0tXZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2Vi
Vmlld01hYy5tbQppbmRleCAxYTY2NjViZjJiYjg2MGUxZThkMmRhZWQ5NmM5OWU5YzY5YTZjNjJi
Li44OTNiMWJjMmZiNzJjMmJmYjI5ZTc5ZjI1MDQ4MDJmMTE2NWFhZGY4IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNp
bXBvcnQgPFdlYktpdC9XZWJLaXRQcml2YXRlLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW1wbGVtZW50YXRpb24gVGVzdE1lc3NhZ2VIYW5k
bGVyIHsKICAgICBOU011dGFibGVEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGRpc3BhdGNoX2Jsb2Nr
X3Q+ICpfbWVzc2FnZUhhbmRsZXJzOwpAQCAtNzAsMjEgKzcxLDEzIEBAIHN0YXRpYyBpbnQgZ0V2
ZW50TnVtYmVyID0gMTsKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTAwMwogTlNFdmVudE1hc2sgX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNN
YXNrKGlkIHNlbGYsIFNFTCBfY21kKQogewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMjAwCiAgICAgcmV0dXJuIE5TRXZlbnRNYXNrUHJlc3N1cmUgfCBOU0V2ZW50
TWFza0xlZnRNb3VzZURvd24gfCBOU0V2ZW50TWFza0xlZnRNb3VzZVVwIHwgTlNFdmVudE1hc2tM
ZWZ0TW91c2VEcmFnZ2VkOwotI2Vsc2UKLSAgICByZXR1cm4gTlNFdmVudE1hc2tQcmVzc3VyZSB8
ICgxIDw8IE5TTGVmdE1vdXNlRG93bikgfCAoMSA8PCBOU0xlZnRNb3VzZVVwKSB8ICgxIDw8IE5T
TGVmdE1vdXNlRHJhZ2dlZCk7Ci0jZW5kaWYKIH0KICNlbmRpZgogCiAtICh2b2lkKV9tb3VzZURv
d25BdFBvaW50OihOU1BvaW50KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxhdGVQ
cmVzc3VyZQogewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAw
CiAgICAgTlNFdmVudFR5cGUgbW91c2VFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURv
d247Ci0jZWxzZQotICAgIE5TRXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNMZWZ0TW91c2VE
b3duOwotI2VuZGlmCiAKICAgICBOU0V2ZW50TWFzayBtb2RpZmllckZsYWdzID0gMDsKICNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMwpAQCAtMTU3LDcgKzE1MCw3
IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJh
dGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvCiAKIC0gKHZvaWQpX3NldFVwVGVzdFdpbmRvdzoo
TlNSZWN0KWZyYW1lCiB7Ci0gICAgX2hvc3RXaW5kb3cgPSBbW1Rlc3RXS1dlYlZpZXdIb3N0V2lu
ZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxl
c3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Cisg
ICAgX2hvc3RXaW5kb3cgPSBbW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3Mg
YmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbX2hvc3RXaW5k
b3cgc2V0RnJhbWVPcmlnaW46TlNNYWtlUG9pbnQoMCwgMCldOwogICAgIFtbX2hvc3RXaW5kb3cg
Y29udGVudFZpZXddIGFkZFN1YnZpZXc6c2VsZl07CiAgICAgW19ob3N0V2luZG93IHNldElzVmlz
aWJsZTpZRVNdOwpAQCAtMTkzLDEzICsxODYsOCBAQCAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2Fk
VGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZQogCiAtICh2b2lkKXR5cGVDaGFyYWN0
ZXI6KGNoYXIpY2hhcmFjdGVyIHsKICAgICBOU1N0cmluZyAqY2hhcmFjdGVyQXNTdHJpbmcgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVjIiAsIGNoYXJhY3Rlcl07Ci0jaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICBOU0V2ZW50VHlwZSBrZXlE
b3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlEb3duOwogICAgIE5TRXZlbnRUeXBlIGtleVVw
RXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlVcDsKLSNlbHNlCi0gICAgTlNFdmVudFR5cGUga2V5
RG93bkV2ZW50VHlwZSA9IE5TS2V5RG93bjsKLSAgICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlw
ZSA9IE5TS2V5VXA7Ci0jZW5kaWYKICAgICBbc2VsZiBrZXlEb3duOltOU0V2ZW50IGtleUV2ZW50
V2l0aFR5cGU6a2V5RG93bkV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZs
YWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6X2hvc3RX
aW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJp
bmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVh
dDpOTyBrZXlDb2RlOmNoYXJhY3Rlcl1dOwogICAgIFtzZWxmIGtleVVwOltOU0V2ZW50IGtleUV2
ZW50V2l0aFR5cGU6a2V5VXBFdmVudFR5cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJG
bGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOl9ob3N0
V2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3Ry
aW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBl
YXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9FdmVudFNlbmRlclByb3h5Lm1tCmluZGV4IGNhZmMzZWRkYTliZjg1ZWUxMDY1YWZkZTA4
OWYxNjQ5MzU2NDFlNmIuLmQ1YmNkZDc5ZGI1Y2M1MDU2ODQ3M2FlZTk3ZGFlMjMzOGQ0NDAzMTYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHku
bW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQpA
QCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLUGFnZVByaXZhdGUuaD4KICNpbXBv
cnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBv
cnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCiBAaW50ZXJm
YWNlIE5TQXBwbGljYXRpb24gKERldGFpbHMpCiAtICh2b2lkKV9zZXRDdXJyZW50RXZlbnQ6KE5T
RXZlbnQgKilldmVudDsKQEAgLTIwNywzMyArMjA4LDMzIEBAIHN0cnVjdCBLZXlNYXBwaW5nRW50
cnkgewogc3RhdGljIE5TRXZlbnRUeXBlIGV2ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0aW9u
KGludCBidXR0b24sIE1vdXNlQWN0aW9uIGFjdGlvbikKIHsKICAgICBzd2l0Y2ggKGJ1dHRvbikg
ewotICAgICAgICBjYXNlIExlZnRNb3VzZUJ1dHRvbjoKLSAgICAgICAgICAgIHN3aXRjaCAoYWN0
aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURvd246Ci0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiBOU0xlZnRNb3VzZURvd247Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZVVw
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlNMZWZ0TW91c2VVcDsKLSAgICAgICAgICAg
ICAgICBjYXNlIE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TTGVm
dE1vdXNlRHJhZ2dlZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgY2FzZSBSaWdodE1vdXNlQnV0
dG9uOgotICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKLSAgICAgICAgICAgICAgICBjYXNl
IE1vdXNlRG93bjoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5TUmlnaHRNb3VzZURvd247
Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZVVwOgotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gTlNSaWdodE1vdXNlVXA7Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBOU1JpZ2h0TW91c2VEcmFnZ2VkOwotICAgICAgICAg
ICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKLSAg
ICAgICAgICAgICAgICBjYXNlIE1vdXNlRG93bjoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IE5TT3RoZXJNb3VzZURvd247Ci0gICAgICAgICAgICAgICAgY2FzZSBNb3VzZVVwOgotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gTlNPdGhlck1vdXNlVXA7Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBNb3VzZURyYWdnZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOU090aGVyTW91c2VE
cmFnZ2VkOwotICAgICAgICAgICAgfQorICAgIGNhc2UgTGVmdE1vdXNlQnV0dG9uOgorICAgICAg
ICBzd2l0Y2ggKGFjdGlvbikgeworICAgICAgICBjYXNlIE1vdXNlRG93bjoKKyAgICAgICAgICAg
IHJldHVybiBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CisgICAgICAgIGNhc2UgTW91c2VVcDoK
KyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOworICAgICAgICBjYXNl
IE1vdXNlRHJhZ2dlZDoKKyAgICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZUxlZnRNb3VzZURy
YWdnZWQ7CisgICAgICAgIH0KKyAgICBjYXNlIFJpZ2h0TW91c2VCdXR0b246CisgICAgICAgIHN3
aXRjaCAoYWN0aW9uKSB7CisgICAgICAgIGNhc2UgTW91c2VEb3duOgorICAgICAgICAgICAgcmV0
dXJuIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd247CisgICAgICAgIGNhc2UgTW91c2VVcDoKKyAg
ICAgICAgICAgIHJldHVybiBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKKyAgICAgICAgY2FzZSBN
b3VzZURyYWdnZWQ6CisgICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVSaWdodE1vdXNlRHJh
Z2dlZDsKKyAgICAgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7
CisgICAgICAgIGNhc2UgTW91c2VEb3duOgorICAgICAgICAgICAgcmV0dXJuIE5TRXZlbnRUeXBl
T3RoZXJNb3VzZURvd247CisgICAgICAgIGNhc2UgTW91c2VVcDoKKyAgICAgICAgICAgIHJldHVy
biBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDsKKyAgICAgICAgY2FzZSBNb3VzZURyYWdnZWQ6Cisg
ICAgICAgICAgICByZXR1cm4gTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDsKKyAgICAgICAg
fQogICAgIH0KICAgICBhc3NlcnQoMCk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5TRXZlbnRU
eXBlPigwKTsKQEAgLTI0MywxNSArMjQ0LDE1IEBAIHN0YXRpYyBpbnQgYnVpbGRNb2RpZmllckZs
YWdzKFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzKQogewogICAgIGludCBmbGFncyA9IDA7CiAg
ICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzQ29udHJvbEtleSkKLSAgICAgICAg
ZmxhZ3MgfD0gTlNDb250cm9sS2V5TWFzazsKKyAgICAgICAgZmxhZ3MgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2w7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzU2hp
ZnRLZXkpCi0gICAgICAgIGZsYWdzIHw9IE5TU2hpZnRLZXlNYXNrOworICAgICAgICBmbGFncyB8
PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50
TW9kaWZpZXJzQWx0S2V5KQotICAgICAgICBmbGFncyB8PSBOU0FsdGVybmF0ZUtleU1hc2s7Cisg
ICAgICAgIGZsYWdzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb247CiAgICAgaWYgKG1vZGlm
aWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzTWV0YUtleSkKLSAgICAgICAgZmxhZ3MgfD0gTlNDb21t
YW5kS2V5TWFzazsKKyAgICAgICAgZmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7
CiAgICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzQ2Fwc0xvY2tLZXkpCi0gICAg
ICAgIGZsYWdzIHw9IE5TQWxwaGFTaGlmdEtleU1hc2s7CisgICAgICAgIGZsYWdzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdDYXBzTG9jazsKICAgICByZXR1cm4gZmxhZ3M7CiB9CiAKQEAgLTM1MSw3
ICszNTIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNlbmRNb3VzZURvd25Ub1N0YXJ0UHJl
c3N1cmVFdmVudHMoKQogewogICAgIHVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b24oMCk7CiAKLSAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0xlZnRNb3Vz
ZURvd24KKyAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd24KICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQobV9w
b3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6TlNFdmVudE1h
c2tQcmVzc3VyZQogICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1
cnJlbnRFdmVudFRpbWUoKSkKQEAgLTQxNSw3ICs0MTYsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6Om1vdXNlRm9yY2VDbGljaygpCiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+IHByZUZvcmNlQ2xp
Y2sgPSBwcmVzc3VyZUNoYW5nZUV2ZW50KDEsIFByZXNzdXJlQ2hhbmdlRGlyZWN0aW9uOjpJbmNy
ZWFzaW5nKTsKICAgICBSZXRhaW5QdHI8TlNFdmVudD4gZm9yY2VDbGljayA9IHByZXNzdXJlQ2hh
bmdlRXZlbnQoMiwgUHJlc3N1cmVDaGFuZ2VEaXJlY3Rpb246OkluY3JlYXNpbmcpOwogICAgIFJl
dGFpblB0cjxOU0V2ZW50PiByZWxlYXNpbmdQcmVzc3VyZSA9IHByZXNzdXJlQ2hhbmdlRXZlbnQo
MSwgUHJlc3N1cmVDaGFuZ2VEaXJlY3Rpb246OkRlY3JlYXNpbmcpOwotICAgIE5TRXZlbnQgKm1v
dXNlVXAgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VVcAorICAgIE5T
RXZlbnQgKm1vdXNlVXAgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVM
ZWZ0TW91c2VVcAogICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludChtX3Bvc2l0aW9uLngsIG1f
cG9zaXRpb24ueSkKICAgICAgICAgbW9kaWZpZXJGbGFnczowCiAgICAgICAgIHRpbWVzdGFtcDph
YnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQpAQCAtNDUyLDcgKzQ1
Myw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZvcmNlQ2xp
Y2soKQogICAgIFJldGFpblB0cjxOU0V2ZW50PiBiZWdpblByZXNzdXJlID0gYmVnaW5QcmVzc3Vy
ZUV2ZW50KDEpOwogICAgIFJldGFpblB0cjxOU0V2ZW50PiBpbmNyZWFzaW5nUHJlc3N1cmUgPSBw
cmVzc3VyZUNoYW5nZUV2ZW50KDEsIFByZXNzdXJlQ2hhbmdlRGlyZWN0aW9uOjpJbmNyZWFzaW5n
KTsKICAgICBSZXRhaW5QdHI8TlNFdmVudD4gcmVsZWFzaW5nUHJlc3N1cmUgPSBwcmVzc3VyZUNo
YW5nZUV2ZW50KDEsIFByZXNzdXJlQ2hhbmdlRGlyZWN0aW9uOjpEZWNyZWFzaW5nKTsKLSAgICBO
U0V2ZW50ICptb3VzZVVwID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNl
VXAKKyAgICBOU0V2ZW50ICptb3VzZVVwID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5T
RXZlbnRUeXBlTGVmdE1vdXNlVXAKICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQobV9wb3Np
dGlvbi54LCBtX3Bvc2l0aW9uLnkpCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAogICAgICAgICB0
aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKQEAg
LTYwMiw3ICs2MDMsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJs
ZSB4LCBkb3VibGUgeSkKICAgICBOU1BvaW50IHBvc2l0aW9uID0gW3ZpZXcgY29udmVydFBvaW50
Ok5TTWFrZVBvaW50KHgsIHkpIHRvVmlldzpuaWxdOwogICAgIG1fcG9zaXRpb24ueCA9IHBvc2l0
aW9uLng7CiAgICAgbV9wb3NpdGlvbi55ID0gcG9zaXRpb24ueTsKLSAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZToobV9sZWZ0TW91c2VCdXR0b25Eb3duID8g
TlNMZWZ0TW91c2VEcmFnZ2VkIDogTlNNb3VzZU1vdmVkKQorICAgIE5TRXZlbnQgKmV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOihtX2xlZnRNb3VzZUJ1dHRvbkRvd24gPyBOU0V2
ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQgOiBOU0V2ZW50VHlwZU1vdXNlTW92ZWQpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246cG9zaXRpb24KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOmFic29sdXRlVGltZUZvckV2
ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCkBAIC03OTgsMTYgKzc5OSwxNiBAQCB2b2lkIEV2
ZW50U2VuZGVyUHJveHk6OmtleURvd24oV0tTdHJpbmdSZWYga2V5LCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgdW5zaQogICAgIGludCBtb2RpZmllckZsYWdzID0gMDsKIAogICAgIGlmIChb
Y2hhcmFjdGVyIGxlbmd0aF0gPT0gMSAmJiBbY2hhcmFjdGVyIGNoYXJhY3RlckF0SW5kZXg6MF0g
Pj0gJ0EnICYmIFtjaGFyYWN0ZXIgY2hhcmFjdGVyQXRJbmRleDowXSA8PSAnWicpIHsKLSAgICAg
ICAgbW9kaWZpZXJGbGFncyB8PSBOU1NoaWZ0S2V5TWFzazsKKyAgICAgICAgbW9kaWZpZXJGbGFn
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CiAgICAgICAgIGNoYXJhY3RlcnNJZ25vcmlu
Z01vZGlmaWVycyA9IFtjaGFyYWN0ZXIgbG93ZXJjYXNlU3RyaW5nXTsKICAgICB9CiAKICAgICBt
b2RpZmllckZsYWdzIHw9IGJ1aWxkTW9kaWZpZXJGbGFncyhtb2RpZmllcnMpOwogCiAgICAgaWYg
KGtleUxvY2F0aW9uID09IDB4MDMgLypET01fS0VZX0xPQ0FUSU9OX05VTVBBRCovKQotICAgICAg
ICBtb2RpZmllckZsYWdzIHw9IE5TTnVtZXJpY1BhZEtleU1hc2s7CisgICAgICAgIG1vZGlmaWVy
RmxhZ3MgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CiAKLSAgICBOU0V2ZW50ICpl
dmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlEb3duCisgICAgTlNFdmVudCAq
ZXZlbnQgPSBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93bgogICAg
ICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJGbGFncwogICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZXN0YW1wOmFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZl
bnRUaW1lKCkpCkBAIC04MjIsNyArODIzLDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlE
b3duKFdLU3RyaW5nUmVmIGtleSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIHVuc2kKICAg
ICBbW21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93KCkgZmly
c3RSZXNwb25kZXJdIGtleURvd246ZXZlbnRdOwogICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2ZW50
Om5pbF07CiAKLSAgICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNLZXlVcAor
ICAgIGV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwCiAg
ICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCg1LCA1KQogICAgICAg
ICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczptb2RpZmllckZsYWdzCiAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRF
dmVudFRpbWUoKSkKQEAgLTkxOCw3ICs5MTksNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3
aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50CiAg
ICAgUmV0YWluUHRyPEV2ZW50U2VuZGVyU3ludGhldGljRXZlbnQ+IGV2ZW50ID0gYWRvcHROUyhb
W0V2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgYWxsb2NdIGluaXRdKTsKIAogICAgIC8vICJtYXlC
ZWdpbiIgYSBzd2lwZSBpcyBhY3R1YWxseSBhIHNjcm9sbCB3aGVlbCBldmVudC4KLSAgICBldmVu
dC0+X2V2ZW50U2VuZGVyX3R5cGUgPSAocGhhc2UgPT0gMTI4KSA/IE5TU2Nyb2xsV2hlZWwgOiBO
U0V2ZW50VHlwZUdlc3R1cmU7CisgICAgZXZlbnQtPl9ldmVudFNlbmRlcl90eXBlID0gKHBoYXNl
ID09IDEyOCkgPyBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsIDogTlNFdmVudFR5cGVHZXN0dXJlOwog
ICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfc3VidHlwZSA9IDY7IC8vIGtJT0hJREV2ZW50VHlwZVNj
cm9sbAogICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfbG9jYXRpb25JbldpbmRvdyA9IE5TTWFrZVBv
aW50KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55KTsKICAgICBldmVudC0+X2V2ZW50U2VuZGVy
X2xvY2F0aW9uID0gKFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVdp
bmRvdygpIGNvbnZlcnRSZWN0VG9TY3JlZW46TlNNYWtlUmVjdChtX3Bvc2l0aW9uLngsIG1fcG9z
aXRpb24ueSwgMSwgMSldLm9yaWdpbik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5kZXggZmI3Y2Q4NWZmNzE3YzMzM2M3MTBiM2EwNTkw
NDUyZjlmMDRhMmNiZS4uODMzODUwMmQ0OGJjODBhMzIwNzc4YTFjYjEwYWRlYmVjYWJkNmY3OSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFj
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5t
bQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJh
dGlvbnMuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVECiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoRGV0
YWlscykKQEAgLTE0NSw3ICsxNDYsNyBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmll
dyhXS1dlYlZpZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uLCBjb25zdCBUZQogCiAgICAg
TlNTY3JlZW4gKmZpcnN0U2NyZWVuID0gW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4
OjBdOwogICAgIE5TUmVjdCB3aW5kb3dSZWN0ID0gbV9vcHRpb25zLnNob3VsZFNob3dXZWJWaWV3
ID8gTlNPZmZzZXRSZWN0KHJlY3QsIDEwMCwgMTAwKSA6IE5TT2Zmc2V0UmVjdChyZWN0LCAtMTAw
MDAsIFtmaXJzdFNjcmVlbiBmcmFtZV0uc2l6ZS5oZWlnaHQgLSByZWN0LnNpemUuaGVpZ2h0ICsg
MTAwMDApOwotICAgIG1fd2luZG93ID0gW1tXZWJLaXRUZXN0UnVubmVyV2luZG93IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRSZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRv
d01hc2sgYmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKV9OU0JhY2tpbmdTdG9yZVVuYnVmZmVy
ZWQgZGVmZXI6WUVTXTsKKyAgICBtX3dpbmRvdyA9IFtbV2ViS2l0VGVzdFJ1bm5lcldpbmRvdyBh
bGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0
eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKV9OU0JhY2tpbmdT
dG9yZVVuYnVmZmVyZWQgZGVmZXI6WUVTXTsKICAgICBtX3dpbmRvdy5wbGF0Zm9ybVdlYlZpZXcg
PSB0aGlzOwogICAgIFttX3dpbmRvdyBzZXRDb2xvclNwYWNlOltmaXJzdFNjcmVlbiBjb2xvclNw
YWNlXV07CiAgICAgW21fd2luZG93IHNldENvbGxlY3Rpb25CZWhhdmlvcjpOU1dpbmRvd0NvbGxl
Y3Rpb25CZWhhdmlvclN0YXRpb25hcnldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9UZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCBjZjg3ZTY5ZWNhODg3OGY4NDVkYjAyMGEyNTM5
ZWMwOGQ1OGU1NDhlLi41ZDFkZDFlODI3ODczNDE4NGExMzIzMmZiYWEzYTg4MmY0OTZmYTYwIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5t
bQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQpA
QCAtNDUsNiArNDUsNyBAQAogI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8d3RmL09i
amNSdW50aW1lRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaD4KIAogQGludGVyZmFjZSBOU1NvdW5kICgpCiArICh2b2lkKV9zZXRBbGVy
dFR5cGU6KE5TVUludGVnZXIpYWxlcnRUeXBlOwpAQCAtMTAzLDcgKzEwNCw3IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygpCiB7CiAg
ICAgY29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCk7CiAKLSAgICB3aGlsZSAoW05T
QXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0V2ZW50TWFza0dlc3R1cmUgfCBOU1Njcm9sbFdo
ZWVsTWFzayB1bnRpbERhdGU6bmlsIGluTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVl
OllFU10pIHsKKyAgICB3aGlsZSAoW05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0V2ZW50
TWFza0dlc3R1cmUgfCBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsIHVudGlsRGF0ZTpuaWwgaW5Nb2Rl
Ok5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXSkgewogICAgICAgICAvLyBDbGVhciBv
dXQgKGFuZCBpZ25vcmUpIGFueSBwZW5kaW5nIGdlc3R1cmUgYW5kIHNjcm9sbCB3aGVlbCBldmVu
dHMuCiAgICAgfQogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>