<?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>206175</bug_id>
          
          <creation_ts>2020-01-13 08:12:18 -0800</creation_ts>
          <short_desc>Add support for MediaStream audio track rendering in GPUProcess</short_desc>
          <delta_ts>2020-01-15 05:01:48 -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>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1605851</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-13 08:12:18 -0800</bug_when>
    <thetext>Add support for MediaStream audio track rendering in GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605854</commentid>
    <comment_count>1</comment_count>
      <attachid>387530</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-13 08:13:20 -0800</bug_when>
    <thetext>Created attachment 387530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606293</commentid>
    <comment_count>2</comment_count>
      <attachid>387628</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-14 00:44:48 -0800</bug_when>
    <thetext>Created attachment 387628
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606294</commentid>
    <comment_count>3</comment_count>
      <attachid>387629</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-14 00:49:20 -0800</bug_when>
    <thetext>Created attachment 387629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606362</commentid>
    <comment_count>4</comment_count>
      <attachid>387629</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-14 06:37:56 -0800</bug_when>
    <thetext>Comment on attachment 387629
Patch

Clearing flags on attachment: 387629

Committed r254505: &lt;https://trac.webkit.org/changeset/254505&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606363</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-14 06:37:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606364</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-14 06:38:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/58566481&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606387</commentid>
    <comment_count>7</comment_count>
      <attachid>387629</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-14 07:50:52 -0800</bug_when>
    <thetext>Comment on attachment 387629
Patch

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

&gt; Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h:39
&gt; +namespace IPC {
&gt; +class Connection;
&gt; +class DataReference;
&gt; +class Decoder;
&gt; +}

These probably aren&apos;t necessary since you include MessageReceiver.h above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606395</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-14 08:04:32 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #7)
&gt; Comment on attachment 387629 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=387629&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h:39
&gt; &gt; +namespace IPC {
&gt; &gt; +class Connection;
&gt; &gt; +class DataReference;
&gt; &gt; +class Decoder;
&gt; &gt; +}
&gt; 
&gt; These probably aren&apos;t necessary since you include MessageReceiver.h above.

Filed https://bugs.webkit.org/show_bug.cgi?id=206236</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606453</commentid>
    <comment_count>9</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-01-14 09:48:56 -0800</bug_when>
    <thetext>Reverted r254505 for reason:

Breaks watchOS/tvOS/Catalyst builds.

Committed r254516: &lt;https://trac.webkit.org/changeset/254516&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606831</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-15 00:28:40 -0800</bug_when>
    <thetext>*** Bug 206236 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606837</commentid>
    <comment_count>11</comment_count>
      <attachid>387760</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-15 01:08:52 -0800</bug_when>
    <thetext>Created attachment 387760
Fixing non MediaStream builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606845</commentid>
    <comment_count>12</comment_count>
      <attachid>387760</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-15 02:09:05 -0800</bug_when>
    <thetext>Comment on attachment 387760
Fixing non MediaStream builds

Rejecting attachment 387760 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 387760, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/13304664</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606848</commentid>
    <comment_count>13</comment_count>
      <attachid>387767</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-15 02:13:49 -0800</bug_when>
    <thetext>Created attachment 387767
Fixing non MediaStream builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606856</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-15 03:12:21 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 387767:

media/track/track-cues-sorted-before-dispatch.html bug 206225 (authors: simon.pena@samsung.com and vcarbune@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606859</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-15 03:12:30 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 387767:

http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https.html bug 197297 (author: dbates@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606868</commentid>
    <comment_count>16</comment_count>
      <attachid>387767</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-15 03:30:57 -0800</bug_when>
    <thetext>Comment on attachment 387767
Fixing non MediaStream builds

Clearing flags on attachment: 387767

Committed r254562: &lt;https://trac.webkit.org/changeset/254562&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606869</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-15 03:30:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606875</commentid>
    <comment_count>18</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-15 03:55:05 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606876</commentid>
    <comment_count>19</comment_count>
      <attachid>387774</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-15 03:55:08 -0800</bug_when>
    <thetext>Created attachment 387774
Patch for landing</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387530</attachid>
            <date>2020-01-13 08:13:20 -0800</date>
            <delta_ts>2020-01-14 00:44:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206175-20200113171318.patch</filename>
            <type>text/plain</type>
            <size>51377</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUwZWE0Mjk5OTMzMTE4Y2Ni
YjYxY2ExMjFhZjU1YTQwM2NmM2FhZDcuLmRkMTdhOGQ1ZmE4MDQzZDkyZDNkNDU3N2E2NTM0ZDQw
ZmUyMjM2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMjAtMDEtMTMgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRp
YVN0cmVhbSBhdWRpbyB0cmFjayByZW5kZXJpbmcgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTc1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6YXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcik6CisgICAgICAgIChX
ZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpuZXh0TG9nSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJLaXQ6Om51bGxMb2dnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcjo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
flJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0b3JhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjbGVhcik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpz
ZXRQYXVzZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjo6c2V0Vm9sdW1lKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmF1
ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMu
aW46IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OmRpZFJlY2VpdmVSZW5k
ZXJlck1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXI6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpyZWxlYXNlUmVuZGVyZXIp
OgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQ
cm9jZXNzKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
Ojp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldFBhdXNlZCk6CisgICAgICAgIChXZWJLaXQ6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYktpdDo6QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJL
aXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpwdXNoU2FtcGxlcyk6CisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKwogMjAy
MC0wMS0xMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgQ29yZVBERiBsaW5rYWdlIGluIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGVkZmI2ZTFlMDVlNTY0MDA4YjdkNTdh
ODc0NTM3OGM0M2Q2NmNmOTYuLjI0Y2FlNWY3ODE4ODU4ZDdlODg3ODdjZGU5MzgyYTI2NGU4NWMw
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
QEAgLTE5LDYgKzE5LDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxl
LldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5t
ZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFS
ZWNvcmRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZGZiYzBlZmU2
Yjg0NzI2Zjk2Yzg5ODI4Y2Q4M2QwZWQ3NTkwNWEwNi4uM2NmMzU4YWQ2YmFmZGI5MTE5YTNiNGZh
YmU5YmYxYTIxOGE1NGZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMjAsNiArMTIwLDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGll
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJl
Y2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IGUyOTA5MzA5N2NkOWJkZWIzNDVhMTlhNWQzN2ZlNTdhNTQwZGViNzAuLmY2MjBlNmNkYjk5NTRi
Mjk3MDE4YWVlMmI4NTljMWQxZDNiYWQyNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTE0MCw2ICsxNDAsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIgXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAgICAgUGx1
Z2luUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
ciBcCisgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgXAogICAgIFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ciBcCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4
IDYyMGI0MWYyOGQ2Njc2YTNkZTE3ZjQ3NmIyZGYzODhmZmY2NDc3MGQuLmQzOWQwN2NhM2IzMDQ5
YzJmMDQwNDkwNzQ5ODMyZGQwMWQyM2EzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM2LDYgKzM2LDkg
QEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eS5oIgogI2luY2x1ZGUgIkxpYldlYlJU
Q0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgiCisjaW5jbHVkZSAi
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC0xNDgsNiArMTUxLDE2IEBAIFJl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRp
YVJlY29yZGVyTWFuYWdlcigpCiAKICAgICByZXR1cm4gKm1fcmVtb3RlTWVkaWFSZWNvcmRlck1h
bmFnZXI7CiB9CisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCitSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmF1ZGlv
VHJhY2tSZW5kZXJlck1hbmFnZXIoKQoreworICAgIGlmICghbV9hdWRpb1RyYWNrUmVuZGVyZXJN
YW5hZ2VyKQorICAgICAgICBtX2F1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXIgPSBtYWtlVW5pcXVl
PFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcj4oKTsKKworICAgIHJl
dHVybiAqbV9hdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyOworfQorI2VuZGlmCiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQpAQCAtMTgyLDYgKzE5NSwxNiBA
QCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgICAgICBtZWRpYVJlY29yZGVyTWFuYWdlcigp
LmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KFZJREVPX1RSQUNLKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBN
ZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcigp
LmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGF1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXIo
KS5kaWRSZWNlaXZlUmVuZGVyZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorI2VuZGlmCiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYg
VVNFKExJQldFQlJUQykKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0g
TWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IGY0ODU5NjRkNDZjNTJlMzM4ZDJhYmU0Zjc2NWRkY2I1YTk0YTA3OTAuLmNj
MjExMGI1ZmEyMTk0NWM2YzQzOTg4Y2M4OTE1ZjljNTg1MWY2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNDAs
NiArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNz
IExpYldlYlJUQ0NvZGVjc1Byb3h5OworY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiBj
bGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyOwpAQCAtNzMsNiArNzQsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkmIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKTsKICAgICBSZW1vdGVNZWRpYVJlY29y
ZGVyTWFuYWdlciYgbWVkaWFSZWNvcmRlck1hbmFnZXIoKTsKKyNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCisgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyJiBhdWRp
b1RyYWNrUmVuZGVyZXJNYW5hZ2VyKCk7CisjZW5kaWYKICNlbmRpZgogCiAgICAgLy8gSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQKQEAgLTkyLDYgKzk2LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcj4gbV9yZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcj4g
bV9hdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyOworI2VuZGlmCiAjZW5kaWYKICNpZiBQTEFURk9S
TShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRD
Q29kZWNzUHJveHk+IG1fbGliV2ViUlRDQ29kZWNzUHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2MGEwNTg1MWFlMGIxNGZmMmQx
MDAyZWZmOWQxM2QwMDliZTAxYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApA
QCAtMCwwICsxLDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dl
YkF1ZGlvQnVmZmVyTGlzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK3N0YXRpYyBjb25zdCB2
b2lkKiBuZXh0TG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50
aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitzdGF0aWMg
UmVmUHRyPExvZ2dlcj4mIG51bGxMb2dnZXIoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxSZWZQdHI8TG9nZ2VyPj4gbG9nZ2VyOworICAgIHJldHVybiBsb2dnZXI7Cit9CisjZW5kaWYK
KworUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OlJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyKCkKKyAgICA6IG1fcmVuZGVyZXIoV2ViQ29yZTo6QXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSgpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VV
bmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
PihudWxscHRyKSkpCit7CisgICAgQVNTRVJUKG1fcmVuZGVyZXIpOworCisjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECisgICAgaWYgKCFudWxsTG9nZ2VyKCkuZ2V0KCkpIHsKKyAgICAgICAgbnVs
bExvZ2dlcigpID0gTG9nZ2VyOjpjcmVhdGUodGhpcyk7CisgICAgICAgIG51bGxMb2dnZXIoKS0+
c2V0RW5hYmxlZCh0aGlzLCBmYWxzZSk7CisgICAgfQorICAgIG1fcmVuZGVyZXItPnNldExvZ2dl
cigqbnVsbExvZ2dlcigpLCBuZXh0TG9nSWRlbnRpZmllcigpKTsKKyNlbmRpZgorfQorCitSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6flJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyKCkKK3sKKyAgICBtX3JlbmRlcmVyLT5jbGVhcigpOworfQorCitTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZSYgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0
b3JhZ2UoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcCgpCit7CisgICAgbV9yZW5kZXJlci0+c3RvcCgpOwor
fQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjbGVhcigpCit7
CisgICAgbV9yZW5kZXJlci0+Y2xlYXIoKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjo6c2V0UGF1c2VkKGJvb2wgdmFsdWUpCit7CisgICAgbV9yZW5kZXJl
ci0+c2V0UGF1c2VkKHZhbHVlKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6c2V0TXV0ZWQoYm9vbCB2YWx1ZSkKK3sKKyAgICBtX3JlbmRlcmVyLT5zZXRN
dXRlZCh2YWx1ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OnNldFZvbHVtZShmbG9hdCB2YWx1ZSkKK3sKKyAgICBtX3JlbmRlcmVyLT5zZXRWb2x1bWUo
dmFsdWUpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjph
dWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFu
ZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
LCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBBU1NFUlQobV9yaW5nQnVmZmVyKTsK
KyAgICBpZiAoIW1fcmluZ0J1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kZXNjcmlw
dGlvbiA9IGRlc2NyaXB0aW9uOworCisgICAgaWYgKGhhbmRsZS5pc051bGwoKSkgeworICAgICAg
ICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKKyAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRP
bmx5KGZhbHNlKTsKKyAgICAgICAgc3RvcmFnZSgpLnNldFN0b3JhZ2UobnVsbHB0cik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFw
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgc3RvcmFn
ZSgpLnNldFN0b3JhZ2UoV1RGTW92ZShtZW1vcnkpKTsKKyAgICBzdG9yYWdlKCkuc2V0UmVhZE9u
bHkodHJ1ZSk7CisKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7fQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBB
U1NFUlQobV9yaW5nQnVmZmVyKTsKKyAgICBpZiAoIW1fcmluZ0J1ZmZlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFt
ZSwgZW5kRnJhbWUpOworCisgICAgV2ViQXVkaW9CdWZmZXJMaXN0IGF1ZGlvRGF0YShtX2Rlc2Ny
aXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChhdWRpb0Rh
dGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisKKyAgICBtX3Jl
bmRlcmVyLT5wdXNoU2FtcGxlcyh0aW1lLCBhdWRpb0RhdGEsIG1fZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTJmM2FlODRiMmQ3MTI4MzE0NzViY2NmZjBmNmQ4
OTA3OTFlZWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCkBAIC0wLDAgKzEsODEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlNoYXJl
ZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+
CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENv
bm5lY3Rpb247CitjbGFzcyBEYXRhUmVmZXJlbmNlOworY2xhc3MgRGVjb2RlcjsKK30KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI7Citj
bGFzcyBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBDQVJpbmdCdWZmZXI7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwor
Y2xhc3MgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U7CisKK2NsYXNzIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIoKTsKKyAgICB+UmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIGNsZWFyKCk7CisgICAg
dm9pZCBzZXRQYXVzZWQoYm9vbCk7CisgICAgdm9pZCBzZXRNdXRlZChib29sKTsKKyAgICB2b2lk
IHNldFZvbHVtZShmbG9hdCk7CisgICAgdm9pZCBhdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChj
b25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKKyAgICB2b2lkIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRf
dCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSk7CisKKyAgICBTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZSYgc3RvcmFnZSgpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyPiBtX3JlbmRlcmVyOworCisgICAgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworfTsKKworfQorCisjZW5kaWYg
Ly8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVP
X1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzhmODhk
NWYzYTM5OWVlZjNlZTliOTgwYjBjZGQ4MjBhZGVlYjliCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM4IEBACisjIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCitt
ZXNzYWdlcyAtPiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBOb3RSZWZDb3Vu
dGVkIHsKKyAgICBTdG9wKCkKKyAgICBDbGVhcigpCisKKyAgICBTZXRQYXVzZWQoYm9vbCB2YWx1
ZSkKKyAgICBTZXRNdXRlZChib29sIHZhbHVlKQorICAgIFNldFZvbHVtZShmbG9hdCB2YWx1ZSkK
KworICAgIEF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpI
YW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGRl
c2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICBBdWRpb1NhbXBsZXNBdmFp
bGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBz
dGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDY4MzNjODU3ZGU2MWJmNThiMWYwZWNiMjM0YzY2MWYyNDBiOTIzMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlcigpID0gZGVmYXVsdDsKKworUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoYXV0byogcmVuZGVy
ZXIgPSBtX3JlbmRlcmVycy5nZXQobWFrZU9iamVjdElkZW50aWZpZXI8QXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKSkK
KyAgICAgICAgcmVuZGVyZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6
Y3JlYXRlUmVuZGVyZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX3JlbmRlcmVycy5jb250YWlucyhpZGVudGlmaWVy
KSk7CisgICAgbV9yZW5kZXJlcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8UmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+KCkpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6cmVsZWFzZVJlbmRlcmVyKEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVCht
X3JlbmRlcmVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9yZW5kZXJlcnMucmVtb3Zl
KGlkZW50aWZpZXIpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFlNjcxZjViZmJmZDRkZDZmNGMyMjQzMzdhM2NmYzA1YjMyMWM1
NmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oCkBAIC0wLDAgKzEsNjQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFz
cyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOworCitjbGFzcyBSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIgOiBwcml2YXRlIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIoKTsK
KyAgICB+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKCk7CisKKyAg
ICB2b2lkIGRpZFJlY2VpdmVSZW5kZXJlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6CisgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlUmVuZGVyZXIoQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VS
ZW5kZXJlcihBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIpOworCisgICAg
SGFzaE1hcDxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4+IG1fcmVuZGVyZXJz
OworfTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
ci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTU2MDIxZGU5NGU3NGVkOTAyMzg0NTE0NmE0YjU1
ZjQ4MGI5MjU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShW
SURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAg
IENyZWF0ZVJlbmRlcmVyKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVu
dGlmaWVyIGlkKQorICAgIFJlbGVhc2VSZW5kZXJlcihXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySWRlbnRpZmllciBpZCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBjZWZmM2MyNjA1YTFmODVkNWQ5OTBhNjRjM2Yy
ODIwM2QxMTUyMzIwLi5lYWQ2YTdkNDc5ZWJkY2Q1NTQ2Yzk2YWRiYWRhZTQ0NDI4YmM1OTBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIxOCw2ICsyMTgs
NyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAg
ICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXInLAogICAgICAg
ICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCcsCisgICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkxheWVySG9z
dGluZ0NvbnRleHRJRCcsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllcics
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAppbmRleCAzMDZjZDFlNjkzNTY2MWFkNDFjMDYwOTI4NDhiZjlhZjM2YjFiNzI2
Li41NGMxOWY5Y2Y0YTYzOGJkMWFlMjViZmI5YzRlYzk3Y2YxYzNlOTBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
QEAgLTI0LDYgKzI0LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlci5jcHAKIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5h
Z2VyLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5j
cHAKQEAgLTUxNyw2ICs1MTksNyBAQCBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlUHJveHkuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNw
cAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAogV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKK1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKIAogV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAwODc2YWRkMTM1
NDNlZThmY2VlYmE2MzViYTk5OTM2ZWQ3Yzg2YzU2Li43OTIxODA5OGIzYjRjZTA0MTEyMzI5NmFk
MzBiZGZmNzIyODI1ZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02MzksNiArNjM5LDgg
QEAgR1BVUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogR1BVUHJvY2Vzc01lc3NhZ2VS
ZWNlaXZlci5jcHAKIExpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogTGli
V2ViUlRDQ29kZWNzTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVy
TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWZi
ZGMyNTc1ZTQ0ODE4NWU0YmNiYzg0MmU0ZjdhNTQ0MzEzYjQzOS4uNGFhYzU0ZDkyYTZhMWIzNDU4
OThhZjg2YWZlODZiZGU0NjE2MzJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMzcwLDYgKzMzNzAsMTIgQEAKIAkJNDFEMTI5RDkx
RjNEMTAxNDAwRDE1RTQ3IC8qIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxRDVDNkQ4MjM4RUIyMEQwMEI5QjNDQiAvKiBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxv
YWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyU29m
dFVwZGF0ZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUQ1QzZEOTIz
OEVCMjBFMDBCOUIzQ0IgLyogU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlclNvZnRVcGRhdGVM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUQ2NDU1MjIzQ0NCOTIx
MDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW47
IHBhdGggPSBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk0MUQ2NDU1
MzIzQ0NCOTIxMDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaDsg
cGF0aCA9IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNDFENjQ1NTQyM0NDQjkyMjAw
NDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcDsgcGF0
aCA9IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk0MUQ2NDU1NTIzQ0NCOTY5MDA0
ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFENjQ1NTYyM0NDQjk2OTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MUQ2NDU1NzIzQ0NCOTY5MDA0ODZFMEUgLyogUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURDNDU5NDFFM0Q2RTFFMDBCMTFG
NTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5ldHdvcmtSVENQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MURDNDU5NTFFM0Q2RTFFMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREM0NTk4MUUzRDZFRDYwMEIxMUY1MSAvKiBO
ZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0
d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzM5MCw2ICszMzk2LDkgQEAKIAkJNDFGQkU4MjIyMDZEQTc5QzAwMEYwNzQxIC8qIE5ldHdv
cmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxRkJFODIzMjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3b3JrQ29udGVudFJ1bGVM
aXN0TWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrQ29u
dGVudFJ1bGVMaXN0TWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFGQkU4MjQyMDZEQTc5QzAwMEYwNzQxIC8qIE5ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtD
b250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDFGQ0Q2QUQyM0NDQzI2MDAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkFFMjNDQ0My
NjEwMEM2MjU2NyAvKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNENkFGMjNDQ0MyNjEwMEM2
MjU2NyAvKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBBRUJGMURDM0ZB
RTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0NTk5ODQxMjI4MzNFNjAwMEU2MTM3MyAvKiBTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0OUQ5MEQ4MjFGRDYzRkUwMEY2NzdD
MCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MTYzLDYgKzcxNzIsOSBAQAogCQkJCTQxNzZFODk1
MjNDMzRFMjcwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovLAogCQkJCTQxNzZF
ODkzMjNDMzRENkYwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwICovLAogCQkJ
CTQxNzZFODkyMjNDMzRENkUwMDNFODNGRSAvKiBNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCAqLywK
KwkJCQk0MUZDRDZBRTIzQ0NDMjYxMDBDNjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIuY3BwICovLAorCQkJCTQxRkNENkFEMjNDQ0MyNjAwMEM2MjU2NyAvKiBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlci5oICovLAorCQkJCTQxRkNENkFGMjNDQ0MyNjEwMEM2MjU2NyAv
KiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaCAqLywKIAkJCQk0MTcy
MTk4QzIzQjYxMkU4MDBBRTU2ODYgLyogUlRDRGVjb2RlcklkZW50aWZpZXIuaCAqLywKIAkJCQk0
MTU4NjQ5QTIzQkUwOTI0MDBBMEE2MUUgLyogUlRDRW5jb2RlcklkZW50aWZpZXIuaCAqLywKIAkJ
CSk7CkBAIC03MTc1LDYgKzcxODcsMTIgQEAKIAkJCQk0MUUwQTdDNjIzQjYzOTc4MDA1NjEwNjAg
LyogTGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLywKIAkJCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEw
NjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFFMEE3Qzgy
M0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICovLAorCQkJCTQxRDY0
NTU2MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ck1hbmFnZXIuY3BwICovLAorCQkJCTQxRDY0NTU3MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaCAqLywKKwkJCQk0MUQ2NDU1NTIz
Q0NCOTY5MDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyLm1lc3NhZ2VzLmluICovLAorCQkJCTQxRDY0NTU0MjNDQ0I5MjIwMDQ4NkUwRSAvKiBSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8sCisJCQkJNDFENjQ1NTMyM0ND
QjkyMTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8s
CisJCQkJNDFENjQ1NTIyM0NDQjkyMTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluICovLAogCQkJCTQxNzZFODlEMjNDMzc2RDUwMDNFODNG
RSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCAqLywKIAkJCQk0MTc2RTg5ODIzQzM2Njc3MDAz
RTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5oICovLAogCQkJCTQxNzZFODlDMjNDMzc0Nzkw
MDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDZlY2JiZWFiYmNiYzNhODUzMTEyMDg0ZTNmMzM2N2Y3
YzZjNTg0MTkuLmQxYzRiOTA4MDM1NzJjMzkwNDY5NTU3YTJkNDhiZGZlMTM3NzgwY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1JTUVU
eXBlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5o
IgpAQCAtMzI0LDYgKzMyNiw5IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRh
dGVQcmVmZXJlbmNlcyhjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgfTsKIAogICAgIFJl
bW90ZU1lZGlhUGxheWVyU3VwcG9ydDo6c2V0UmVnaXN0ZXJSZW1vdGVQbGF5ZXJDYWxsYmFjayhz
ZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSA/IFdURk1vdmUocmVnaXN0ZXJFbmdpbmUp
IDogUmVtb3RlTWVkaWFQbGF5ZXJTdXBwb3J0OjpSZWdpc3RlclJlbW90ZVBsYXllckNhbGxiYWNr
KCkpOworCisvLyAgICBpZiAoc2V0dGluZ3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkpCisgICAg
ICAgIFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRDcmVhdG9yKFdl
YktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSk7CiB9CiAKIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUm
JiBzdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45YjFiNzc0MzcxNjE4MTU4MzM5ZjZlZWQ2YTFhYzljMGFiMTgzNGZiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXIuY3BwCkBAIC0wLDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
ICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdC
dWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyPiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Y3JlYXRlKCkK
K3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4o
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkpOworfQorCitBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQor
ICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lkZW50aWZp
ZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQor
ICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVm
PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCit7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6
OkNyZWF0ZVJlbmRlcmVyIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCitBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCkKK3sKKyAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlcjo6UmVsZWFzZVJlbmRlcmVyIHsgbV9pZGVudGlmaWVyIH0sIDApOwor
fQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRQYXVzZWQoYm9vbCB2
YWx1ZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjpTZXRQYXVzZWQgeyB2YWx1ZSB9LCBtX2lkZW50aWZpZXIp
OworfQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9wKCkKK3sKKyAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyOjpTdG9wIHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcjo6Y2xlYXIoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkNsZWFyIHsgfSwg
bV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
c2V0TXV0ZWQoYm9vbCB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6c2V0TXV0ZWQodmFsdWUpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OlNldE11dGVkIHsgdmFs
dWUgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcjo6c2V0Vm9sdW1lKGZsb2F0IHZhbHVlKQoreworICAgIFdlYkNvcmU6OkF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyOjpzZXRWb2x1bWUodmFsdWUpOworICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OlNldFZv
bHVtZSB7IHZhbHVlIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAobV9kZXNj
cmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxh
dGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0
cmVhbUJhc2ljVHlwZSk7CisgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3Qg
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlw
dGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAvLyBBbGxvY2F0ZSBhIHJpbmcgYnVmZmVy
IGxhcmdlIGVub3VnaCB0byBjb250YWluIDIgc2Vjb25kcyBvZiBhdWRpby4KKyAgICAgICAgbV9u
dW1iZXJPZkZyYW1lcyA9IG1fZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAg
bV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCks
IG1fbnVtYmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGF1ZGlvRGF0YSkpOworICAgIG1fcmluZ0J1ZmZlci0+c3RvcmUoZG93bmNhc3Q8V2Vi
QXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUu
dGltZVZhbHVlKCkpOworICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgdWludDY0X3QgZW5k
RnJhbWU7CisgICAgbV9yaW5nQnVmZmVyLT5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFt
ZSwgZW5kRnJhbWUpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IHRpbWUs
IG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSB9LCBtX2lkZW50aWZpZXIpOwor
fQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZChT
aGFyZWRNZW1vcnkqIHN0b3JhZ2UpCit7CisgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxl
OworICAgIGlmIChzdG9yYWdlKQorICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpBdWRp
b1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCB7IGhhbmRsZSwgbV9kZXNjcmlwdGlvbiwgc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KG1fbnVtYmVyT2ZGcmFtZXMpIH0sIG1faWRlbnRpZmllcik7Cit9CisKK30K
KyNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGU2Y2EzOGYyNTZlYWYyODk3MjNhNjVjNzFlNjE3ODJh
MjA4YTVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtMCwwICsxLDc0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyIDogcHVibGljIFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLCBw
dWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudCB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4gY3JlYXRlKCk7CisKKyAgICBleHBsaWNp
dCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsK
KyAgICB+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIoKTsKKworICAgIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9pZGVudGlmaWVyOyB9CisKK3ByaXZhdGU6CisgICAgLy8gU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U6OkNsaWVudAorICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5Kik7CisKKyAg
ICAvLyBXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcgorICAgIHZvaWQgc2V0
UGF1c2VkKGJvb2wpIGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFsOworICAgIHZvaWQgY2xl
YXIoKSBmaW5hbDsKKyAgICB2b2lkIHNldE11dGVkKGJvb2wpIGZpbmFsOworICAgIHZvaWQgc2V0
Vm9sdW1lKGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHB1c2hTYW1wbGVzKGNvbnN0IFdURjo6TWVk
aWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKKyAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIgbV9p
ZGVudGlmaWVyOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4g
bV9yaW5nQnVmZmVyOworICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rl
c2NyaXB0aW9uIHsgfTsKKyAgICBpbnQ2NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjg1YTMzZWM2
NGRmMTg4ZjkyNmE1NThhZTBhOGI5ZjhmNmY1ZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlICwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVu
dGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggNDZkMTE5ODc3MmM1MWI4YWQ5MGVmOGExNzEzMjFm
ZmNlMjkwZmNmOS4uMTllNjBlNzIwNDBkZTc4MTU1YmY4MzhjYWQyNTMzMTc3ZmQzZTJmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpZiBVU0UoTElCV0VCUlRDKSAmJiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
TGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9MaWJXZWJSVENNYWNyb3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lVmlkZW9VdGls
aXRpZXMuaD4KQEAgLTQwLDYgKzQwLDggQEAKICNpbmNsdWRlIDx3ZWJydGMvc2RrL1dlYktpdC9X
ZWJLaXRVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyB3ZWJydGM6
OldlYktpdFZpZGVvRGVjb2RlciBjcmVhdGVWaWRlb0RlY29kZXIoY29uc3Qgd2VicnRjOjpTZHBW
aWRlb0Zvcm1hdCYgZm9ybWF0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387628</attachid>
            <date>2020-01-14 00:44:48 -0800</date>
            <delta_ts>2020-01-14 00:49:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206175-20200114094447.patch</filename>
            <type>text/plain</type>
            <size>61245</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1Y2QxZjI3OGY1YzRl
Y2YyNDBiOTVhNTBhYWEwMTgyNTU2YTcxMC4uNThlNzc0ODVhZDVmNzk1NjBlYmNmOTBlMjZjYmI1
MzI3YmMyYTA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAxLTE0ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gYXVkaW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjE3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IG1vZGVsIHRv
IHVzZSBzdGFydC9zdG9wIGluc3RlYWQgb2Ygc2V0UGF1c2VkLgorICAgICAgICBTaW1wbGlmeSBh
bmQgZml4IGlzc3VlIGluIGNvbXB1dGF0aW9uIG9mIHRoZSBtdXRlZCBzdGF0ZSBvZiB0aGUgcmVu
ZGVyZXIuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgcnVuIHdpdGggR1BVIHBy
b2Nlc3MgZW5hYmxlZCBhbmQgbWFudWFsIHRlc3RpbmcKKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpwbGF5SW50ZXJuYWwp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGF1c2Up
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckNvY29hOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpyZW5kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmg6CisKIDIw
MjAtMDEtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgU2Nyb2xsYmFyIGhpZGluZyBvbiBpT1MgdmlhIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNw
bGF5OiBub25lIH0gZG9lc24ndCB3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY5NzRhY2ZjZGUyNTA4YTc3NmM3
MzhiZDZlYjE4MzRiOTM4MzU2YjEuLmQyNDc0ZjRkMzU4YjM3YjVjZjU2ZWU3NTM0YTk5ZGVkZWI1
N2NhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjAtMDEtMTQgIHlvdWVubiBmYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRpYVN0
cmVhbSBhdWRpbyB0cmFjayByZW5kZXJpbmcgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTc1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGFuIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyIGF0IFdlYktpdCBsZXZlbCBieSBjcmVhdGluZyBhIHJlbW90ZSBy
ZW5kZXJlciBpbiBHUFVQcm9jZXNzIGFuZCBzZW5kaW5nIElQQyB0byBwYXNzCisgICAgICAgIGF1
ZGlvIGRhdGEgYXMgd2VsbCBhcyBvcmRlcnMgKHN0YXJ0L3N0b3Avc2V0TXV0ZWQpLgorCisgICAg
ICAgIEltcGxlbWVudCB0aGUgcmVtb3RlIHJlbmRlcmVyIHVzaW5nIFdlYkNvcmUgYXVkaW8gdHJh
Y2sgcmVuZGVyZXIuCisKKyAgICAgICAgRW5hYmxlIFdlYktpdCByZW1vdGUgcmVuZGVyZXIgRiBH
UFUgcHJvY2VzcyBmb3IgbWVkaWEgaXMgZW5hYmxlZC4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgor
ICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Om5leHRMb2dJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYktpdDo6bnVsbExvZ2dlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyOjp+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcmFnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
OjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXI6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpkaWRSZWNlaXZl
UmVuZGVyZXJNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6cmVsZWFzZVJlbmRl
cmVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9t
V2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6On5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYktpdDo6QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJL
aXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpwdXNoU2FtcGxlcyk6CisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oOiBBZGRlZC4KKwog
MjAyMC0wMS0xMyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OmNsZWFyQ2FjaGVzRm9yT3JpZ2luRnJvbURpc2sgQVNTRVJU
IGlzIGJ1Z2d5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAppbmRleCA4MDBh
OTMwYzg0NTVkMWEzMzZiODBlMDVkODZjOGY5OTY2N2ZjYjc2Li4xNDYyZTMyMmY5ZTkwYTg4ZWNh
OGUyOGE5OWUyZGE4NjdjYTJkYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwg
fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVh
bCB2b2lkIHNldFBhdXNlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhcigp
ID0gMDsKICAgICAvLyBNYXkgYmUgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCmluZGV4IDk3ZDllNjlkMTVmMDY0MjFh
YmY5NGQ0NDhjOGU4ODlkNDg2MDM1ZmIuLjJmNDhjMWFhYTUxOTNkMGM0ZDM5MWYwMzM0ZDk2N2Jh
ZmIwMWM3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCkBAIC03
Nyw3ICs3Nyw3IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGxheUludGVy
bmFsKCkKICAgICBtX2lzUGxheWluZyA9IHRydWU7CiAgICAgbV9hdXRvUGxheSA9IGZhbHNlOwog
Ci0gICAgbV9yZW5kZXJlci0+c2V0UGF1c2VkKGZhbHNlKTsKKyAgICBtX3JlbmRlcmVyLT5zdGFy
dCgpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBsYXkoKQpAQCAt
OTUsNyArOTUsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBhdXNlKCkK
ICAgICBtX2lzUGxheWluZyA9IGZhbHNlOwogICAgIG1fYXV0b1BsYXkgPSBmYWxzZTsKIAotICAg
IG1fcmVuZGVyZXItPnNldFBhdXNlZCh0cnVlKTsKKyAgICBtX3JlbmRlcmVyLT5zdG9wKCk7CiB9
CiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKQEAgLTExMSwxMSArMTExLDYgQEAgZmxvYXQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbTo6dm9sdW1lKCkgY29uc3QKIC8vIE1heSBnZXQgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0
aHJlYWQuCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYgc2FtcGxl
VGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKLSAgICBp
ZiAoIW1faXNQbGF5aW5nKSB7Ci0gICAgICAgIG1fcmVuZGVyZXItPnN0b3AoKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQogICAgIG1fcmVuZGVyZXItPnB1c2hTYW1wbGVzKHNhbXBsZVRpbWUs
IGF1ZGlvRGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKIAogICAgIGlmIChtX2F1dG9Q
bGF5ICYmICFtX2hhc1N0YXJ0ZWRBdXRvcGxheSkgewpAQCAtMTM5LDcgKzEzNCw3IEBAIHZvaWQg
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpCiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6
dXBkYXRlUmVuZGVyZXJNdXRlZFN0YXRlKCkKIHsKLSAgICBtX3JlbmRlcmVyLT5zZXRNdXRlZCht
X2lzUGxheWluZyAmJiAhc3RyZWFtVHJhY2soKS5tdXRlZCgpICYmICFzdHJlYW1UcmFjaygpLmVu
ZGVkKCkgJiYgc3RyZWFtVHJhY2soKS5lbmFibGVkKCkpOworICAgIG1fcmVuZGVyZXItPnNldE11
dGVkKHN0cmVhbVRyYWNrKCkubXV0ZWQoKSB8fCBzdHJlYW1UcmFjaygpLmVuZGVkKCkgfHwgIXN0
cmVhbVRyYWNrKCkuZW5hYmxlZCgpKTsKIH0KIAogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcAppbmRleCBlNzU0
NjFmNmQ1ZDhmNmI3ZTZhZjlmZDU2Y2MyNmY1ZmJkMzkyYmI1Li4xMDRkYmRjNWU5MmMwZmIyZGE3
Nzk5MWEzZjEwMzc0ODI5YzFlZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCkBAIC00MywxMSArNDMsMzAgQEAgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJD
b2NvYSgpID0gZGVmYXUKIAogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6fkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EoKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c3RhcnQoKQoreworICAgIGlmIChtX2Rh
dGFTb3VyY2UpCisgICAgICAgIG1fZGF0YVNvdXJjZS0+c2V0UGF1c2VkKGZhbHNlKTsKKworICAg
IGlmIChtX2lzQXVkaW9Vbml0U3RhcnRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1
dG8gZXJyb3IgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX3JlbW90ZUlPVW5pdCkpIHsKKyAgICAg
ICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJBdWRpb091dHB1dFVuaXRTdGFydCBmYWlsZWQs
IGVycm9yID0gIiwgZXJyb3IsICIgKCIsIChjb25zdCBjaGFyKikmZXJyb3IsICIpIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgbV9pc0F1ZGlvVW5pdFN0YXJ0ZWQgPSB0cnVlOworfQor
CiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnN0b3AoKQogeworICAg
IGlmIChtX2RhdGFTb3VyY2UpCisgICAgICAgIG1fZGF0YVNvdXJjZS0+c2V0UGF1c2VkKHRydWUp
OworCiAgICAgaWYgKCFtX2lzQXVkaW9Vbml0U3RhcnRlZCkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgbV9pc0F1ZGlvVW5pdFN0YXJ0ZWQgPSBmYWxzZTsKICAgICBpZiAobV9yZW1vdGVJT1VuaXQp
CiAgICAgICAgIEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1vdGVJT1VuaXQpOwogfQpAQCAtNjYs
MTMgKzg1LDcgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpjbGVh
cigpCiAgICAgbV9kYXRhU291cmNlID0gbnVsbHB0cjsKICAgICBtX2lucHV0RGVzY3JpcHRpb24g
PSBudWxscHRyOwogICAgIG1fb3V0cHV0RGVzY3JpcHRpb24gPSBudWxscHRyOwotfQotCi12b2lk
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldFBhdXNlZChib29sIHZhbHVl
KQotewotICAgIG1fcGF1c2VkID0gdmFsdWU7Ci0gICAgaWYgKG1fZGF0YVNvdXJjZSkKLSAgICAg
ICAgbV9kYXRhU291cmNlLT5zZXRQYXVzZWQodmFsdWUpOworICAgIG1faXNBdWRpb1VuaXRTdGFy
dGVkID0gZmFsc2U7CiB9CiAKIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYTo6Y3JlYXRlQXVkaW9Vbml0KENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgb3V0cHV0RGVzY3JpcHRpb24pCkBAIC0xODcsMTkgKzIwMCwxMSBAQCB2b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGlt
ZSYgc2FtcGxlVGltZQogICAgIH0KIAogICAgIG1fZGF0YVNvdXJjZS0+cHVzaFNhbXBsZXMoc2Ft
cGxlVGltZSwgYXVkaW9EYXRhLCBzYW1wbGVDb3VudCk7Ci0KLSAgICBpZiAoIW1faXNBdWRpb1Vu
aXRTdGFydGVkKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9PdXRwdXRVbml0U3Rh
cnQobV9yZW1vdGVJT1VuaXQpKSB7Ci0gICAgICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklF
UiwgIkF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCwgZXJyb3IgPSAiLCBlcnJvciwgIiAoIiwg
KGNvbnN0IGNoYXIqKSZlcnJvciwgIikiKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICBtX2lzQXVkaW9Vbml0U3RhcnRlZCA9IHRydWU7Ci0gICAgfQogfQogCiBPU1N0
YXR1cyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpyZW5kZXIoVUludDMyIHNh
bXBsZUNvdW50LCBBdWRpb0J1ZmZlckxpc3QmIGlvRGF0YSwgVUludDMyIC8qaW5CdXNOdW1iZXIq
LywgY29uc3QgQXVkaW9UaW1lU3RhbXAmIHRpbWVTdGFtcCwgQXVkaW9Vbml0UmVuZGVyQWN0aW9u
RmxhZ3MmIGFjdGlvbkZsYWdzKQogewotICAgIGlmIChpc011dGVkKCkgfHwgbV9wYXVzZWQgfHwg
IW1fZGF0YVNvdXJjZSkgeworICAgIGlmIChpc011dGVkKCkgfHwgIW1fZGF0YVNvdXJjZSkgewog
ICAgICAgICBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6Onplcm9BQkwoaW9EYXRhLCBzdGF0aWNfY2Fz
dDxzaXplX3Q+KHNhbXBsZUNvdW50ICogbV9vdXRwdXREZXNjcmlwdGlvbi0+Ynl0ZXNQZXJGcmFt
ZSgpKSk7CiAgICAgICAgIGFjdGlvbkZsYWdzID0ga0F1ZGlvVW5pdFJlbmRlckFjdGlvbl9PdXRw
dXRJc1NpbGVuY2U7CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
Q29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKaW5kZXggYTllNTQ2MWNiMDI4ZGZjMWRmZDJl
OTRlM2YzYzZkOGQ4YjVjYWU0NC4uM2QyMTM3NWZmNDQ1YTVkMjdhODU0N2EzMzBjZjVjZWJhYWMz
ZDIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJD
b2NvYS5oCkBAIC00OCw5ICs0OCw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgLy8gQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIKICAgICB2b2lkIHB1c2hTYW1wbGVzKGNvbnN0IFdURjo6
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0KCkgZmluYWw7CiAgICAg
dm9pZCBzdG9wKCkgZmluYWw7CiAgICAgdm9pZCBjbGVhcigpIGZpbmFsOwotICAgIHZvaWQgc2V0
UGF1c2VkKGJvb2wpIGZpbmFsOwogCiAgICAgc3RhdGljIE9TU3RhdHVzIGlucHV0UHJvYyh2b2lk
KiwgQXVkaW9Vbml0UmVuZGVyQWN0aW9uRmxhZ3MqLCBjb25zdCBBdWRpb1RpbWVTdGFtcCosIFVJ
bnQzMiBpbkJ1c051bWJlciwgVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3Qq
KTsKICAgICBPU1N0YXR1cyByZW5kZXIoVUludDMyIHNhbXBsZUNvdW50LCBBdWRpb0J1ZmZlckxp
c3QmLCBVSW50MzIgaW5CdXNOdW1iZXIsIGNvbnN0IEF1ZGlvVGltZVN0YW1wJiwgQXVkaW9Vbml0
UmVuZGVyQWN0aW9uRmxhZ3MmKTsKQEAgLTY1LDcgKzY1LDYgQEAgcHJpdmF0ZToKICAgICAvLyBD
cm9zcyB0aHJlYWQgbWVtYmVycwogICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1f
ZGF0YVNvdXJjZTsKICAgICBib29sIG1faXNBdWRpb1VuaXRTdGFydGVkIHsgZmFsc2UgfTsKLSAg
ICBib29sIG1fcGF1c2VkIHsgZmFsc2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBlZGZiNmUxZTA1ZTU2NDAwOGI3ZDU3
YTg3NDUzNzhjNDNkNjZjZjk2Li4yNGNhZTVmNzgxODg1OGQ3ZTg4Nzg3Y2RlOTM4MmEyNjRlODVj
MDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0xOSw2ICsxOSw4IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBs
ZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHku
bWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3
b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGRmYmMwZWZl
NmI4NDcyNmY5NmM4OTgyOGNkODNkMGVkNzU5MDVhMDYuLjNjZjM1OGFkNmJhZmRiOTExOWEzYjRm
YWJlOWJmMWEyMThhNTRmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdApAQCAtMTIwLDYgKzEyMCwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2lu
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBlMjkwOTMwOTdjZDliZGViMzQ1YTE5YTVkMzdmZTU3YTU0MGRlYjcwLi5mNjIwZTZjZGI5OTU0
YjI5NzAxOGFlZTJiODU5YzFkMWQzYmFkMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0xNDAsNiArMTQwLDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIFwKICAgICBQbHVnaW5Qcm9jZXNzUHJveHkgXAogICAgIFBs
dWdpblByb3h5IFwKKyAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXIgXAorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyIFwKICAgICBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5IFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRl
eCA2MjBiNDFmMjhkNjY3NmEzZGUxN2Y0NzZiMmRmMzg4ZmZmNjQ3NzBkLi5kMzlkMDdjYTNiMzA0
OWMyZjA0MDQ5MDc0OTgzMmRkMDFkMjNhMzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zNiw2ICszNiw5
IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHkuaCIKICNpbmNsdWRlICJMaWJXZWJS
VENDb2RlY3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIgorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtMTQ4LDYgKzE1MSwxNiBAQCBS
ZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlciYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVk
aWFSZWNvcmRlck1hbmFnZXIoKQogCiAgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyOwogfQorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphdWRp
b1RyYWNrUmVuZGVyZXJNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fYXVkaW9UcmFja1JlbmRlcmVy
TWFuYWdlcikKKyAgICAgICAgbV9hdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyID0gbWFrZVVuaXF1
ZTxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+KCk7CisKKyAgICBy
ZXR1cm4gKm1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcjsKK30KKyNlbmRpZgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKQEAgLTE4Miw2ICsxOTUsMTYg
QEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkKICAgICAgICAgbWVkaWFSZWNvcmRlck1hbmFnZXIo
KS5kaWRSZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShWSURFT19UUkFDSykKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0g
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGF1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXIo
KS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2Vy
KCkuZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYm
IFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaAppbmRleCBmNDg1OTY0ZDQ2YzUyZTMzOGQyYWJlNGY3NjVkZGNiNWE5NGEwNzkwLi5j
YzIxMTBiNWZhMjE5NDVjNmM0Mzk4OGNjODkxNWY5YzU4NTFmNjllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQw
LDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFz
cyBMaWJXZWJSVENDb2RlY3NQcm94eTsKK2NsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Owog
Y2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcjsKQEAgLTczLDYgKzc0LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NP
QSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5JiB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CiAgICAgUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXImIG1lZGlhUmVjb3JkZXJNYW5hZ2VyKCk7CisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciYgYXVk
aW9UcmFja1JlbmRlcmVyTWFuYWdlcigpOworI2VuZGlmCiAjZW5kaWYKIAogICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50CkBAIC05Miw2ICs5Niw5IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI+IG1fcmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+
IG1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcjsKKyNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJU
Q0NvZGVjc1Byb3h5PiBtX2xpYldlYlJUQ0NvZGVjc1Byb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjdjMjdkNzVlNDJkODNhMzdm
YjI4OGVhNWY3NTc5MTJmMGRjMjVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAK
QEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIKKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitzdGF0aWMgY29uc3Qg
dm9pZCogbmV4dExvZ0lkZW50aWZpZXIoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBsb2dJZGVu
dGlmaWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIoKTsKKyAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsKK30KKworc3RhdGlj
IFJlZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2VyKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8UmVmUHRyPExvZ2dlcj4+IGxvZ2dlcjsKKyAgICByZXR1cm4gbG9nZ2VyOworfQorI2VuZGlm
CisKK1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcigpCisgICAgOiBtX3JlbmRlcmVyKFdlYkNvcmU6OkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUoKSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtl
VW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZT4obnVsbHB0cikpKQoreworICAgIEFTU0VSVChtX3JlbmRlcmVyKTsKKworI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAorICAgIGlmICghbnVsbExvZ2dlcigpLmdldCgpKSB7CisgICAgICAgIG51
bGxMb2dnZXIoKSA9IExvZ2dlcjo6Y3JlYXRlKHRoaXMpOworICAgICAgICBudWxsTG9nZ2VyKCkt
PnNldEVuYWJsZWQodGhpcywgZmFsc2UpOworICAgIH0KKyAgICBtX3JlbmRlcmVyLT5zZXRMb2dn
ZXIoKm51bGxMb2dnZXIoKSwgbmV4dExvZ0lkZW50aWZpZXIoKSk7CisjZW5kaWYKK30KKworUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6On5SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcigpCit7CisgICAgbV9yZW5kZXJlci0+Y2xlYXIoKTsKK30KKworU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpz
dG9yYWdlKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0YXJ0KCkKK3sKKyAgICBtX3JlbmRlcmVyLT5zdGFydCgp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9wKCkK
K3sKKyAgICBtX3JlbmRlcmVyLT5zdG9wKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXI6OmNsZWFyKCkKK3sKKyAgICBtX3JlbmRlcmVyLT5jbGVhcigpOwor
fQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRNdXRlZChi
b29sIHZhbHVlKQoreworICAgIG1fcmVuZGVyZXItPnNldE11dGVkKHZhbHVlKTsKK30KKwordm9p
ZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0Vm9sdW1lKGZsb2F0IHZh
bHVlKQoreworICAgIG1fcmVuZGVyZXItPnNldFZvbHVtZSh2YWx1ZSk7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFu
Z2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJh
bWVzKQoreworICAgIEFTU0VSVChtX3JpbmdCdWZmZXIpOworICAgIGlmICghbV9yaW5nQnVmZmVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisK
KyAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxv
Y2F0ZSgpOworICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBz
dG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6
OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShXVEZNb3Zl
KG1lbW9yeSkpOworICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVlKTsKKworICAgIG1fcmlu
Z0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9p
ZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3Rh
cnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgQVNTRVJUKG1fcmluZ0J1ZmZlcik7
CisgICAgaWYgKCFtX3JpbmdCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmluZ0J1
ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKworICAg
IFdlYkF1ZGlvQnVmZmVyTGlzdCBhdWRpb0RhdGEobV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFt
ZXMpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2goYXVkaW9EYXRhLmxpc3QoKSwgbnVtYmVyT2ZG
cmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworCisgICAgbV9yZW5kZXJlci0+cHVzaFNhbXBsZXMo
dGltZSwgYXVkaW9EYXRhLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjA4YTQwZDQ4ZTc2MTAzNjZmNWVjZjRlNGU4ZTRiMzIzNTU3NDZmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9NZWRp
YVRpbWUuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGF0
YVJlZmVyZW5jZTsKK2NsYXNzIERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOworY2xhc3MgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uOworY2xhc3MgQ0FSaW5nQnVmZmVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlOworCitjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBm
aW5hbCA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyKCk7CisgICAgflJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCk7CisKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IGZpbmFsOworCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9p
ZCBzdGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIHZvaWQgY2xlYXIoKTsKKyAgICB2b2lk
IHNldE11dGVkKGJvb2wpOworICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKKyAgICB2b2lkIGF1
ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29u
c3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1l
KTsKKworICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCk7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IG1fcmVu
ZGVyZXI7CisKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlw
dGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdC
dWZmZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjliZmVjYzI4NWY2NDQ1MWU5NTlkZTY1NWNkMjI1MDEyYmZiNWFk
YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyIE5vdFJlZkNvdW50ZWQgeworICAgIFN0YXJ0KCkKKyAgICBTdG9wKCkK
KyAgICBDbGVhcigpCisKKyAgICBTZXRNdXRlZChib29sIHZhbHVlKQorICAgIFNldFZvbHVtZShm
bG9hdCB2YWx1ZSkKKworICAgIEF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKFdlYktpdDo6U2hh
cmVkTWVtb3J5OjpIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICBBdWRp
b1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
LCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDY4MzNjODU3ZGU2MWJmNThiMWYwZWNiMjM0YzY2MWYyNDBiOTIzMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OlJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcigpID0gZGVmYXVsdDsKKworUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAo
YXV0byogcmVuZGVyZXIgPSBtX3JlbmRlcmVycy5nZXQobWFrZU9iamVjdElkZW50aWZpZXI8QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5h
dGlvbklEKCkpKSkKKyAgICAgICAgcmVuZGVyZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlcjo6Y3JlYXRlUmVuZGVyZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX3JlbmRlcmVycy5jb250YWlu
cyhpZGVudGlmaWVyKSk7CisgICAgbV9yZW5kZXJlcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VVbmlx
dWU8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+KCkpOworfQorCit2b2lkIFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6cmVsZWFzZVJlbmRlcmVy
KEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIEFTU0VSVChtX3JlbmRlcmVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9yZW5k
ZXJlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlZGU1YWVhMDA0OTY3Y2MwMjExYWE0MTMy
ZDA1Yjc5OTJiMWRiMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNl
IElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOwor
CitjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIgZmluYWwg
OiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXIoKTsKKyAgICB+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
KCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVSZW5kZXJlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9j
ZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7
IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6Cisg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlUmVu
ZGVyZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyKTsKKyAgICB2b2lk
IHJlbGVhc2VSZW5kZXJlcihBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIp
OworCisgICAgSGFzaE1hcDxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4+IG1f
cmVuZGVyZXJzOworfTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTU2MDIxZGU5NGU3NGVkOTAyMzg0
NTE0NmE0YjU1ZjQ4MGI5MjU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMg
LT4gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyIE5vdFJlZkNvdW50
ZWQgeworICAgIENyZWF0ZVJlbmRlcmVyKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJZGVudGlmaWVyIGlkKQorICAgIFJlbGVhc2VSZW5kZXJlcihXZWJLaXQ6OkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllciBpZCkKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA3ZmQzM2UwZWY5ZDJkNzZmMjI2
NDBhYjI4NDBhM2JmMzM4MTMyZjE4Li43YzM1OGRlMDFmYTRiMDEzMjYzYzdjYzlmNmU0ODg0N2Yz
MDBiMjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIx
OCw2ICsyMTgsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgp
OgogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCcsCisgICAgICAgICdXZWJLaXQ6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6
OkxheWVySG9zdGluZ0NvbnRleHRJRCcsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRl
bnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA3NjE3YzJlMTdlZGQ0NzgwNGY1ZGY2ODgzMWNjYzMy
ZDhmODZjMzRiLi5hNmIyYmI5M2Q3MmUwZjhmMjkyZDYyNzg4YTZjY2ZkNGEzNDQ3Yjk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKQEAgLTI0LDYgKzI0LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHku
Y3BwCkBAIC01MTksNiArNTIxLDcgQEAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5j
cHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKIFdlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCitXZWJQcm9jZXNzL0dQ
VS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCiAKIFdlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzk0YzY3MDQ0
NWZmZDE3MmZlMDJmMTU2ZDYwZTVmMTFlZmU5N2Q4NS4uZDdkYmQ0ZGJlZmNhNjU4OGJlZjI2ZTdm
OGMyOGU0OTJmMDFmYWMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjM5LDYgKzYzOSw4
IEBAIEdQVVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIEdQVVByb2Nlc3NNZXNzYWdl
UmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExp
YldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ1
MjQ2Zjk2MzUwODg0NjlkM2YyYzliYmE3Y2RlMjQ3NDU1OGE3ZmYuLjQ2ODIwZGE1MWMwZmY2NDdh
NzM1OWIzMWI1ZjIxNjdmNjRhMzRiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM3Niw2ICszMzc2LDEyIEBACiAJCTQxRDEyOUQ5
MUYzRDEwMTQwMEQxNUU0NyAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MUQ1QzZEODIzOEVCMjBEMDBCOUIzQ0IgLyogU2VydmljZVdvcmtlclNvZnRVcGRhdGVM
b2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclNv
ZnRVcGRhdGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFENUM2RDky
MzhFQjIwRTAwQjlCM0NCIC8qIFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRl
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFENjQ1NTIyM0NDQjky
MTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmlu
OyBwYXRoID0gR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNDFENjQ1
NTMyM0NDQjkyMTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg7
IHBhdGggPSBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTQxRDY0NTU0MjNDQ0I5MjIw
MDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA7IHBh
dGggPSBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNDFENjQ1NTUyM0NDQjk2OTAw
NDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxRDY0NTU2MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFENjQ1NTcyM0NDQjk2OTAwNDg2RTBFIC8qIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFEQzQ1OTQxRTNENkUxRTAwQjEx
RjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrUlRDUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDFEQzQ1OTUxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDUHJvdmlkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURDNDU5ODFFM0Q2RUQ2MDBCMTFGNTEgLyog
TmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5l
dHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTMzOTYsNiArMzQwMiw5IEBACiAJCTQxRkJFODIyMjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3
b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MUZCRTgyMzIwNkRBNzlDMDAwRjA3NDEgLyogTmV0d29ya0NvbnRlbnRSdWxl
TGlzdE1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29ya0Nv
bnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxRkJFODI0MjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3Jr
Q29udGVudFJ1bGVMaXN0TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxRkNENkFEMjNDQ0MyNjAwMEM2MjU2NyAvKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZBRTIzQ0ND
MjYxMDBDNjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZBRjIzQ0NDMjYxMDBD
NjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUwQUVCRjFEQzNG
QUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkTWVtb3J5Q29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NDU5OTg0MTIyODMzRTYwMDBFNjEzNzMgLyogU3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDlEOTBEODIxRkQ2M0ZFMDBGNjc3
QzAgLyogTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzE2OCw2ICs3MTc3LDkgQEAKIAkJNDE3MjE5ODgy
M0I2MTI2MTAwQUU1Njg2IC8qIHdlYnJ0YyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNDFGQ0Q2QUUyM0NDQzI2MTAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmNwcCAqLywKKwkJCQk0MUZDRDZBRDIzQ0NDMjYwMDBDNjI1Njcg
LyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCAqLywKKwkJCQk0MUZDRDZBRjIzQ0ND
MjYxMDBDNjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmgg
Ki8sCiAJCQkJNDE3MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5jcHAg
Ki8sCiAJCQkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5oICov
LAogCQkJCTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2Fn
ZXMuaW4gKi8sCkBAIC03MTg4LDYgKzcyMDAsMTIgQEAKIAkJCQk0MUUwQTdDNjIzQjYzOTc4MDA1
NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLywKIAkJCQk0MUUwQTdDNzIzQjYzOTc5
MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFF
MEE3QzgyM0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICovLAorCQkJ
CTQxRDY0NTU0MjNDQ0I5MjIwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5jcHAgKi8sCisJCQkJNDFENjQ1NTMyM0NDQjkyMTAwNDg2RTBFIC8qIFJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8sCisJCQkJNDFENjQ1NTIyM0NDQjkyMTAw
NDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmlu
ICovLAorCQkJCTQxRDY0NTU2MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwICovLAorCQkJCTQxRDY0NTU3MjNDQ0I5NjkwMDQ4
NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaCAqLywK
KwkJCQk0MUQ2NDU1NTIzQ0NCOTY5MDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTQxNzZFODlEMjNDMzc2RDUw
MDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCAqLywKIAkJCQk0MTc2RTg5ODIzQzM2
Njc3MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5oICovLAogCQkJCTQxNzZFODlDMjND
Mzc0NzkwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDdkNWQzNzczZTBmNGJiNTMyZTZjYzYzYzE0
ZDkwMjljZWVmYWY1YTkuLjIxM2JhNmQ3YjlmZGFlYmMzNmJkYzlkNDg2YmIxMGYxNTUzN2UzYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXll
ck1JTUVUeXBlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNz
YWdlcy5oIgpAQCAtMzQyLDYgKzM0NCw5IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
Ojp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgfTsKIAog
ICAgIFJlbW90ZU1lZGlhUGxheWVyU3VwcG9ydDo6c2V0UmVnaXN0ZXJSZW1vdGVQbGF5ZXJDYWxs
YmFjayhzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSA/IFdURk1vdmUocmVnaXN0ZXJF
bmdpbmUpIDogUmVtb3RlTWVkaWFQbGF5ZXJTdXBwb3J0OjpSZWdpc3RlclJlbW90ZVBsYXllckNh
bGxiYWNrKCkpOworCisvLyAgICBpZiAoc2V0dGluZ3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkp
CisgICAgICAgIFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRDcmVh
dG9yKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSk7CiB9CiAK
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVDYWNoZWRTdGF0ZShNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYg
c3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmEzMzMwZmI2Mzk5MzkyODBjZWQ4ZmRmYjQzZjVmMmEyZjRjODNjOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmNwcApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5n
QnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcj4gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSgp
Cit7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcj4obmV3IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyIHsgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkgfSk7Cit9
CisKK0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAsIG1faWRlbnRpZmllcihBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgLCBtX3JpbmdC
dWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6Q3Jl
YXRlUmVuZGVyZXIgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKK0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyOjp+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIoKQoreworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNYW5hZ2VyOjpSZWxlYXNlUmVuZGVyZXIgeyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisK
K3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0YXJ0KCkKK3sKKyAgICBtX2lz
UGxheWluZyA9IHRydWU7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6U3RhcnQgeyB9LCBtX2lkZW50aWZpZXIpOwor
fQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9wKCkKK3sKKyAgICBt
X2lzUGxheWluZyA9IGZhbHNlOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OlN0b3AgeyB9LCBtX2lkZW50aWZpZXIp
OworfQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjbGVhcigpCit7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6Q2xlYXIgeyB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRNdXRlZChib29sIHZhbHVlKQoreworICAgIFdlYkNv
cmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRNdXRlZCh2YWx1ZSk7CisgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6U2V0TXV0ZWQgeyB2YWx1ZSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRWb2x1bWUoZmxvYXQgdmFsdWUpCit7Cisg
ICAgV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldFZvbHVtZSh2YWx1
ZSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjo6U2V0Vm9sdW1lIHsgdmFsdWUgfSwgbV9pZGVudGlmaWVyKTsKK30K
Kwordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6cHVzaFNhbXBsZXMoY29uc3Qg
TWVkaWFUaW1lJiB0aW1lLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9E
YXRhLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
c2l6ZV90IG51bWJlck9mRnJhbWVzKQoreworICAgIGlmICghbV9pc1BsYXlpbmcpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CisgICAg
ICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBXZWJD
b3JlOjpQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAg
ICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwor
CisgICAgICAgIC8vIEFsbG9jYXRlIGEgcmluZyBidWZmZXIgbGFyZ2UgZW5vdWdoIHRvIGNvbnRh
aW4gMiBzZWNvbmRzIG9mIGF1ZGlvLgorICAgICAgICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNj
cmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAgICAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRl
KG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRpb24oKSwgbV9udW1iZXJPZkZyYW1lcyk7Cisg
ICAgfQorCisgICAgQVNTRVJUKGlzPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9E
YXRhKSk7CisgICAgbV9yaW5nQnVmZmVyLT5zdG9yZShkb3duY2FzdDxXZWJDb3JlOjpXZWJBdWRp
b0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1l
VmFsdWUoKSk7CisgICAgdWludDY0X3Qgc3RhcnRGcmFtZTsKKyAgICB1aW50NjRfdCBlbmRGcmFt
ZTsKKyAgICBtX3JpbmdCdWZmZXItPmdldEN1cnJlbnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBl
bmRGcmFtZSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9TYW1wbGVzQXZhaWxhYmxlIHsgdGltZSwgbnVt
YmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZyYW1lIH0sIG1faWRlbnRpZmllcik7Cit9CisK
K3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJl
ZE1lbW9yeSogc3RvcmFnZSkKK3sKKyAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7Cisg
ICAgaWYgKHN0b3JhZ2UpCisgICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlvU2Ft
cGxlc1N0b3JhZ2VDaGFuZ2VkIHsgaGFuZGxlLCBtX2Rlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4obV9udW1iZXJPZkZyYW1lcykgfSwgbV9pZGVudGlmaWVyKTsKK30KKworfQorI2Vu
ZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM3YjM3YTc4ZTFlNzViNWE2ZmNhMGNlYmVhZjIwZGY0MWRhZDZk
NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNpZiBFTkFC
TEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CisKK25hbWVzcGFjZSBJ
UEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLCBwdWJsaWMgU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U6OkNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcj4gY3JlYXRlKCk7CisgICAgfkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCk7CisK
KyAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOwor
CisgICAgLy8gU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OkNsaWVudAorICAgIHZvaWQgc3RvcmFn
ZUNoYW5nZWQoU2hhcmVkTWVtb3J5Kik7CisKKyAgICAvLyBXZWJDb3JlOjpBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcgorICAgIHZvaWQgc3RhcnQoKSBmaW5hbDsKKyAgICB2b2lkIHN0b3Ao
KSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyKCkgZmluYWw7CisgICAgdm9pZCBzZXRNdXRlZChib29s
KSBmaW5hbDsKKyAgICB2b2lkIHNldFZvbHVtZShmbG9hdCkgZmluYWw7CisgICAgdm9pZCBwdXNo
U2FtcGxlcyhjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFs
OworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CisgICAgV2Vi
Q29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OworICAgIGlu
dDY0X3QgbV9udW1iZXJPZkZyYW1lcyB7IDAgfTsKKyAgICBib29sIG1faXNQbGF5aW5nIHsgZmFs
c2UgfTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNiODVhMzNlYzY0ZGYxODhmOTI2YTU1OGFlMGE4YjlmOGY2ZjVkYmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UgLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8d3Rm
L09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTU3N2ViOTdiYjhmNDA2OGFiMDZjNTNlMjJhOTVi
NDFlYTAxZjU1ZS4uMDc0ZjkxNDkyYzEyN2ZmOTEzY2E3YTliNTRhOTJlMzMxNzJhNWUyNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAxLTE0ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWVkaWFTdHJlYW0gYXVkaW8gdHJh
Y2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjE3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAy
MC0wMS0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTY3JvbGxiYXIgaGlkaW5nIG9uIGlPUyB2aWEgOjotd2Via2l0LXNjcm9sbGJhciB7IGRpc3Bs
YXk6IG5vbmUgfSBkb2Vzbid0IHdvcmsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2dwdS1wcm9j
ZXNzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDcyMGU2ZTM2MWMyZWExZTRiOTA4ZjBlMDkwNTcwMWM5YmFhOWVmYTEuLjk0
YzVmOGQzYzEwYWI1NjM2NDNlM2NlYjBlMWRjYTc4NWEzMmRjZDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvZ3B1
LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjI1LDcgKzIyNSw2IEBAIGFjY2Vzc2liaWxp
dHkvbWVkaWEtZWxlbWVudC5odG1sIFsgU2tpcCBdCiBmYXN0L2Jsb2NrL2Zsb2F0L2xpc3QtbWFy
a2VyLWlzLWZsb2F0LWNyYXNoLmh0bWwgWyBTa2lwIF0KIGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0
aW9uLXJlcGxhY2VkLWluLXRhYmxlLWRpc3BsYXktY3Jhc2guaHRtbCBbIFNraXAgXQogZmFzdC9t
ZWRpYWNhcHR1cmVmcm9tZWxlbWVudCBbIFNraXAgXQotZmFzdC9tZWRpYXN0cmVhbSBbIFNraXAg
XQogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbGVnYWN5Lmh0bWwgWyBTa2lwIF0KIGZ1
bGxzY3JlZW4vdmlkZW8tY29udHJvbHMtdGltZWxpbmUuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0
cy9hcHBjYWNoZS92aWRlby5odG1sIFsgU2tpcCBdCkBAIC0yMzYsNyArMjM1LDYgQEAgaHR0cC90
ZXN0cy9tZWRpYSBbIFNraXAgXQogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtbWVk
aWFrZXlzZXNzaW9uLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLW1lZGlhc3RyZWFtLmh0bWwgWyBTa2lwIF0KIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIgWyBT
a2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVh
bXMgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJl
LWZyb21lbGVtZW50L2lkbGhhcm5lc3MuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC5odG1s
IFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1y
ZWNvcmQvTWVkaWFSZWNvcmRlci1lcnJvci5odG1sIFsgU2tpcCBdCkBAIC0yNTMsNiArMjUxLDMg
QEAgaHR0cC90ZXN0cy93ZWJnbCBbIFNraXAgXQoganMvc2hhcmVkLWFycmF5LWJ1ZmZlci13ZWJn
bC5odG1sIFsgU2tpcCBdCiAKIHdlYmdwdSBbIFNraXAgXQotCi13ZWJydGMgWyBTa2lwIF0KLXBs
YXRmb3JtL21hYy93ZWJydGMgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387629</attachid>
            <date>2020-01-14 00:49:20 -0800</date>
            <delta_ts>2020-01-15 01:08:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206175-20200114094918.patch</filename>
            <type>text/plain</type>
            <size>61243</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1Y2QxZjI3OGY1YzRl
Y2YyNDBiOTVhNTBhYWEwMTgyNTU2YTcxMC4uNThlNzc0ODVhZDVmNzk1NjBlYmNmOTBlMjZjYmI1
MzI3YmMyYTA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAxLTE0ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gYXVkaW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjE3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IG1vZGVsIHRv
IHVzZSBzdGFydC9zdG9wIGluc3RlYWQgb2Ygc2V0UGF1c2VkLgorICAgICAgICBTaW1wbGlmeSBh
bmQgZml4IGlzc3VlIGluIGNvbXB1dGF0aW9uIG9mIHRoZSBtdXRlZCBzdGF0ZSBvZiB0aGUgcmVu
ZGVyZXIuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgcnVuIHdpdGggR1BVIHBy
b2Nlc3MgZW5hYmxlZCBhbmQgbWFudWFsIHRlc3RpbmcKKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpwbGF5SW50ZXJuYWwp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGF1c2Up
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckNvY29hOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpyZW5kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmg6CisKIDIw
MjAtMDEtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgU2Nyb2xsYmFyIGhpZGluZyBvbiBpT1MgdmlhIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNw
bGF5OiBub25lIH0gZG9lc24ndCB3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY5NzRhY2ZjZGUyNTA4YTc3NmM3
MzhiZDZlYjE4MzRiOTM4MzU2YjEuLmQyNDc0ZjRkMzU4YjM3YjVjZjU2ZWU3NTM0YTk5ZGVkZWI1
N2NhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjAtMDEtMTQgIHlvdWVubiBmYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBNZWRpYVN0
cmVhbSBhdWRpbyB0cmFjayByZW5kZXJpbmcgaW4gR1BVUHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTc1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGFuIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyIGF0IFdlYktpdCBsZXZlbCBieSBjcmVhdGluZyBhIHJlbW90ZSBy
ZW5kZXJlciBpbiBHUFVQcm9jZXNzIGFuZCBzZW5kaW5nIElQQyB0byBwYXNzCisgICAgICAgIGF1
ZGlvIGRhdGEgYXMgd2VsbCBhcyBvcmRlcnMgKHN0YXJ0L3N0b3Avc2V0TXV0ZWQpLgorCisgICAg
ICAgIEltcGxlbWVudCB0aGUgcmVtb3RlIHJlbmRlcmVyIHVzaW5nIFdlYkNvcmUgYXVkaW8gdHJh
Y2sgcmVuZGVyZXIuCisKKyAgICAgICAgRW5hYmxlIFdlYktpdCByZW1vdGUgcmVuZGVyZXIgRiBH
UFUgcHJvY2VzcyBmb3IgbWVkaWEgaXMgZW5hYmxlZC4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyKToKKyAg
ICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgor
ICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Om5leHRMb2dJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYktpdDo6bnVsbExvZ2dlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyOjp+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcmFnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
OjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXI6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6IEFkZGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpkaWRSZWNlaXZl
UmVuZGVyZXJNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6cmVsZWFzZVJlbmRl
cmVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9t
V2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6On5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYktpdDo6QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJL
aXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpwdXNoU2FtcGxlcyk6CisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oOiBBZGRlZC4KKwog
MjAyMC0wMS0xMyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OmNsZWFyQ2FjaGVzRm9yT3JpZ2luRnJvbURpc2sgQVNTRVJU
IGlzIGJ1Z2d5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAppbmRleCA4MDBh
OTMwYzg0NTVkMWEzMzZiODBlMDVkODZjOGY5OTY2N2ZjYjc2Li4xNDYyZTMyMmY5ZTkwYTg4ZWNh
OGUyOGE5OWUyZGE4NjdjYTJkYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwg
fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVh
bCB2b2lkIHNldFBhdXNlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhcigp
ID0gMDsKICAgICAvLyBNYXkgYmUgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCmluZGV4IDk3ZDllNjlkMTVmMDY0MjFh
YmY5NGQ0NDhjOGU4ODlkNDg2MDM1ZmIuLjJmNDhjMWFhYTUxOTNkMGM0ZDM5MWYwMzM0ZDk2N2Jh
ZmIwMWM3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCkBAIC03
Nyw3ICs3Nyw3IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGxheUludGVy
bmFsKCkKICAgICBtX2lzUGxheWluZyA9IHRydWU7CiAgICAgbV9hdXRvUGxheSA9IGZhbHNlOwog
Ci0gICAgbV9yZW5kZXJlci0+c2V0UGF1c2VkKGZhbHNlKTsKKyAgICBtX3JlbmRlcmVyLT5zdGFy
dCgpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBsYXkoKQpAQCAt
OTUsNyArOTUsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBhdXNlKCkK
ICAgICBtX2lzUGxheWluZyA9IGZhbHNlOwogICAgIG1fYXV0b1BsYXkgPSBmYWxzZTsKIAotICAg
IG1fcmVuZGVyZXItPnNldFBhdXNlZCh0cnVlKTsKKyAgICBtX3JlbmRlcmVyLT5zdG9wKCk7CiB9
CiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0Vm9sdW1lKGZsb2F0IHZv
bHVtZSkKQEAgLTExMSwxMSArMTExLDYgQEAgZmxvYXQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbTo6dm9sdW1lKCkgY29uc3QKIC8vIE1heSBnZXQgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0
aHJlYWQuCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYgc2FtcGxl
VGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKLSAgICBp
ZiAoIW1faXNQbGF5aW5nKSB7Ci0gICAgICAgIG1fcmVuZGVyZXItPnN0b3AoKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQogICAgIG1fcmVuZGVyZXItPnB1c2hTYW1wbGVzKHNhbXBsZVRpbWUs
IGF1ZGlvRGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKIAogICAgIGlmIChtX2F1dG9Q
bGF5ICYmICFtX2hhc1N0YXJ0ZWRBdXRvcGxheSkgewpAQCAtMTM5LDcgKzEzNCw3IEBAIHZvaWQg
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpCiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6
dXBkYXRlUmVuZGVyZXJNdXRlZFN0YXRlKCkKIHsKLSAgICBtX3JlbmRlcmVyLT5zZXRNdXRlZCht
X2lzUGxheWluZyAmJiAhc3RyZWFtVHJhY2soKS5tdXRlZCgpICYmICFzdHJlYW1UcmFjaygpLmVu
ZGVkKCkgJiYgc3RyZWFtVHJhY2soKS5lbmFibGVkKCkpOworICAgIG1fcmVuZGVyZXItPnNldE11
dGVkKHN0cmVhbVRyYWNrKCkubXV0ZWQoKSB8fCBzdHJlYW1UcmFjaygpLmVuZGVkKCkgfHwgIXN0
cmVhbVRyYWNrKCkuZW5hYmxlZCgpKTsKIH0KIAogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcAppbmRleCBlNzU0
NjFmNmQ1ZDhmNmI3ZTZhZjlmZDU2Y2MyNmY1ZmJkMzkyYmI1Li4xMDRkYmRjNWU5MmMwZmIyZGE3
Nzk5MWEzZjEwMzc0ODI5YzFlZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCkBAIC00MywxMSArNDMsMzAgQEAgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJD
b2NvYSgpID0gZGVmYXUKIAogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6fkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EoKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c3RhcnQoKQoreworICAgIGlmIChtX2Rh
dGFTb3VyY2UpCisgICAgICAgIG1fZGF0YVNvdXJjZS0+c2V0UGF1c2VkKGZhbHNlKTsKKworICAg
IGlmIChtX2lzQXVkaW9Vbml0U3RhcnRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1
dG8gZXJyb3IgPSBBdWRpb091dHB1dFVuaXRTdGFydChtX3JlbW90ZUlPVW5pdCkpIHsKKyAgICAg
ICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJBdWRpb091dHB1dFVuaXRTdGFydCBmYWlsZWQs
IGVycm9yID0gIiwgZXJyb3IsICIgKCIsIChjb25zdCBjaGFyKikmZXJyb3IsICIpIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgbV9pc0F1ZGlvVW5pdFN0YXJ0ZWQgPSB0cnVlOworfQor
CiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnN0b3AoKQogeworICAg
IGlmIChtX2RhdGFTb3VyY2UpCisgICAgICAgIG1fZGF0YVNvdXJjZS0+c2V0UGF1c2VkKHRydWUp
OworCiAgICAgaWYgKCFtX2lzQXVkaW9Vbml0U3RhcnRlZCkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgbV9pc0F1ZGlvVW5pdFN0YXJ0ZWQgPSBmYWxzZTsKICAgICBpZiAobV9yZW1vdGVJT1VuaXQp
CiAgICAgICAgIEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1vdGVJT1VuaXQpOwogfQpAQCAtNjYs
MTMgKzg1LDcgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpjbGVh
cigpCiAgICAgbV9kYXRhU291cmNlID0gbnVsbHB0cjsKICAgICBtX2lucHV0RGVzY3JpcHRpb24g
PSBudWxscHRyOwogICAgIG1fb3V0cHV0RGVzY3JpcHRpb24gPSBudWxscHRyOwotfQotCi12b2lk
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnNldFBhdXNlZChib29sIHZhbHVl
KQotewotICAgIG1fcGF1c2VkID0gdmFsdWU7Ci0gICAgaWYgKG1fZGF0YVNvdXJjZSkKLSAgICAg
ICAgbV9kYXRhU291cmNlLT5zZXRQYXVzZWQodmFsdWUpOworICAgIG1faXNBdWRpb1VuaXRTdGFy
dGVkID0gZmFsc2U7CiB9CiAKIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2UgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYTo6Y3JlYXRlQXVkaW9Vbml0KENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgb3V0cHV0RGVzY3JpcHRpb24pCkBAIC0xODcsMTkgKzIwMCwxMSBAQCB2b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGlt
ZSYgc2FtcGxlVGltZQogICAgIH0KIAogICAgIG1fZGF0YVNvdXJjZS0+cHVzaFNhbXBsZXMoc2Ft
cGxlVGltZSwgYXVkaW9EYXRhLCBzYW1wbGVDb3VudCk7Ci0KLSAgICBpZiAoIW1faXNBdWRpb1Vu
aXRTdGFydGVkKSB7Ci0gICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9PdXRwdXRVbml0U3Rh
cnQobV9yZW1vdGVJT1VuaXQpKSB7Ci0gICAgICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklF
UiwgIkF1ZGlvT3V0cHV0VW5pdFN0YXJ0IGZhaWxlZCwgZXJyb3IgPSAiLCBlcnJvciwgIiAoIiwg
KGNvbnN0IGNoYXIqKSZlcnJvciwgIikiKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICBtX2lzQXVkaW9Vbml0U3RhcnRlZCA9IHRydWU7Ci0gICAgfQogfQogCiBPU1N0
YXR1cyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpyZW5kZXIoVUludDMyIHNh
bXBsZUNvdW50LCBBdWRpb0J1ZmZlckxpc3QmIGlvRGF0YSwgVUludDMyIC8qaW5CdXNOdW1iZXIq
LywgY29uc3QgQXVkaW9UaW1lU3RhbXAmIHRpbWVTdGFtcCwgQXVkaW9Vbml0UmVuZGVyQWN0aW9u
RmxhZ3MmIGFjdGlvbkZsYWdzKQogewotICAgIGlmIChpc011dGVkKCkgfHwgbV9wYXVzZWQgfHwg
IW1fZGF0YVNvdXJjZSkgeworICAgIGlmIChpc011dGVkKCkgfHwgIW1fZGF0YVNvdXJjZSkgewog
ICAgICAgICBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6Onplcm9BQkwoaW9EYXRhLCBzdGF0aWNfY2Fz
dDxzaXplX3Q+KHNhbXBsZUNvdW50ICogbV9vdXRwdXREZXNjcmlwdGlvbi0+Ynl0ZXNQZXJGcmFt
ZSgpKSk7CiAgICAgICAgIGFjdGlvbkZsYWdzID0ga0F1ZGlvVW5pdFJlbmRlckFjdGlvbl9PdXRw
dXRJc1NpbGVuY2U7CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
Q29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKaW5kZXggYTllNTQ2MWNiMDI4ZGZjMWRmZDJl
OTRlM2YzYzZkOGQ4YjVjYWU0NC4uM2QyMTM3NWZmNDQ1YTVkMjdhODU0N2EzMzBjZjVjZWJhYWMz
ZDIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJD
b2NvYS5oCkBAIC00OCw5ICs0OCw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgLy8gQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIKICAgICB2b2lkIHB1c2hTYW1wbGVzKGNvbnN0IFdURjo6
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0KCkgZmluYWw7CiAgICAg
dm9pZCBzdG9wKCkgZmluYWw7CiAgICAgdm9pZCBjbGVhcigpIGZpbmFsOwotICAgIHZvaWQgc2V0
UGF1c2VkKGJvb2wpIGZpbmFsOwogCiAgICAgc3RhdGljIE9TU3RhdHVzIGlucHV0UHJvYyh2b2lk
KiwgQXVkaW9Vbml0UmVuZGVyQWN0aW9uRmxhZ3MqLCBjb25zdCBBdWRpb1RpbWVTdGFtcCosIFVJ
bnQzMiBpbkJ1c051bWJlciwgVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3Qq
KTsKICAgICBPU1N0YXR1cyByZW5kZXIoVUludDMyIHNhbXBsZUNvdW50LCBBdWRpb0J1ZmZlckxp
c3QmLCBVSW50MzIgaW5CdXNOdW1iZXIsIGNvbnN0IEF1ZGlvVGltZVN0YW1wJiwgQXVkaW9Vbml0
UmVuZGVyQWN0aW9uRmxhZ3MmKTsKQEAgLTY1LDcgKzY1LDYgQEAgcHJpdmF0ZToKICAgICAvLyBD
cm9zcyB0aHJlYWQgbWVtYmVycwogICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1f
ZGF0YVNvdXJjZTsKICAgICBib29sIG1faXNBdWRpb1VuaXRTdGFydGVkIHsgZmFsc2UgfTsKLSAg
ICBib29sIG1fcGF1c2VkIHsgZmFsc2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBlZGZiNmUxZTA1ZTU2NDAwOGI3ZDU3
YTg3NDUzNzhjNDNkNjZjZjk2Li4yNGNhZTVmNzgxODg1OGQ3ZTg4Nzg3Y2RlOTM4MmEyNjRlODVj
MDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0xOSw2ICsxOSw4IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBs
ZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHku
bWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3
b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGRmYmMwZWZl
NmI4NDcyNmY5NmM4OTgyOGNkODNkMGVkNzU5MDVhMDYuLjNjZjM1OGFkNmJhZmRiOTExOWEzYjRm
YWJlOWJmMWEyMThhNTRmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdApAQCAtMTIwLDYgKzEyMCwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2lu
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBlMjkwOTMwOTdjZDliZGViMzQ1YTE5YTVkMzdmZTU3YTU0MGRlYjcwLi5mNjIwZTZjZGI5OTU0
YjI5NzAxOGFlZTJiODU5YzFkMWQzYmFkMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0xNDAsNiArMTQwLDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIFwKICAgICBQbHVnaW5Qcm9jZXNzUHJveHkgXAogICAgIFBs
dWdpblByb3h5IFwKKyAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXIgXAorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyIFwKICAgICBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5IFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRl
eCA2MjBiNDFmMjhkNjY3NmEzZGUxN2Y0NzZiMmRmMzg4ZmZmNjQ3NzBkLi5kMzlkMDdjYTNiMzA0
OWMyZjA0MDQ5MDc0OTgzMmRkMDFkMjNhMzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zNiw2ICszNiw5
IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHkuaCIKICNpbmNsdWRlICJMaWJXZWJS
VENDb2RlY3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIgorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtMTQ4LDYgKzE1MSwxNiBAQCBS
ZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlciYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVk
aWFSZWNvcmRlck1hbmFnZXIoKQogCiAgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyOwogfQorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphdWRp
b1RyYWNrUmVuZGVyZXJNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fYXVkaW9UcmFja1JlbmRlcmVy
TWFuYWdlcikKKyAgICAgICAgbV9hdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyID0gbWFrZVVuaXF1
ZTxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+KCk7CisKKyAgICBy
ZXR1cm4gKm1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcjsKK30KKyNlbmRpZgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKQEAgLTE4Miw2ICsxOTUsMTYg
QEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkKICAgICAgICAgbWVkaWFSZWNvcmRlck1hbmFnZXIo
KS5kaWRSZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShWSURFT19UUkFDSykKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0g
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGF1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXIo
KS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBhdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2Vy
KCkuZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYm
IFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaAppbmRleCBmNDg1OTY0ZDQ2YzUyZTMzOGQyYWJlNGY3NjVkZGNiNWE5NGEwNzkwLi5j
YzIxMTBiNWZhMjE5NDVjNmM0Mzk4OGNjODkxNWY5YzU4NTFmNjllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQw
LDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFz
cyBMaWJXZWJSVENDb2RlY3NQcm94eTsKK2NsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Owog
Y2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcjsKQEAgLTczLDYgKzc0LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NP
QSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5JiB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCk7CiAgICAgUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXImIG1lZGlhUmVjb3JkZXJNYW5hZ2VyKCk7CisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciYgYXVk
aW9UcmFja1JlbmRlcmVyTWFuYWdlcigpOworI2VuZGlmCiAjZW5kaWYKIAogICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50CkBAIC05Miw2ICs5Niw5IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI+IG1fcmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+
IG1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcjsKKyNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJU
Q0NvZGVjc1Byb3h5PiBtX2xpYldlYlJUQ0NvZGVjc1Byb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjdjMjdkNzVlNDJkODNhMzdm
YjI4OGVhNWY3NTc5MTJmMGRjMjVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAK
QEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIKKworI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitzdGF0aWMgY29uc3Qg
dm9pZCogbmV4dExvZ0lkZW50aWZpZXIoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBsb2dJZGVu
dGlmaWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIoKTsKKyAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsKK30KKworc3RhdGlj
IFJlZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2VyKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8UmVmUHRyPExvZ2dlcj4+IGxvZ2dlcjsKKyAgICByZXR1cm4gbG9nZ2VyOworfQorI2VuZGlm
CisKK1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcigpCisgICAgOiBtX3JlbmRlcmVyKFdlYkNvcmU6OkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUoKSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtl
VW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZT4obnVsbHB0cikpKQoreworICAgIEFTU0VSVChtX3JlbmRlcmVyKTsKKworI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAorICAgIGlmICghbnVsbExvZ2dlcigpLmdldCgpKSB7CisgICAgICAgIG51
bGxMb2dnZXIoKSA9IExvZ2dlcjo6Y3JlYXRlKHRoaXMpOworICAgICAgICBudWxsTG9nZ2VyKCkt
PnNldEVuYWJsZWQodGhpcywgZmFsc2UpOworICAgIH0KKyAgICBtX3JlbmRlcmVyLT5zZXRMb2dn
ZXIoKm51bGxMb2dnZXIoKSwgbmV4dExvZ0lkZW50aWZpZXIoKSk7CisjZW5kaWYKK30KKworUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6On5SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcigpCit7CisgICAgbV9yZW5kZXJlci0+Y2xlYXIoKTsKK30KKworU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UmIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpz
dG9yYWdlKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0YXJ0KCkKK3sKKyAgICBtX3JlbmRlcmVyLT5zdGFydCgp
OworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9wKCkK
K3sKKyAgICBtX3JlbmRlcmVyLT5zdG9wKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXI6OmNsZWFyKCkKK3sKKyAgICBtX3JlbmRlcmVyLT5jbGVhcigpOwor
fQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRNdXRlZChi
b29sIHZhbHVlKQoreworICAgIG1fcmVuZGVyZXItPnNldE11dGVkKHZhbHVlKTsKK30KKwordm9p
ZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0Vm9sdW1lKGZsb2F0IHZh
bHVlKQoreworICAgIG1fcmVuZGVyZXItPnNldFZvbHVtZSh2YWx1ZSk7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFu
Z2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJh
bWVzKQoreworICAgIEFTU0VSVChtX3JpbmdCdWZmZXIpOworICAgIGlmICghbV9yaW5nQnVmZmVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisK
KyAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxv
Y2F0ZSgpOworICAgICAgICBzdG9yYWdlKCkuc2V0UmVhZE9ubHkoZmFsc2UpOworICAgICAgICBz
dG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gbWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6
OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShXVEZNb3Zl
KG1lbW9yeSkpOworICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVlKTsKKworICAgIG1fcmlu
Z0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKK30KKwordm9p
ZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWludDY0X3Qgc3Rh
cnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7CisgICAgQVNTRVJUKG1fcmluZ0J1ZmZlcik7
CisgICAgaWYgKCFtX3JpbmdCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmluZ0J1
ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKKworICAg
IFdlYkF1ZGlvQnVmZmVyTGlzdCBhdWRpb0RhdGEobV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFt
ZXMpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2goYXVkaW9EYXRhLmxpc3QoKSwgbnVtYmVyT2ZG
cmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworCisgICAgbV9yZW5kZXJlci0+cHVzaFNhbXBsZXMo
dGltZSwgYXVkaW9EYXRhLCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjA4YTQwZDQ4ZTc2MTAzNjZmNWVjZjRlNGU4ZTRiMzIzNTU3NDZmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9NZWRp
YVRpbWUuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGF0
YVJlZmVyZW5jZTsKK2NsYXNzIERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOworY2xhc3MgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uOworY2xhc3MgQ0FSaW5nQnVmZmVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlOworCitjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBm
aW5hbCA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyKCk7CisgICAgflJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCk7CisKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IGZpbmFsOworCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9p
ZCBzdGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIHZvaWQgY2xlYXIoKTsKKyAgICB2b2lk
IHNldE11dGVkKGJvb2wpOworICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKKyAgICB2b2lkIGF1
ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29u
c3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1l
KTsKKworICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCk7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IG1fcmVu
ZGVyZXI7CisKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlw
dGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdC
dWZmZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjliZmVjYzI4NWY2NDQ1MWU5NTlkZTY1NWNkMjI1MDEyYmZiNWFk
YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyIE5vdFJlZkNvdW50ZWQgeworICAgIFN0YXJ0KCkKKyAgICBTdG9wKCkK
KyAgICBDbGVhcigpCisKKyAgICBTZXRNdXRlZChib29sIHZhbHVlKQorICAgIFNldFZvbHVtZShm
bG9hdCB2YWx1ZSkKKworICAgIEF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKFdlYktpdDo6U2hh
cmVkTWVtb3J5OjpIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKKyAgICBBdWRp
b1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
LCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDY4MzNjODU3ZGU2MWJmNThiMWYwZWNiMjM0YzY2MWYyNDBiOTIzMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OlJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcigpID0gZGVmYXVsdDsKKworUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjp+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAo
YXV0byogcmVuZGVyZXIgPSBtX3JlbmRlcmVycy5nZXQobWFrZU9iamVjdElkZW50aWZpZXI8QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5h
dGlvbklEKCkpKSkKKyAgICAgICAgcmVuZGVyZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlcjo6Y3JlYXRlUmVuZGVyZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX3JlbmRlcmVycy5jb250YWlu
cyhpZGVudGlmaWVyKSk7CisgICAgbV9yZW5kZXJlcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VVbmlx
dWU8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+KCkpOworfQorCit2b2lkIFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6cmVsZWFzZVJlbmRlcmVy
KEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIEFTU0VSVChtX3JlbmRlcmVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9yZW5k
ZXJlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlZGU1YWVhMDA0OTY3Y2MwMjExYWE0MTMy
ZDA1Yjc5OTJiMWRiMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNl
IElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOwor
CitjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIgZmluYWwg
OiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXIoKTsKKyAgICB+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
KCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVSZW5kZXJlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9j
ZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7
IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6Cisg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlUmVu
ZGVyZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyKTsKKyAgICB2b2lk
IHJlbGVhc2VSZW5kZXJlcihBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIp
OworCisgICAgSGFzaE1hcDxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4+IG1f
cmVuZGVyZXJzOworfTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTU2MDIxZGU5NGU3NGVkOTAyMzg0
NTE0NmE0YjU1ZjQ4MGI5MjU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMg
LT4gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyIE5vdFJlZkNvdW50
ZWQgeworICAgIENyZWF0ZVJlbmRlcmVyKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJZGVudGlmaWVyIGlkKQorICAgIFJlbGVhc2VSZW5kZXJlcihXZWJLaXQ6OkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllciBpZCkKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA3ZmQzM2UwZWY5ZDJkNzZmMjI2
NDBhYjI4NDBhM2JmMzM4MTMyZjE4Li43YzM1OGRlMDFmYTRiMDEzMjYzYzdjYzlmNmU0ODg0N2Yz
MDBiMjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIx
OCw2ICsyMTgsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgp
OgogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCcsCisgICAgICAgICdXZWJLaXQ6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6
OkxheWVySG9zdGluZ0NvbnRleHRJRCcsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRl
bnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA3NjE3YzJlMTdlZGQ0NzgwNGY1ZGY2ODgzMWNjYzMy
ZDhmODZjMzRiLi5hNmIyYmI5M2Q3MmUwZjhmMjkyZDYyNzg4YTZjY2ZkNGEzNDQ3Yjk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKQEAgLTI0LDYgKzI0LDggQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHku
Y3BwCkBAIC01MTksNiArNTIxLDcgQEAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5j
cHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKIFdlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCitXZWJQcm9jZXNzL0dQ
VS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCiAKIFdlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzk0YzY3MDQ0
NWZmZDE3MmZlMDJmMTU2ZDYwZTVmMTFlZmU5N2Q4NS4uZDdkYmQ0ZGJlZmNhNjU4OGJlZjI2ZTdm
OGMyOGU0OTJmMDFmYWMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjM5LDYgKzYzOSw4
IEBAIEdQVVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIEdQVVByb2Nlc3NNZXNzYWdl
UmVjZWl2ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExp
YldlYlJUQ0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ1
MjQ2Zjk2MzUwODg0NjlkM2YyYzliYmE3Y2RlMjQ3NDU1OGE3ZmYuLjQ2ODIwZGE1MWMwZmY2NDdh
NzM1OWIzMWI1ZjIxNjdmNjRhMzRiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM3Niw2ICszMzc2LDEyIEBACiAJCTQxRDEyOUQ5
MUYzRDEwMTQwMEQxNUU0NyAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MUQ1QzZEODIzOEVCMjBEMDBCOUIzQ0IgLyogU2VydmljZVdvcmtlclNvZnRVcGRhdGVM
b2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclNv
ZnRVcGRhdGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFENUM2RDky
MzhFQjIwRTAwQjlCM0NCIC8qIFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRl
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFENjQ1NTIyM0NDQjky
MTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmlu
OyBwYXRoID0gR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNDFENjQ1
NTMyM0NDQjkyMTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg7
IHBhdGggPSBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTQxRDY0NTU0MjNDQ0I5MjIw
MDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA7IHBh
dGggPSBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNDFENjQ1NTUyM0NDQjk2OTAw
NDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxRDY0NTU2MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFENjQ1NTcyM0NDQjk2OTAwNDg2RTBFIC8qIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFEQzQ1OTQxRTNENkUxRTAwQjEx
RjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrUlRDUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDFEQzQ1OTUxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDUHJvdmlkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURDNDU5ODFFM0Q2RUQ2MDBCMTFGNTEgLyog
TmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5l
dHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTMzOTYsNiArMzQwMiw5IEBACiAJCTQxRkJFODIyMjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3
b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MUZCRTgyMzIwNkRBNzlDMDAwRjA3NDEgLyogTmV0d29ya0NvbnRlbnRSdWxl
TGlzdE1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29ya0Nv
bnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxRkJFODI0MjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3Jr
Q29udGVudFJ1bGVMaXN0TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxRkNENkFEMjNDQ0MyNjAwMEM2MjU2NyAvKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZBRTIzQ0ND
MjYxMDBDNjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZBRjIzQ0NDMjYxMDBD
NjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUwQUVCRjFEQzNG
QUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkTWVtb3J5Q29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NDU5OTg0MTIyODMzRTYwMDBFNjEzNzMgLyogU3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDlEOTBEODIxRkQ2M0ZFMDBGNjc3
QzAgLyogTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzE2OCw2ICs3MTc3LDkgQEAKIAkJNDE3MjE5ODgy
M0I2MTI2MTAwQUU1Njg2IC8qIHdlYnJ0YyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNDFGQ0Q2QUUyM0NDQzI2MTAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmNwcCAqLywKKwkJCQk0MUZDRDZBRDIzQ0NDMjYwMDBDNjI1Njcg
LyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCAqLywKKwkJCQk0MUZDRDZBRjIzQ0ND
MjYxMDBDNjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmgg
Ki8sCiAJCQkJNDE3MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5jcHAg
Ki8sCiAJCQkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5oICov
LAogCQkJCTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2Fn
ZXMuaW4gKi8sCkBAIC03MTg4LDYgKzcyMDAsMTIgQEAKIAkJCQk0MUUwQTdDNjIzQjYzOTc4MDA1
NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLywKIAkJCQk0MUUwQTdDNzIzQjYzOTc5
MDA1NjEwNjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFF
MEE3QzgyM0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICovLAorCQkJ
CTQxRDY0NTU0MjNDQ0I5MjIwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5jcHAgKi8sCisJCQkJNDFENjQ1NTMyM0NDQjkyMTAwNDg2RTBFIC8qIFJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8sCisJCQkJNDFENjQ1NTIyM0NDQjkyMTAw
NDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmlu
ICovLAorCQkJCTQxRDY0NTU2MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwICovLAorCQkJCTQxRDY0NTU3MjNDQ0I5NjkwMDQ4
NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaCAqLywK
KwkJCQk0MUQ2NDU1NTIzQ0NCOTY5MDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTQxNzZFODlEMjNDMzc2RDUw
MDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCAqLywKIAkJCQk0MTc2RTg5ODIzQzM2
Njc3MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5oICovLAogCQkJCTQxNzZFODlDMjND
Mzc0NzkwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDdkNWQzNzczZTBmNGJiNTMyZTZjYzYzYzE0
ZDkwMjljZWVmYWY1YTkuLmMyYWVhNzBjZDUwMDNkMGQ1YzEzYTdkN2NlMDI1MGQ4MjRmODQwNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCisjaW5jbHVk
ZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXll
ck1JTUVUeXBlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNz
YWdlcy5oIgpAQCAtMzQyLDYgKzM0NCw5IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
Ojp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgfTsKIAog
ICAgIFJlbW90ZU1lZGlhUGxheWVyU3VwcG9ydDo6c2V0UmVnaXN0ZXJSZW1vdGVQbGF5ZXJDYWxs
YmFjayhzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSA/IFdURk1vdmUocmVnaXN0ZXJF
bmdpbmUpIDogUmVtb3RlTWVkaWFQbGF5ZXJTdXBwb3J0OjpSZWdpc3RlclJlbW90ZVBsYXllckNh
bGxiYWNrKCkpOworCisgICAgaWYgKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKQor
ICAgICAgICBXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0Q3JlYXRv
cihXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUpOwogfQogCiB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dXBkYXRlQ2FjaGVkU3RhdGUoTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0
YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJhMzMzMGZiNjM5OTM5MjgwY2VkOGZkZmI0M2Y1ZjJhMmY0YzgzYzgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlci5jcHAKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgi
CisjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1
ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI+IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUoKQor
eworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI+KG5ldyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciB7IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpIH0pOworfQor
CitBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0
aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lkZW50aWZpZXIoQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQorICAgICwgbV9yaW5nQnVm
ZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlzKSkpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OkNyZWF0
ZVJlbmRlcmVyIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCitBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCkKK3sKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlcjo6UmVsZWFzZVJlbmRlcmVyIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2
b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdGFydCgpCit7CisgICAgbV9pc1Bs
YXlpbmcgPSB0cnVlOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OlN0YXJ0IHsgfSwgbV9pZGVudGlmaWVyKTsKK30K
Kwordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcCgpCit7CisgICAgbV9p
c1BsYXlpbmcgPSBmYWxzZTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpTdG9wIHsgfSwgbV9pZGVudGlmaWVyKTsK
K30KKwordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Y2xlYXIoKQoreworICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXI6OkNsZWFyIHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0TXV0ZWQoYm9vbCB2YWx1ZSkKK3sKKyAgICBXZWJDb3Jl
OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0TXV0ZWQodmFsdWUpOworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI6OlNldE11dGVkIHsgdmFsdWUgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0Vm9sdW1lKGZsb2F0IHZhbHVlKQoreworICAg
IFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRWb2x1bWUodmFsdWUp
OworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OlNldFZvbHVtZSB7IHZhbHVlIH0sIG1faWRlbnRpZmllcik7Cit9CisK
K3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnB1c2hTYW1wbGVzKGNvbnN0IE1l
ZGlhVGltZSYgdGltZSwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0
YSwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNp
emVfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBpZiAoIW1faXNQbGF5aW5nKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgeworICAgICAg
ICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gV2ViQ29y
ZTo6UGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisgICAgICAg
IG1fZGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKwor
ICAgICAgICAvLyBBbGxvY2F0ZSBhIHJpbmcgYnVmZmVyIGxhcmdlIGVub3VnaCB0byBjb250YWlu
IDIgc2Vjb25kcyBvZiBhdWRpby4KKyAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3Jp
cHRpb24uc2FtcGxlUmF0ZSgpICogMjsKKyAgICAgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZSht
X2Rlc2NyaXB0aW9uLnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFtZXMpOworICAg
IH0KKworICAgIEFTU0VSVChpczxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0
YSkpOworICAgIG1fcmluZ0J1ZmZlci0+c3RvcmUoZG93bmNhc3Q8V2ViQ29yZTo6V2ViQXVkaW9C
dWZmZXJMaXN0PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZh
bHVlKCkpOworICAgIHVpbnQ2NF90IHN0YXJ0RnJhbWU7CisgICAgdWludDY0X3QgZW5kRnJhbWU7
CisgICAgbV9yaW5nQnVmZmVyLT5nZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5k
RnJhbWUpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IHRpbWUsIG51bWJl
ck9mRnJhbWVzLCBzdGFydEZyYW1lLCBlbmRGcmFtZSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2
b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRN
ZW1vcnkqIHN0b3JhZ2UpCit7CisgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAg
IGlmIChzdG9yYWdlKQorICAgICAgICBzdG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFy
ZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpBdWRpb1NhbXBs
ZXNTdG9yYWdlQ2hhbmdlZCB7IGhhbmRsZSwgbV9kZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KG1fbnVtYmVyT2ZGcmFtZXMpIH0sIG1faWRlbnRpZmllcik7Cit9CisKK30KKyNlbmRp
ZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zN2IzN2E3OGUxZTc1YjVhNmZjYTBjZWJlYWYyMGRmNDFkYWQ2ZDZj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtMCwwICsxLDc2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyLmg+CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgorCituYW1lc3BhY2UgSVBD
IHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
OjpDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI+IGNyZWF0ZSgpOworICAgIH5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcigpOworCisg
ICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKwor
ICAgIC8vIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICB2b2lkIHN0b3JhZ2VD
aGFuZ2VkKFNoYXJlZE1lbW9yeSopOworCisgICAgLy8gV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIKKyAgICB2b2lkIHN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBzdG9wKCkg
ZmluYWw7CisgICAgdm9pZCBjbGVhcigpIGZpbmFsOworICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCkg
ZmluYWw7CisgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpIGZpbmFsOworICAgIHZvaWQgcHVzaFNh
bXBsZXMoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEm
LCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsK
KworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworCisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyAgICBpbnQ2
NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisgICAgYm9vbCBtX2lzUGxheWluZyB7IGZhbHNl
IH07Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
Yjg1YTMzZWM2NGRmMTg4ZjkyNmE1NThhZTBhOGI5ZjhmNmY1ZGJkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
ICwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPHd0Zi9P
YmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU1NzdlYjk3YmI4ZjQwNjhhYjA2YzUzZTIyYTk1YjQx
ZWEwMWY1NWUuLjA3NGY5MTQ5MmMxMjdmZjkxM2NhN2E5YjU0YTkyZTMzMTcyYTVlMjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMS0xNCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIE1lZGlhU3RyZWFtIGF1ZGlvIHRyYWNr
IHJlbmRlcmluZyBpbiBHUFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDYxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGdwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAt
MDEtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
U2Nyb2xsYmFyIGhpZGluZyBvbiBpT1MgdmlhIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNwbGF5
OiBub25lIH0gZG9lc24ndCB3b3JrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vz
cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA3MjBlNmUzNjFjMmVhMWU0YjkwOGYwZTA5MDU3MDFjOWJhYTllZmExLi45NGM1
ZjhkM2MxMGFiNTYzNjQzZTNjZWIwZTFkY2E3ODVhMzJkY2Q2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dwdS1w
cm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIyNSw3ICsyMjUsNiBAQCBhY2Nlc3NpYmlsaXR5
L21lZGlhLWVsZW1lbnQuaHRtbCBbIFNraXAgXQogZmFzdC9ibG9jay9mbG9hdC9saXN0LW1hcmtl
ci1pcy1mbG9hdC1jcmFzaC5odG1sIFsgU2tpcCBdCiBmYXN0L2Nzcy9yZWxhdGl2ZS1wb3NpdGlv
bi1yZXBsYWNlZC1pbi10YWJsZS1kaXNwbGF5LWNyYXNoLmh0bWwgWyBTa2lwIF0KIGZhc3QvbWVk
aWFjYXB0dXJlZnJvbWVsZW1lbnQgWyBTa2lwIF0KLWZhc3QvbWVkaWFzdHJlYW0gWyBTa2lwIF0K
IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWxlZ2FjeS5odG1sIFsgU2tpcCBdCiBmdWxs
c2NyZWVuL3ZpZGVvLWNvbnRyb2xzLXRpbWVsaW5lLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMv
YXBwY2FjaGUvdmlkZW8uaHRtbCBbIFNraXAgXQpAQCAtMjM2LDcgKzIzNSw2IEBAIGh0dHAvdGVz
dHMvbWVkaWEgWyBTa2lwIF0KIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLW1lZGlh
a2V5c2Vzc2lvbi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNo
ZS1tZWRpYXN0cmVhbS5odG1sIFsgU2tpcCBdCiBodHRwL3dwdC9tZWRpYXJlY29yZGVyIFsgU2tp
cCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1z
IFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1m
cm9tZWxlbWVudC9pZGxoYXJuZXNzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbCBb
IFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVj
b3JkL01lZGlhUmVjb3JkZXItZXJyb3IuaHRtbCBbIFNraXAgXQpAQCAtMjUzLDYgKzI1MSwzIEBA
IGh0dHAvdGVzdHMvd2ViZ2wgWyBTa2lwIF0KIGpzL3NoYXJlZC1hcnJheS1idWZmZXItd2ViZ2wu
aHRtbCBbIFNraXAgXQogCiB3ZWJncHUgWyBTa2lwIF0KLQotd2VicnRjIFsgU2tpcCBdCi1wbGF0
Zm9ybS9tYWMvd2VicnRjIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387760</attachid>
            <date>2020-01-15 01:08:52 -0800</date>
            <delta_ts>2020-01-15 02:13:45 -0800</delta_ts>
            <desc>Fixing non MediaStream builds</desc>
            <filename>bug-206175-20200115100850.patch</filename>
            <type>text/plain</type>
            <size>60981</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMyN2MzNzM2YjRjMGRh
NWJiMmI3MjYyYzg3M2NiMGI3MjUyMDNkNC4uZDFiZjBjNWY1MjM3NDhhY2MyNzNjMGE5NGRjZjEx
MjAyMTFkNWNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAxLTE1ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gYXVkaW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjE3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IG1vZGVsIHRv
IHVzZSBzdGFydC9zdG9wIGluc3RlYWQgb2Ygc2V0UGF1c2VkLgorICAgICAgICBTaW1wbGlmeSBh
bmQgZml4IGlzc3VlIGluIGNvbXB1dGF0aW9uIG9mIHRoZSBtdXRlZCBzdGF0ZSBvZiB0aGUgcmVu
ZGVyZXIuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgcnVuIHdpdGggR1BVIHBy
b2Nlc3MgZW5hYmxlZCBhbmQgbWFudWFsIHRlc3RpbmcKKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpwbGF5SW50ZXJuYWwp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGF1c2Up
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckNvY29hOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpyZW5kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmg6CisKIDIw
MjAtMDEtMTQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBMb25n
IGNvbnRpbnVhdGlvbiBjaGFpbiBjb3VsZCBsZWFkIHRvIHN0YWNrIGV4aGF1c3Rpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggOWQ0MDMyMDQwNjdiN2E4NjA3YTc1OTRmYmU4ZTVlM2UzYzcxY2UzYi4uM2Q0NjU1OTUx
MmQ1MGY4NWI3MmE3MDcyZjZlMWYyMGNjMmEyNDkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBA
QAorMjAyMC0wMS0xNSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIE1lZGlhU3RyZWFtIGF1ZGlvIHRyYWNrIHJlbmRlcmluZyBpbiBH
UFVQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDYxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgYW4gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgYXQgV2ViS2l0IGxl
dmVsIGJ5IGNyZWF0aW5nIGEgcmVtb3RlIHJlbmRlcmVyIGluIEdQVVByb2Nlc3MgYW5kIHNlbmRp
bmcgSVBDIHRvIHBhc3MKKyAgICAgICAgYXVkaW8gZGF0YSBhcyB3ZWxsIGFzIG9yZGVycyAoc3Rh
cnQvc3RvcC9zZXRNdXRlZCkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSByZW1vdGUgcmVuZGVy
ZXIgdXNpbmcgV2ViQ29yZSBhdWRpbyB0cmFjayByZW5kZXJlci4KKworICAgICAgICBFbmFibGUg
V2ViS2l0IHJlbW90ZSByZW5kZXJlciBGIEdQVSBwcm9jZXNzIGZvciBtZWRpYSBpcyBlbmFibGVk
LgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmF1ZGlv
VHJhY2tSZW5kZXJlck1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6bmV4dExvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpudWxsTG9nZ2VyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OlJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6On5SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyOjpzdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0TXV0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0Vm9sdW1l
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6
OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXI6OmRpZFJlY2VpdmVSZW5kZXJlck1lc3NhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OmNyZWF0ZVJl
bmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNYW5hZ2VyOjpyZWxlYXNlUmVuZGVyZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Ogor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcjo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0
YXJ0KToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0
b3ApOgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Y2xl
YXIpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0
TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
c2V0Vm9sdW1lKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OnB1c2hTYW1wbGVzKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXI6OnN0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJy
dGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjppZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJZGVudGlmaWVyLmg6IEFkZGVkLgorCiAyMDIwLTAxLTE0ICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjU0NTQ4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKaW5kZXggODAwYTkz
MGM4NDU1ZDFhMzM2YjgwZTA1ZDg2YzhmOTk2NjdmY2I3Ni4uMTQ2MmUzMjJmOWU5MGE4OGVjYThl
MjhhOTllMmRhODY3Y2EyZGE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyPiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcigpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwg
dm9pZCBzZXRQYXVzZWQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKSA9
IDA7CiAgICAgLy8gTWF5IGJlIGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9B
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcAppbmRleCA5N2Q5ZTY5ZDE1ZjA2NDIxYWJm
OTRkNDQ4YzhlODg5ZDQ4NjAzNWZiLi5lMDA2OTVjZDY3ZmRkY2MyOTAwZTYxYjY3ODg2OGNmYzU4
NTZlMTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9B
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcApAQCAtNzcs
NyArNzcsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBsYXlJbnRlcm5h
bCgpCiAgICAgbV9pc1BsYXlpbmcgPSB0cnVlOwogICAgIG1fYXV0b1BsYXkgPSBmYWxzZTsKIAot
ICAgIG1fcmVuZGVyZXItPnNldFBhdXNlZChmYWxzZSk7CisgICAgbV9yZW5kZXJlci0+c3RhcnQo
KTsKIH0KIAogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpwbGF5KCkKQEAgLTk1
LDcgKzk1LDcgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjpwYXVzZSgpCiAg
ICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKICAgICBtX2F1dG9QbGF5ID0gZmFsc2U7CiAKLSAgICBt
X3JlbmRlcmVyLT5zZXRQYXVzZWQodHJ1ZSk7CisgICAgbV9yZW5kZXJlci0+c3RvcCgpOwogfQog
CiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnNldFZvbHVtZShmbG9hdCB2b2x1
bWUpCkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
Ojp0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKIAogdm9pZCBB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOjp1cGRhdGVSZW5kZXJlck11dGVkU3RhdGUoKQog
ewotICAgIG1fcmVuZGVyZXItPnNldE11dGVkKG1faXNQbGF5aW5nICYmICFzdHJlYW1UcmFjaygp
Lm11dGVkKCkgJiYgIXN0cmVhbVRyYWNrKCkuZW5kZWQoKSAmJiBzdHJlYW1UcmFjaygpLmVuYWJs
ZWQoKSk7CisgICAgbV9yZW5kZXJlci0+c2V0TXV0ZWQoc3RyZWFtVHJhY2soKS5tdXRlZCgpIHx8
IHN0cmVhbVRyYWNrKCkuZW5kZWQoKSB8fCAhc3RyZWFtVHJhY2soKS5lbmFibGVkKCkpOwogfQog
CiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnRyYWNrRW5kZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuY3BwCmluZGV4IGU3NTQ2MWY2ZDVkOGY2YjdlNmFmOWZkNTZjYzI2ZjVm
YmQzOTJiYjUuLjdjZDMxNjVlZWFhMjhiMWEyNDkyMjRmYTUxYzg2ODk2OTZiN2RhMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAK
QEAgLTQzLDE3ICs0MywyNiBAQCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hKCkgPSBkZWZhdQogCiBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjp+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJD
b2NvYSgpID0gZGVmYXVsdDsKIAordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNv
Y29hOjpzdGFydCgpCit7CisgICAgbV9zaG91bGRQbGF5ID0gdHJ1ZTsKKworICAgIGlmIChtX2Rh
dGFTb3VyY2UpCisgICAgICAgIG1fZGF0YVNvdXJjZS0+c2V0UGF1c2VkKGZhbHNlKTsKK30KKwog
dm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzdG9wKCkKIHsKLSAgICBp
ZiAoIW1faXNBdWRpb1VuaXRTdGFydGVkKQotICAgICAgICByZXR1cm47CisgICAgbV9zaG91bGRQ
bGF5ID0gZmFsc2U7CiAKLSAgICBpZiAobV9yZW1vdGVJT1VuaXQpCi0gICAgICAgIEF1ZGlvT3V0
cHV0VW5pdFN0b3AobV9yZW1vdGVJT1VuaXQpOworICAgIGlmIChtX2RhdGFTb3VyY2UpCisgICAg
ICAgIG1fZGF0YVNvdXJjZS0+c2V0UGF1c2VkKHRydWUpOwogfQogCiB2b2lkIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OmNsZWFyKCkKIHsKKyAgICBtX3Nob3VsZFBsYXkgPSBm
YWxzZTsKKwogICAgIGlmIChtX2RhdGFTb3VyY2UpCiAgICAgICAgIG1fZGF0YVNvdXJjZS0+c2V0
UGF1c2VkKHRydWUpOwogCkBAIC02NiwxMyArNzUsNyBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyQ29jb2E6OmNsZWFyKCkKICAgICBtX2RhdGFTb3VyY2UgPSBudWxscHRyOwog
ICAgIG1faW5wdXREZXNjcmlwdGlvbiA9IG51bGxwdHI7CiAgICAgbV9vdXRwdXREZXNjcmlwdGlv
biA9IG51bGxwdHI7Ci19Ci0KLXZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YTo6c2V0UGF1c2VkKGJvb2wgdmFsdWUpCi17Ci0gICAgbV9wYXVzZWQgPSB2YWx1ZTsKLSAgICBp
ZiAobV9kYXRhU291cmNlKQotICAgICAgICBtX2RhdGFTb3VyY2UtPnNldFBhdXNlZCh2YWx1ZSk7
CisgICAgbV9pc0F1ZGlvVW5pdFN0YXJ0ZWQgPSBmYWxzZTsKIH0KIAogQXVkaW9Db21wb25lbnRJ
bnN0YW5jZSBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpjcmVhdGVBdWRpb1Vu
aXQoQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBvdXRwdXREZXNjcmlwdGlvbikKQEAgLTE0Myw2
ICsxNDYsMTQgQEAgQXVkaW9Db21wb25lbnRJbnN0YW5jZSBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckNvY29hOjpjcmVhdGVBdWRpb1VuaXQoQ0FBdWQKIHZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVU
aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIEFT
U0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURl
c2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICBpZiAoIW1fc2hvdWxkUGxh
eSkgeworICAgICAgICBpZiAobV9pc0F1ZGlvVW5pdFN0YXJ0ZWQpIHsKKyAgICAgICAgICAgIGlm
IChtX3JlbW90ZUlPVW5pdCkKKyAgICAgICAgICAgICAgICBBdWRpb091dHB1dFVuaXRTdG9wKG1f
cmVtb3RlSU9Vbml0KTsKKyAgICAgICAgICAgIG1faXNBdWRpb1VuaXRTdGFydGVkID0gZmFsc2U7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGlmICghbV9pbnB1dERl
c2NyaXB0aW9uIHx8ICptX2lucHV0RGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKICAgICAg
ICAgbV9pc0F1ZGlvVW5pdFN0YXJ0ZWQgPSBmYWxzZTsKQEAgLTE5OSw3ICsyMTAsNyBAQCB2b2lk
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnB1c2hTYW1wbGVzKGNvbnN0IE1l
ZGlhVGltZSYgc2FtcGxlVGltZQogCiBPU1N0YXR1cyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckNvY29hOjpyZW5kZXIoVUludDMyIHNhbXBsZUNvdW50LCBBdWRpb0J1ZmZlckxpc3QmIGlv
RGF0YSwgVUludDMyIC8qaW5CdXNOdW1iZXIqLywgY29uc3QgQXVkaW9UaW1lU3RhbXAmIHRpbWVT
dGFtcCwgQXVkaW9Vbml0UmVuZGVyQWN0aW9uRmxhZ3MmIGFjdGlvbkZsYWdzKQogewotICAgIGlm
IChpc011dGVkKCkgfHwgbV9wYXVzZWQgfHwgIW1fZGF0YVNvdXJjZSkgeworICAgIGlmIChpc011
dGVkKCkgfHwgIW1fc2hvdWxkUGxheSB8fCAhbV9kYXRhU291cmNlKSB7CiAgICAgICAgIEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdDo6emVyb0FCTChpb0RhdGEsIHN0YXRpY19jYXN0PHNpemVfdD4oc2Ft
cGxlQ291bnQgKiBtX291dHB1dERlc2NyaXB0aW9uLT5ieXRlc1BlckZyYW1lKCkpKTsKICAgICAg
ICAgYWN0aW9uRmxhZ3MgPSBrQXVkaW9Vbml0UmVuZGVyQWN0aW9uX091dHB1dElzU2lsZW5jZTsK
ICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuaAppbmRleCBhOWU1NDYxY2IwMjhkZmMxZGZkMmU5NGUzZjNjNmQ4ZDhi
NWNhZTQ0Li4xNTRkZmE5NTQyN2VmMmJiZDA1NGE5ZjUzYjRmNmI1MDYyMWYzOTVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKQEAgLTQ4
LDkgKzQ4LDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICAvLyBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcgogICAgIHZvaWQgcHVzaFNhbXBsZXMoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBz
aXplX3QpIGZpbmFsOworICAgIHZvaWQgc3RhcnQoKSBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBm
aW5hbDsKICAgICB2b2lkIGNsZWFyKCkgZmluYWw7Ci0gICAgdm9pZCBzZXRQYXVzZWQoYm9vbCkg
ZmluYWw7CiAKICAgICBzdGF0aWMgT1NTdGF0dXMgaW5wdXRQcm9jKHZvaWQqLCBBdWRpb1VuaXRS
ZW5kZXJBY3Rpb25GbGFncyosIGNvbnN0IEF1ZGlvVGltZVN0YW1wKiwgVUludDMyIGluQnVzTnVt
YmVyLCBVSW50MzIgbnVtYmVyT2ZGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCopOwogICAgIE9TU3Rh
dHVzIHJlbmRlcihVSW50MzIgc2FtcGxlQ291bnQsIEF1ZGlvQnVmZmVyTGlzdCYsIFVJbnQzMiBp
bkJ1c051bWJlciwgY29uc3QgQXVkaW9UaW1lU3RhbXAmLCBBdWRpb1VuaXRSZW5kZXJBY3Rpb25G
bGFncyYpOwpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIC8vIENyb3NzIHRocmVhZCBt
ZW1iZXJzCiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gbV9kYXRhU291cmNlOwog
ICAgIGJvb2wgbV9pc0F1ZGlvVW5pdFN0YXJ0ZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9wYXVz
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRQbGF5IHsgZmFsc2UgfTsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA0
YzMxYTg4MDRjY2VjODUxZmZkMzUwYzdiMDEyYzc3MGZjNjllN2ZkLi4xYTI0YmJmYzA3MmQyNmZl
YzcxNjUzYTk1OWZkNzNiMGEyZjQzZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yMCw2ICsyMCw4IEBAICQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFn
ZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CmluZGV4IGZhYmRmOTgzZTQzYjM2NzlkNTY3N2MxMmU2NTY0MWEyMjNiYzI3MzEu
LjFkYzU0NjUyOGY1YmEyMmQ3MzY1MGUwMDRiYTI4MWVjMjJmMjYyMzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTIwLDYgKzEyMCwx
MiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblBy
b3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlc1JlcGxpZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzZDRjMTliMzU3ZWRjMzMxM2ExOGM1ODBmOTNlMGQy
YjI4MGU2YzA0Li5hMTlkMDc5ZTAwM2FhOGJmMmEzODUzMWZkOWRlYWM1MWE3NjRmYjJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNDAsNiArMTQwLDggQEAgTUVTU0FHRV9SRUNF
SVZFUlMgPSBcCiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIFwKICAgICBQbHVn
aW5Qcm9jZXNzUHJveHkgXAogICAgIFBsdWdpblByb3h5IFwKKyAgICBSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIgXAorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyIFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKICAg
ICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA3ZjczMTk1ZjVlOGFiMmUzOGQ5OWE0YjAwOGUzZTVk
MTViN2MzMTdlLi40NmIxMzQ5ODg5ZTRkZjUwODBjM2JiMWExN2E4NjFkYzRlNGI3NGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC0zNiw2ICszNiw5IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJv
eHkuaCIKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IgpAQCAtMTUwLDYgKzE1MywxNiBAQCBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlciYgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6bWVkaWFSZWNvcmRlck1hbmFnZXIoKQogCiAgICAgcmV0dXJu
ICptX3JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOwogfQorCisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyJiBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjphdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyKCkKK3sKKyAgICBp
ZiAoIW1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcikKKyAgICAgICAgbV9hdWRpb1RyYWNrUmVu
ZGVyZXJNYW5hZ2VyID0gbWFrZVVuaXF1ZTxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXI+KCk7CisKKyAgICByZXR1cm4gKm1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdl
cjsKK30KKyNlbmRpZgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldF
QlJUQykKQEAgLTE4Nyw2ICsyMDAsMTYgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkKICAgICAg
ICAgbWVkaWFSZWNvcmRlck1hbmFnZXIoKS5kaWRSZWNlaXZlUmVtb3RlTWVkaWFSZWNvcmRlck1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBpZiAoZGVjb2Rlci5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGF1
ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXIoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNz
KGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBh
dWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShjb25u
ZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogI2VuZGlm
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBmNDg1OTY0ZDQ2YzUyZTMzOGQy
YWJlNGY3NjVkZGNiNWE5NGEwNzkwLi5jYzIxMTBiNWZhMjE5NDVjNmM0Mzk4OGNjODkxNWY5YzU4
NTFmNjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3NQcm94eTsKK2NsYXNzIFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3MgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7
CiBjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKQEAgLTczLDYgKzc0LDkgQEAgcHJp
dmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5JiB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
KCk7CiAgICAgUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXImIG1lZGlhUmVjb3JkZXJNYW5hZ2Vy
KCk7CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlciYgYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcigpOworI2VuZGlm
CiAjZW5kaWYKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CkBAIC05Miw2ICs5Niw5
IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CisjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+IG1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcjsKKyNl
bmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCiAgICAg
c3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjc1Byb3h5PiBtX2xpYldlYlJUQ0NvZGVjc1By
b3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZDFmYWM0ZGE4YzFkNGNjNjcyYzNjOGU3Y2FiNjQ3ZTY5ZmI1ZjlmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1
ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECitzdGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lkZW50aWZpZXIoKQoreworICAg
IHN0YXRpYyB1aW50NjRfdCBsb2dJZGVudGlmaWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21O
dW1iZXIoKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJ
ZGVudGlmaWVyKTsKK30KKworc3RhdGljIFJlZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2VyKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPExvZ2dlcj4+IGxvZ2dlcjsKKyAgICBy
ZXR1cm4gbG9nZ2VyOworfQorI2VuZGlmCisKK1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcigpCisgICAgOiBtX3Jl
bmRlcmVyKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUoKSkK
KyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJl
ZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4obnVsbHB0cikpKQoreworICAgIEFTU0VSVChtX3Jl
bmRlcmVyKTsKKworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIGlmICghbnVsbExvZ2dl
cigpLmdldCgpKSB7CisgICAgICAgIG51bGxMb2dnZXIoKSA9IExvZ2dlcjo6Y3JlYXRlKHRoaXMp
OworICAgICAgICBudWxsTG9nZ2VyKCktPnNldEVuYWJsZWQodGhpcywgZmFsc2UpOworICAgIH0K
KyAgICBtX3JlbmRlcmVyLT5zZXRMb2dnZXIoKm51bGxMb2dnZXIoKSwgbmV4dExvZ0lkZW50aWZp
ZXIoKSk7CisjZW5kaWYKK30KKworUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6
On5SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcigpCit7CisgICAgbV9yZW5kZXJl
ci0+Y2xlYXIoKTsKK30KKworU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9yYWdlKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7Cit9
CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0YXJ0KCkKK3sK
KyAgICBtX3JlbmRlcmVyLT5zdGFydCgpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyOjpzdG9wKCkKK3sKKyAgICBtX3JlbmRlcmVyLT5zdG9wKCk7Cit9CisK
K3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNsZWFyKCkKK3sKKyAg
ICBtX3JlbmRlcmVyLT5jbGVhcigpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyOjpzZXRNdXRlZChib29sIHZhbHVlKQoreworICAgIG1fcmVuZGVyZXItPnNl
dE11dGVkKHZhbHVlKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcjo6c2V0Vm9sdW1lKGZsb2F0IHZhbHVlKQoreworICAgIG1fcmVuZGVyZXItPnNldFZvbHVt
ZSh2YWx1ZSk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6
OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBo
YW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRp
b24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQoreworICAgIEFTU0VSVChtX3JpbmdCdWZmZXIp
OworICAgIGlmICghbV9yaW5nQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Rlc2Ny
aXB0aW9uID0gZGVzY3JpcHRpb247CisKKyAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKSB7CisgICAg
ICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOworICAgICAgICBzdG9yYWdlKCkuc2V0UmVh
ZE9ubHkoZmFsc2UpOworICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRyKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gbWVtb3J5ID0gU2hhcmVkTWVtb3J5Ojpt
YXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKKyAgICBzdG9y
YWdlKCkuc2V0U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOworICAgIHN0b3JhZ2UoKS5zZXRSZWFk
T25seSh0cnVlKTsKKworICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51
bWJlck9mRnJhbWVzKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcywgdWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit7Cisg
ICAgQVNTRVJUKG1fcmluZ0J1ZmZlcik7CisgICAgaWYgKCFtX3JpbmdCdWZmZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcmluZ0J1ZmZlci0+c2V0Q3VycmVudEZyYW1lQm91bmRzKHN0YXJ0
RnJhbWUsIGVuZEZyYW1lKTsKKworICAgIFdlYkF1ZGlvQnVmZmVyTGlzdCBhdWRpb0RhdGEobV9k
ZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmluZ0J1ZmZlci0+ZmV0Y2goYXVk
aW9EYXRhLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworCisgICAg
bV9yZW5kZXJlci0+cHVzaFNhbXBsZXModGltZSwgYXVkaW9EYXRhLCBtX2Rlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7Cit9CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zMTljYjRhZTkzMGI2ZjMxMDg1YWUwNTE1MWU4YzE4ZThkOTRjNmU4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlci5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CisjaW5jbHVkZSA8d3RmL01lZGlh
VGltZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjsKK2NsYXNzIENBUmluZ0J1ZmZlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFzcyBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZTsKKworY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIg
ZmluYWwgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcigpOworICAgIH5SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcigpOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZv
aWQgc3RhcnQoKTsKKyAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIGNsZWFyKCk7CisgICAgdm9p
ZCBzZXRNdXRlZChib29sKTsKKyAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CisgICAgdm9pZCBh
dWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzKTsKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2
NF90IG51bWJlck9mRnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFt
ZSk7CisKKyAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSYgc3RvcmFnZSgpOworCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyPiBtX3Jl
bmRlcmVyOworCisgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3Jp
cHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5n
QnVmZmVyOworfTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2Fn
ZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWJmZWNjMjg1ZjY0NDUxZTk1OWRlNjU1Y2QyMjUwMTJiZmI1YWRi
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwz
OCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIgTm90UmVmQ291bnRlZCB7CisgICAgU3RhcnQoKQorICAgIFN0b3AoKQor
ICAgIENsZWFyKCkKKworICAgIFNldE11dGVkKGJvb2wgdmFsdWUpCisgICAgU2V0Vm9sdW1lKGZs
b2F0IHZhbHVlKQorCisgICAgQXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoV2ViS2l0OjpTaGFy
ZWRNZW1vcnk6OkhhbmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24gZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQorICAgIEF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMs
IHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKQorfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NjgzM2M4NTdkZTYxYmY1OGIxZjBlY2IyMzRjNjYxZjI0MGI5MjMyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6UmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OworCitSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6On5SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpkaWRSZWNlaXZlUmVuZGVyZXJNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChh
dXRvKiByZW5kZXJlciA9IG1fcmVuZGVyZXJzLmdldChtYWtlT2JqZWN0SWRlbnRpZmllcjxBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0
aW9uSUQoKSkpKQorICAgICAgICByZW5kZXJlci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2Rlcik7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyOjpjcmVhdGVSZW5kZXJlcihBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoIW1fcmVuZGVyZXJzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKKyAgICBtX3JlbmRlcmVycy5hZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1
ZTxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4oKSk7Cit9CisKK3ZvaWQgUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpyZWxlYXNlUmVuZGVyZXIo
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgQVNTRVJUKG1fcmVuZGVyZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3JlbmRl
cmVycy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmVkZTVhZWEwMDQ5NjdjYzAyMTFhYTQxMzJk
MDViNzk5MmIxZGIxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgKQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI7CisK
K2NsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBmaW5hbCA6
IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlcigpOworICAgIH5SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIo
KTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nl
c3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsg
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKworcHJpdmF0ZToKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBjcmVhdGVSZW5k
ZXJlcihBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIpOworICAgIHZvaWQg
cmVsZWFzZVJlbmRlcmVyKEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcik7
CisKKyAgICBIYXNoTWFwPEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllciwg
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyPj4gbV9y
ZW5kZXJlcnM7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhNTYwMjFkZTk0ZTc0ZWQ5MDIzODQ1
MTQ2YTRiNTVmNDgwYjkyNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAt
PiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIgTm90UmVmQ291bnRl
ZCB7CisgICAgQ3JlYXRlUmVuZGVyZXIoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcklkZW50aWZpZXIgaWQpCisgICAgUmVsZWFzZVJlbmRlcmVyKFdlYktpdDo6QXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyIGlkKQorfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDdiOTIxM2RhNWM1ZWNkNmExNmVj
YWE2YjMxNDUwMjk3ZTY1MWZmMTIuLjI1NjRmNTI4ODI4ZjUxZDAzY2RkMzBjN2ZmODc2ZDI1ZGRh
NTQ1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjE4
LDYgKzIxOCw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6
CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKKyAgICAgICAgJ1dlYktpdDo6QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6
TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVu
dGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGU2ZGZjMzAzNzIzOWNhMjQ3NTY0YTM0YWI1NjI1OTAw
M2FjZjEyZmEuLjQ3MmU0ZTAyZjY4MGM0YWVlNjNiZjQ1ODViODc1NzMwNThmZjM0YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dApAQCAtMjQsNiArMjQsOCBAQAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAogR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwCiBHUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyLmNwcAogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXIuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5j
cHAKQEAgLTUyNSw2ICs1MjcsNyBAQCBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJp
dmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3Bw
CiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCiBXZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcAorV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAogCiBXZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDY0Zjg1YTZkM2Uy
ZWUwMTIyMGJjMWMyY2FmYmNiMjk3M2NhOGI5NzQuLmIyMzgzMmFiMjdhNzRiNTdjMjY1ZjkzMjlh
MGJlMmNjMGYwOTljYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTY0MCw2ICs2NDAsOCBA
QCBHUFVQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBHUFVQcm9jZXNzTWVzc2FnZVJl
Y2VpdmVyLmNwcAogTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBMaWJX
ZWJSVENDb2RlY3NNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAKIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZDkw
ZWFmNGYyNGYwZWU3ZjdiNDY0MzQxNWZkYzA4NDcyOWEwM2EwLi4xYzcwZTY0NWU4NDMzZjE0YWUw
MGQ1N2QyYzI1NDNhMDBlMGMyZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMzOTMsNiArMzM5MywxMiBAQAogCQk0MUQxMjlEOTFG
M0QxMDE0MDBEMTVFNDcgLyogV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFENUM2RDgyMzhFQjIwRDAwQjlCM0NCIC8qIFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9h
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJTb2Z0
VXBkYXRlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRDVDNkQ5MjM4
RUIyMEUwMEI5QjNDQiAvKiBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxv
YWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRDY0NTUyMjNDQ0I5MjEw
MDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdlcy5pbjsg
cGF0aCA9IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTQxRDY0NTUz
MjNDQ0I5MjEwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oOyBw
YXRoID0gR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk0MUQ2NDU1NDIzQ0NCOTIyMDA0
ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwOyBwYXRo
ID0gR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIu
Y3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTQxRDY0NTU1MjNDQ0I5NjkwMDQ4
NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MUQ2NDU1NjIzQ0NCOTY5MDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRDY0NTU3MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREM0NTk0MUUzRDZFMUUwMEIxMUY1
MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTmV0d29ya1JUQ1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
REM0NTk1MUUzRDZFMUUwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFEQzQ1OTgxRTNENkVENjAwQjExRjUxIC8qIE5l
dHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3
b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zNDEzLDYgKzM0MTksOSBAQAogCQk0MUZCRTgyMjIwNkRBNzlDMDAwRjA3NDEgLyogTmV0d29y
a0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFGQkU4MjMyMDZEQTc5QzAwMEYwNzQxIC8qIE5ldHdvcmtDb250ZW50UnVsZUxp
c3RNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MUZCRTgyNDIwNkRBNzlDMDAwRjA3NDEgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0Nv
bnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MUZDRDZBRDIzQ0NDMjYwMDBDNjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QUUyM0NDQzI2
MTAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGQ0Q2QUYyM0NDQzI2MTAwQzYy
NTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklk
ZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYxREMzRkFF
NTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNoYXJlZE1lbW9yeUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ5RDkwRDgyMUZENjNGRTAwRjY3N0Mw
IC8qIExvY2FsQXV0aGVudGljYXRpb25Tb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IExvY2FsQXV0aGVudGljYXRpb25Tb2Z0TGluay5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcxOTcsNiArNzIwNiw5IEBACiAJCTQxNzIxOTg4MjNC
NjEyNjEwMEFFNTY4NiAvKiB3ZWJydGMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTQxRkNENkFFMjNDQ0MyNjEwMEM2MjU2NyAvKiBBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8sCisJCQkJNDFGQ0Q2QUQyM0NDQzI2MDAwQzYyNTY3IC8q
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8sCisJCQkJNDFGQ0Q2QUYyM0NDQzI2
MTAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oICov
LAogCQkJCTQxNzIxOThBMjNCNjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuY3BwICov
LAogCQkJCTQxNzIxOTg5MjNCNjEyODIwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MuaCAqLywK
IAkJCQk0MTcyMTk4RDIzQjYyQzdDMDBBRTU2ODYgLyogTGliV2ViUlRDQ29kZWNzLm1lc3NhZ2Vz
LmluICovLApAQCAtNzIxNyw2ICs3MjI5LDEyIEBACiAJCQkJNDFFMEE3QzYyM0I2Mzk3ODAwNTYx
MDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5LmggKi8sCiAJCQkJNDFFMEE3QzcyM0I2Mzk3OTAw
NTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTQxRTBB
N0M4MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5tbSAqLywKKwkJCQk0
MUQ2NDU1NDIzQ0NCOTIyMDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIuY3BwICovLAorCQkJCTQxRDY0NTUzMjNDQ0I5MjEwMDQ4NkUwRSAvKiBSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oICovLAorCQkJCTQxRDY0NTUyMjNDQ0I5MjEwMDQ4
NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdlcy5pbiAq
LywKKwkJCQk0MUQ2NDU1NjIzQ0NCOTY5MDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MUQ2NDU1NzIzQ0NCOTY5MDA0ODZF
MEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmggKi8sCisJ
CQkJNDFENjQ1NTUyM0NDQjk2OTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk0MTc2RTg5RDIzQzM3NkQ1MDAz
RTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAgKi8sCiAJCQkJNDE3NkU4OTgyM0MzNjY3
NzAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVjb3JkZXIuaCAqLywKIAkJCQk0MTc2RTg5QzIzQzM3
NDc5MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbiAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCBjYWRkODhhZjdkOWRlMDIxODljNTY3MjgzZGNm
OWY0MjdiMWJkODg3Li41NDdkNDVmMmFlZjc5Y2RhYjlkMmUzNGVmYzkyZTBkYzc2NzAwMDFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0yOCw3ICsyOCw5IEBACiAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgorI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
SU1FVHlwZUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2Fn
ZXMuaCIKQEAgLTM2Niw2ICszNjgsMTEgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncykKICAgICB9OwogCiAg
ICAgUmVtb3RlTWVkaWFQbGF5ZXJTdXBwb3J0OjpzZXRSZWdpc3RlclJlbW90ZVBsYXllckNhbGxi
YWNrKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpID8gV1RGTW92ZShyZWdpc3RlckVu
Z2luZSkgOiBSZW1vdGVNZWRpYVBsYXllclN1cHBvcnQ6OlJlZ2lzdGVyUmVtb3RlUGxheWVyQ2Fs
bGJhY2soKSk7CisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlmIChzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9y
TWVkaWEoKSkKKyAgICAgICAgV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6
OnNldENyZWF0b3IoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Y3JlYXRl
KTsKKyNlbmRpZgogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dXBkYXRlQ2Fj
aGVkU3RhdGUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3RlTWVk
aWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZhY2QyMjI3OGI2MTc1NjFiMjEyYTRhMzIwY2Y3OWY3ZjIzYmRm
OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKQEAgLTAsMCArMSwxMjAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvV2ViQXVkaW9CdWZmZXJMaXN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUoKQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+KG5ldyBBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlciB7IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpIH0pOworfQorCitBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIoUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
CisgICAgLCBtX2lkZW50aWZpZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6
Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPih0aGlz
KSkpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OkNyZWF0ZVJlbmRlcmVyIHsgbV9pZGVudGlmaWVy
IH0sIDApOworfQorCitBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6fkF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6UmVsZWFzZVJlbmRl
cmVyIHsgbV9pZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyOjpzdGFydCgpCit7CisgICAgbV9pc1BsYXlpbmcgPSB0cnVlOworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OlN0YXJ0IHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcjo6c3RvcCgpCit7CisgICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyOjpTdG9wIHsgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjo6Y2xlYXIoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkNsZWFyIHsgfSwgbV9p
ZGVudGlmaWVyKTsKK30KKwordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0
TXV0ZWQoYm9vbCB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6c2V0TXV0ZWQodmFsdWUpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OlNldE11dGVkIHsgdmFsdWUg
fSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
cjo6c2V0Vm9sdW1lKGZsb2F0IHZhbHVlKQoreworICAgIFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyOjpzZXRWb2x1bWUodmFsdWUpOworICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OlNldFZvbHVt
ZSB7IHZhbHVlIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXI6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgV2Vi
Q29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgV2ViQ29yZTo6QXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZyYW1lcykKK3sK
KyAgICBpZiAoIW1faXNQbGF5aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9kZXNj
cmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxh
dGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1EZXNjcmlwdGlvbjo6
Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisgICAgICAgIG1fZGVzY3JpcHRpb24gPSAqV1RGOjpn
ZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZv
cm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKworICAgICAgICAvLyBBbGxvY2F0ZSBhIHJp
bmcgYnVmZmVyIGxhcmdlIGVub3VnaCB0byBjb250YWluIDIgc2Vjb25kcyBvZiBhdWRpby4KKyAg
ICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMjsK
KyAgICAgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShtX2Rlc2NyaXB0aW9uLnN0cmVhbURlc2Ny
aXB0aW9uKCksIG1fbnVtYmVyT2ZGcmFtZXMpOworICAgIH0KKworICAgIEFTU0VSVChpczxXZWJD
b3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkpOworICAgIG1fcmluZ0J1ZmZlci0+
c3RvcmUoZG93bmNhc3Q8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpLmxp
c3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGltZVZhbHVlKCkpOworICAgIHVpbnQ2NF90IHN0
YXJ0RnJhbWU7CisgICAgdWludDY0X3QgZW5kRnJhbWU7CisgICAgbV9yaW5nQnVmZmVyLT5nZXRD
dXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOworICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkF1
ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IHRpbWUsIG51bWJlck9mRnJhbWVzLCBzdGFydEZyYW1lLCBl
bmRGcmFtZSB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpCit7CisgICAg
U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAgIGlmIChzdG9yYWdlKQorICAgICAgICBz
dG9yYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJl
YWRPbmx5KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjpBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCB7IGhhbmRs
ZSwgbV9kZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fbnVtYmVyT2ZGcmFtZXMp
IH0sIG1faWRlbnRpZmllcik7Cit9CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE3N2JmN2FlMTYzMTdkOThlM2VmYjY4NWJmNzdkYjMyZTIzNjhkNTQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVO
QUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlci5oPgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KKworbmFtZXNwYWNl
IElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIsIHB1YmxpYyBTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZTo6Q2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyPiBjcmVhdGUoKTsKKyAgICB+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIoKTsK
KworICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllciBpZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGlj
aXQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7
CisKKyAgICAvLyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Q2xpZW50CisgICAgdm9pZCBzdG9y
YWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKKworICAgIC8vIFdlYkNvcmU6OkF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyCisgICAgdm9pZCBzdGFydCgpIGZpbmFsOworICAgIHZvaWQgc3Rv
cCgpIGZpbmFsOworICAgIHZvaWQgY2xlYXIoKSBmaW5hbDsKKyAgICB2b2lkIHNldE11dGVkKGJv
b2wpIGZpbmFsOworICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSBmaW5hbDsKKyAgICB2b2lkIHB1
c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQXVkaW9E
YXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmlu
YWw7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKKyAgICBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CisgICAg
aW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OworICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBm
YWxzZSB9OworfTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MTJhMDg0ZmJlNTQ3OTA0NzRlNzBmNzJmNGJkNTAwMjljODE5YmU4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlICwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYWY3YTk2NDhmYjdkMTNmNmZiNzIwNTM1MTM1ODUwNWM5NTUyODQwZS4uMzI5Y2ZlMmYzYWI0
NWMyODU3MGY0NGU1YTIxNzI2OTYzMGJjOWFhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIw
LTAxLTE1ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgTWVkaWFTdHJlYW0gYXVkaW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjE3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZ3B1
LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0wMS0xNCAgWmFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIExvbmcgY29udGludWF0aW9uIGNoYWluIGNvdWxk
IGxlYWQgdG8gc3RhY2sgZXhoYXVzdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZ3B1LXBy
b2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggN2RlNzc4MDA2NTUxODM1ZTdmMjRmODQxZTgyNWRhZGRhOWFlY2Q0Ni4u
ZDhmNmJiM2M4NWQ4YzUzZDhkMDc0NmM1NzNkMTliZDgwNTExZGZlOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9n
cHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjksNyArMjI5LDYgQEAgYWNjZXNzaWJp
bGl0eS9tZWRpYS1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KIGZhc3QvYmxvY2svZmxvYXQvbGlzdC1t
YXJrZXItaXMtZmxvYXQtY3Jhc2guaHRtbCBbIFNraXAgXQogZmFzdC9jc3MvcmVsYXRpdmUtcG9z
aXRpb24tcmVwbGFjZWQtaW4tdGFibGUtZGlzcGxheS1jcmFzaC5odG1sIFsgU2tpcCBdCiBmYXN0
L21lZGlhY2FwdHVyZWZyb21lbGVtZW50IFsgU2tpcCBdCi1mYXN0L21lZGlhc3RyZWFtIFsgU2tp
cCBdCiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1sZWdhY3kuaHRtbCBbIFNraXAgXQog
ZnVsbHNjcmVlbi92aWRlby1jb250cm9scy10aW1lbGluZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rl
c3RzL2FwcGNhY2hlL3ZpZGVvLmh0bWwgWyBTa2lwIF0KQEAgLTI0Myw3ICsyNDIsNiBAQCBodHRw
L3Rlc3RzL21lZGlhL3ZpZGVvLXByZWxvYWQuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3BhZ2UtY2FjaGUtbWVkaWFrZXlzZXNzaW9uLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVz
dHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLW1lZGlhc3RyZWFtLmh0bWwgWyBTa2lwIF0KIGh0dHAv
d3B0L21lZGlhcmVjb3JkZXIgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLWZyb21lbGVtZW50L2lkbGhhcm5lc3MuaHRtbCBbIFNraXAg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01l
ZGlhUmVjb3JkZXItc3RvcC5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1lcnJvci5odG1sIFsgU2tp
cCBdCkBAIC0yNjAsNiArMjU4LDMgQEAgaHR0cC90ZXN0cy93ZWJnbCBbIFNraXAgXQoganMvc2hh
cmVkLWFycmF5LWJ1ZmZlci13ZWJnbC5odG1sIFsgU2tpcCBdCiAKIHdlYmdwdSBbIFNraXAgXQot
Ci13ZWJydGMgWyBTa2lwIF0KLXBsYXRmb3JtL21hYy93ZWJydGMgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387767</attachid>
            <date>2020-01-15 02:13:49 -0800</date>
            <delta_ts>2020-01-15 05:01:48 -0800</delta_ts>
            <desc>Fixing non MediaStream builds</desc>
            <filename>bug-206175-20200115111347.patch</filename>
            <type>text/plain</type>
            <size>60975</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMyN2MzNzM2YjRjMGRh
NWJiMmI3MjYyYzg3M2NiMGI3MjUyMDNkNC4uZTlhYjllOTk2YzM2NTNkY2Q1MWIyY2Y1MTlkZTZj
OGU1NDY4NjM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAxLTE1ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
TWVkaWFTdHJlYW0gYXVkaW8gdHJhY2sgcmVuZGVyaW5nIGluIEdQVVByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjE3NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBTaW1wbGlmeSBtb2RlbCB0byB1
c2Ugc3RhcnQvc3RvcCBpbnN0ZWFkIG9mIHNldFBhdXNlZC4KKyAgICAgICAgU2ltcGxpZnkgYW5k
IGZpeCBpc3N1ZSBpbiBjb21wdXRhdGlvbiBvZiB0aGUgbXV0ZWQgc3RhdGUgb2YgdGhlIHJlbmRl
cmVyLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzIHJ1biB3aXRoIEdQVSBwcm9j
ZXNzIGVuYWJsZWQgYW5kIG1hbnVhbCB0ZXN0aW5nCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGxheUludGVybmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBhdXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtOjp1cGRhdGVSZW5kZXJlck11dGVkU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnN0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6
OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJD
b2NvYTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cmVuZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oOgorCiAyMDIw
LTAxLTE0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgTG9uZyBj
b250aW51YXRpb24gY2hhaW4gY291bGQgbGVhZCB0byBzdGFjayBleGhhdXN0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDlkNDAzMjA0MDY3YjdhODYwN2E3NTk0ZmJlOGU1ZTNlM2M3MWNlM2IuLjQxOWExZDg5YTY0
ZTE2NzEzNGFjOWQzNWQ4ZGEyMGEzMWIzMDQ0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAK
KzIwMjAtMDEtMTUgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBNZWRpYVN0cmVhbSBhdWRpbyB0cmFjayByZW5kZXJpbmcgaW4gR1BV
UHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA2MTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIElt
cGxlbWVudCBhbiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBhdCBXZWJLaXQgbGV2ZWwg
YnkgY3JlYXRpbmcgYSByZW1vdGUgcmVuZGVyZXIgaW4gR1BVUHJvY2VzcyBhbmQgc2VuZGluZyBJ
UEMgdG8gcGFzcworICAgICAgICBhdWRpbyBkYXRhIGFzIHdlbGwgYXMgb3JkZXJzIChzdGFydC9z
dG9wL3NldE11dGVkKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIHJlbW90ZSByZW5kZXJlciB1
c2luZyBXZWJDb3JlIGF1ZGlvIHRyYWNrIHJlbmRlcmVyLgorCisgICAgICAgIEVuYWJsZSBXZWJL
aXQgcmVtb3RlIHJlbmRlcmVyIEYgR1BVIHByb2Nlc3MgZm9yIG1lZGlhIGlzIGVuYWJsZWQuCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9UcmFj
a1JlbmRlcmVyTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpuZXh0TG9nSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6Om51bGxMb2dnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6UmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6flJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXI6OnN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjbGVhcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRNdXRlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRWb2x1bWUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6YXVk
aW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlcjo6ZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6Y3JlYXRlUmVuZGVy
ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ck1hbmFnZXI6OnJlbGVhc2VSZW5kZXJlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6
OmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcik6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjp+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIp
OgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RhcnQp
OgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcCk6
CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjbGVhcik6
CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRNdXRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRW
b2x1bWUpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
cHVzaFNhbXBsZXMpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcjo6c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklk
ZW50aWZpZXIuaDogQWRkZWQuCisKIDIwMjAtMDEtMTQgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTQ1
NDguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAppbmRleCA4MDBhOTMwYzg0
NTVkMWEzMzZiODBlMDVkODZjOGY5OTY2N2ZjYjc2Li4xNDYyZTMyMmY5ZTkwYTg4ZWNhOGUyOGE5
OWUyZGE4NjdjYTJkYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgK
QEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lk
IHNldFBhdXNlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpID0gMDsK
ICAgICAvLyBNYXkgYmUgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCmluZGV4IDk3ZDllNjlkMTVmMDY0MjFhYmY5NGQ0
NDhjOGU4ODlkNDg2MDM1ZmIuLmUwMDY5NWNkNjdmZGRjYzI5MDBlNjFiNjc4ODY4Y2ZjNTg1NmUx
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uY3BwCkBAIC03Nyw3ICs3
Nyw3IEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6cGxheUludGVybmFsKCkK
ICAgICBtX2lzUGxheWluZyA9IHRydWU7CiAgICAgbV9hdXRvUGxheSA9IGZhbHNlOwogCi0gICAg
bV9yZW5kZXJlci0+c2V0UGF1c2VkKGZhbHNlKTsKKyAgICBtX3JlbmRlcmVyLT5zdGFydCgpOwog
fQogCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBsYXkoKQpAQCAtOTUsNyAr
OTUsNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnBhdXNlKCkKICAgICBt
X2lzUGxheWluZyA9IGZhbHNlOwogICAgIG1fYXV0b1BsYXkgPSBmYWxzZTsKIAotICAgIG1fcmVu
ZGVyZXItPnNldFBhdXNlZCh0cnVlKTsKKyAgICBtX3JlbmRlcmVyLT5zdG9wKCk7CiB9CiAKIHZv
aWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkK
QEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnRy
YWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogCiB2b2lkIEF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OnVwZGF0ZVJlbmRlcmVyTXV0ZWRTdGF0ZSgpCiB7Ci0g
ICAgbV9yZW5kZXJlci0+c2V0TXV0ZWQobV9pc1BsYXlpbmcgJiYgIXN0cmVhbVRyYWNrKCkubXV0
ZWQoKSAmJiAhc3RyZWFtVHJhY2soKS5lbmRlZCgpICYmIHN0cmVhbVRyYWNrKCkuZW5hYmxlZCgp
KTsKKyAgICBtX3JlbmRlcmVyLT5zZXRNdXRlZChzdHJlYW1UcmFjaygpLm11dGVkKCkgfHwgc3Ry
ZWFtVHJhY2soKS5lbmRlZCgpIHx8ICFzdHJlYW1UcmFjaygpLmVuYWJsZWQoKSk7CiB9CiAKIHZv
aWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJDb2NvYS5jcHAKaW5kZXggZTc1NDYxZjZkNWQ4ZjZiN2U2YWY5ZmQ1NmNjMjZmNWZiZDM5
MmJiNS4uN2NkMzE2NWVlYWEyOGIxYTI0OTIyNGZhNTFjODY4OTY5NmI3ZGEyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcApAQCAt
NDMsMTcgKzQzLDI2IEBAIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EoKSA9IGRlZmF1CiAKIEF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyQ29jb2E6On5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29h
KCkgPSBkZWZhdWx0OwogCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6
OnN0YXJ0KCkKK3sKKyAgICBtX3Nob3VsZFBsYXkgPSB0cnVlOworCisgICAgaWYgKG1fZGF0YVNv
dXJjZSkKKyAgICAgICAgbV9kYXRhU291cmNlLT5zZXRQYXVzZWQoZmFsc2UpOworfQorCiB2b2lk
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnN0b3AoKQogewotICAgIGlmICgh
bV9pc0F1ZGlvVW5pdFN0YXJ0ZWQpCi0gICAgICAgIHJldHVybjsKKyAgICBtX3Nob3VsZFBsYXkg
PSBmYWxzZTsKIAotICAgIGlmIChtX3JlbW90ZUlPVW5pdCkKLSAgICAgICAgQXVkaW9PdXRwdXRV
bml0U3RvcChtX3JlbW90ZUlPVW5pdCk7CisgICAgaWYgKG1fZGF0YVNvdXJjZSkKKyAgICAgICAg
bV9kYXRhU291cmNlLT5zZXRQYXVzZWQodHJ1ZSk7CiB9CiAKIHZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYTo6Y2xlYXIoKQogeworICAgIG1fc2hvdWxkUGxheSA9IGZhbHNl
OworCiAgICAgaWYgKG1fZGF0YVNvdXJjZSkKICAgICAgICAgbV9kYXRhU291cmNlLT5zZXRQYXVz
ZWQodHJ1ZSk7CiAKQEAgLTY2LDEzICs3NSw3IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJDb2NvYTo6Y2xlYXIoKQogICAgIG1fZGF0YVNvdXJjZSA9IG51bGxwdHI7CiAgICAg
bV9pbnB1dERlc2NyaXB0aW9uID0gbnVsbHB0cjsKICAgICBtX291dHB1dERlc2NyaXB0aW9uID0g
bnVsbHB0cjsKLX0KLQotdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpz
ZXRQYXVzZWQoYm9vbCB2YWx1ZSkKLXsKLSAgICBtX3BhdXNlZCA9IHZhbHVlOwotICAgIGlmICht
X2RhdGFTb3VyY2UpCi0gICAgICAgIG1fZGF0YVNvdXJjZS0+c2V0UGF1c2VkKHZhbHVlKTsKKyAg
ICBtX2lzQXVkaW9Vbml0U3RhcnRlZCA9IGZhbHNlOwogfQogCiBBdWRpb0NvbXBvbmVudEluc3Rh
bmNlIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OmNyZWF0ZUF1ZGlvVW5pdChD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIG91dHB1dERlc2NyaXB0aW9uKQpAQCAtMTQzLDYgKzE0
NiwxNCBAQCBBdWRpb0NvbXBvbmVudEluc3RhbmNlIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyQ29jb2E6OmNyZWF0ZUF1ZGlvVW5pdChDQUF1ZAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckNvY29hOjpwdXNoU2FtcGxlcyhjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUs
IGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7CiAgICAgQVNTRVJU
KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3Jp
cHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgIGlmICghbV9zaG91bGRQbGF5KSB7
CisgICAgICAgIGlmIChtX2lzQXVkaW9Vbml0U3RhcnRlZCkgeworICAgICAgICAgICAgaWYgKG1f
cmVtb3RlSU9Vbml0KQorICAgICAgICAgICAgICAgIEF1ZGlvT3V0cHV0VW5pdFN0b3AobV9yZW1v
dGVJT1VuaXQpOworICAgICAgICAgICAgbV9pc0F1ZGlvVW5pdFN0YXJ0ZWQgPSBmYWxzZTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKCFtX2lucHV0RGVzY3Jp
cHRpb24gfHwgKm1faW5wdXREZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICBt
X2lzQXVkaW9Vbml0U3RhcnRlZCA9IGZhbHNlOwpAQCAtMTk5LDcgKzIxMCw3IEBAIHZvaWQgQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFU
aW1lJiBzYW1wbGVUaW1lCiAKIE9TU3RhdHVzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
Q29jb2E6OnJlbmRlcihVSW50MzIgc2FtcGxlQ291bnQsIEF1ZGlvQnVmZmVyTGlzdCYgaW9EYXRh
LCBVSW50MzIgLyppbkJ1c051bWJlciovLCBjb25zdCBBdWRpb1RpbWVTdGFtcCYgdGltZVN0YW1w
LCBBdWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyYgYWN0aW9uRmxhZ3MpCiB7Ci0gICAgaWYgKGlz
TXV0ZWQoKSB8fCBtX3BhdXNlZCB8fCAhbV9kYXRhU291cmNlKSB7CisgICAgaWYgKGlzTXV0ZWQo
KSB8fCAhbV9zaG91bGRQbGF5IHx8ICFtX2RhdGFTb3VyY2UpIHsKICAgICAgICAgQXVkaW9TYW1w
bGVCdWZmZXJMaXN0Ojp6ZXJvQUJMKGlvRGF0YSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihzYW1wbGVD
b3VudCAqIG1fb3V0cHV0RGVzY3JpcHRpb24tPmJ5dGVzUGVyRnJhbWUoKSkpOwogICAgICAgICBh
Y3Rpb25GbGFncyA9IGtBdWRpb1VuaXRSZW5kZXJBY3Rpb25fT3V0cHV0SXNTaWxlbmNlOwogICAg
ICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJDb2NvYS5oCmluZGV4IGE5ZTU0NjFjYjAyOGRmYzFkZmQyZTk0ZTNmM2M2ZDhkOGI1Y2Fl
NDQuLjE1NGRmYTk1NDI3ZWYyYmJkMDU0YTlmNTNiNGY2YjUwNjIxZjM5NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaApAQCAtNDgsOSAr
NDgsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIC8vIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyCiAgICAgdm9pZCBwdXNoU2FtcGxlcyhjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVf
dCkgZmluYWw7CisgICAgdm9pZCBzdGFydCgpIGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFs
OwogICAgIHZvaWQgY2xlYXIoKSBmaW5hbDsKLSAgICB2b2lkIHNldFBhdXNlZChib29sKSBmaW5h
bDsKIAogICAgIHN0YXRpYyBPU1N0YXR1cyBpbnB1dFByb2Modm9pZCosIEF1ZGlvVW5pdFJlbmRl
ckFjdGlvbkZsYWdzKiwgY29uc3QgQXVkaW9UaW1lU3RhbXAqLCBVSW50MzIgaW5CdXNOdW1iZXIs
IFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0Kik7CiAgICAgT1NTdGF0dXMg
cmVuZGVyKFVJbnQzMiBzYW1wbGVDb3VudCwgQXVkaW9CdWZmZXJMaXN0JiwgVUludDMyIGluQnVz
TnVtYmVyLCBjb25zdCBBdWRpb1RpbWVTdGFtcCYsIEF1ZGlvVW5pdFJlbmRlckFjdGlvbkZsYWdz
Jik7CkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ3Jvc3MgdGhyZWFkIG1lbWJl
cnMKICAgICBSZWZQdHI8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7CiAgICAg
Ym9vbCBtX2lzQXVkaW9Vbml0U3RhcnRlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3BhdXNlZCB7
IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZFBsYXkgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRjMzFh
ODgwNGNjZWM4NTFmZmQzNTBjN2IwMTJjNzcwZmM2OWU3ZmQuLjFhMjRiYmZjMDcyZDI2ZmVjNzE2
NTNhOTU5ZmQ3M2IwYTJmNDNkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKQEAgLTIwLDYgKzIwLDggQEAgJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5t
ZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKaW5kZXggZmFiZGY5ODNlNDNiMzY3OWQ1Njc3YzEyZTY1NjQxYTIyM2JjMjczMS4uMWRj
NTQ2NTI4ZjViYTIyZDczNjUwZTAwNGJhMjgxZWMyMmYyNjIzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMjAsNiArMTIwLDEyIEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb2Nl
c3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
ZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDNkNGMxOWIzNTdlZGMzMzEzYTE4YzU4MGY5M2UwZDJiMjgw
ZTZjMDQuLmExOWQwNzllMDAzYWE4YmYyYTM4NTMxZmQ5ZGVhYzUxYTc2NGZiMmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0MCw2ICsxNDAsOCBAQCBNRVNTQUdFX1JFQ0VJVkVS
UyA9IFwKICAgICBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIgXAogICAgIFBsdWdpblBy
b2Nlc3NQcm94eSBcCiAgICAgUGx1Z2luUHJveHkgXAorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlciBcCisgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIgXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXAogICAgIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlciBcCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IDdmNzMxOTVmNWU4YWIyZTM4ZDk5YTRiMDA4ZTNlNWQxNWI3
YzMxN2UuLjQ2YjEzNDk4ODllNGRmNTA4MGMzYmIxYTE3YTg2MWRjNGU0Yjc0YmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKQEAgLTM2LDYgKzM2LDkgQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eS5o
IgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBA
IC0xNTAsNiArMTUzLDE2IEBAIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyJiBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjptZWRpYVJlY29yZGVyTWFuYWdlcigpCiAKICAgICByZXR1cm4gKm1f
cmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7CiB9CisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
CitSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXImIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmF1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXIoKQoreworICAgIGlmICgh
bV9hdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyKQorICAgICAgICBtX2F1ZGlvVHJhY2tSZW5kZXJl
ck1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlcj4oKTsKKworICAgIHJldHVybiAqbV9hdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyOwor
fQorI2VuZGlmCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRD
KQpAQCAtMTg3LDYgKzIwMCwxNiBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgICAgICBt
ZWRpYVJlY29yZGVyTWFuYWdlcigpLmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgYXVkaW9U
cmFja1JlbmRlcmVyTWFuYWdlcigpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29u
bmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGF1ZGlv
VHJhY2tSZW5kZXJlck1hbmFnZXIoKS5kaWRSZWNlaXZlUmVuZGVyZXJNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAjZW5kaWYKICNp
ZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKICAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGY0ODU5NjRkNDZjNTJlMzM4ZDJhYmU0
Zjc2NWRkY2I1YTk0YTA3OTAuLmNjMjExMGI1ZmEyMTk0NWM2YzQzOTg4Y2M4OTE1ZjljNTg1MWY2
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaApAQCAtNDAsNiArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgR1BVUHJvY2VzczsKIGNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5OworY2xhc3MgUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk7CiBjbGFzcyBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKIGNs
YXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOwpAQCAtNzMsNiArNzQsOSBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKTsK
ICAgICBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlciYgbWVkaWFSZWNvcmRlck1hbmFnZXIoKTsK
KyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyJiBhdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyKCk7CisjZW5kaWYKICNl
bmRpZgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKQEAgLTkyLDYgKzk2LDkgQEAg
cHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJl
Y29yZGVyTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKKyNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcj4gbV9hdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyOworI2VuZGlm
CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzUHJveHk+IG1fbGliV2ViUlRDQ29kZWNzUHJveHk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVkMWZhYzRkYThjMWQ0Y2M2NzJjM2M4ZTdjYWI2NDdlNjlmYjVmOWYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmNwcApAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKK3N0YXRpYyBjb25zdCB2b2lkKiBuZXh0TG9nSWRlbnRpZmllcigpCit7CisgICAgc3Rh
dGljIHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJl
cigpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50
aWZpZXIpOworfQorCitzdGF0aWMgUmVmUHRyPExvZ2dlcj4mIG51bGxMb2dnZXIoKQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQdHI8TG9nZ2VyPj4gbG9nZ2VyOworICAgIHJldHVy
biBsb2dnZXI7Cit9CisjZW5kaWYKKworUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCkKKyAgICA6IG1fcmVuZGVy
ZXIoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSgpKQorICAg
ICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkpCit7CisgICAgQVNTRVJUKG1fcmVuZGVy
ZXIpOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgaWYgKCFudWxsTG9nZ2VyKCku
Z2V0KCkpIHsKKyAgICAgICAgbnVsbExvZ2dlcigpID0gTG9nZ2VyOjpjcmVhdGUodGhpcyk7Cisg
ICAgICAgIG51bGxMb2dnZXIoKS0+c2V0RW5hYmxlZCh0aGlzLCBmYWxzZSk7CisgICAgfQorICAg
IG1fcmVuZGVyZXItPnNldExvZ2dlcigqbnVsbExvZ2dlcigpLCBuZXh0TG9nSWRlbnRpZmllcigp
KTsKKyNlbmRpZgorfQorCitSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6flJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCkKK3sKKyAgICBtX3JlbmRlcmVyLT5j
bGVhcigpOworfQorCitTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSYgUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXI6OnN0b3JhZ2UoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKK30KKwor
dm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RhcnQoKQoreworICAg
IG1fcmVuZGVyZXItPnN0YXJ0KCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXI6OnN0b3AoKQoreworICAgIG1fcmVuZGVyZXItPnN0b3AoKTsKK30KKwordm9p
ZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Y2xlYXIoKQoreworICAgIG1f
cmVuZGVyZXItPmNsZWFyKCk7Cit9CisKK3ZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXI6OnNldE11dGVkKGJvb2wgdmFsdWUpCit7CisgICAgbV9yZW5kZXJlci0+c2V0TXV0
ZWQodmFsdWUpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
OjpzZXRWb2x1bWUoZmxvYXQgdmFsdWUpCit7CisgICAgbV9yZW5kZXJlci0+c2V0Vm9sdW1lKHZh
bHVlKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6YXVk
aW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRs
ZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
dWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCit7CisgICAgQVNTRVJUKG1fcmluZ0J1ZmZlcik7Cisg
ICAgaWYgKCFtX3JpbmdCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVzY3JpcHRp
b24gPSBkZXNjcmlwdGlvbjsKKworICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAg
bV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25s
eShmYWxzZSk7CisgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcCho
YW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIHN0b3JhZ2Uo
KS5zZXRTdG9yYWdlKFdURk1vdmUobWVtb3J5KSk7CisgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5
KHRydWUpOworCisgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVy
T2ZGcmFtZXMpOworfQorCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzLCB1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3sKKyAgICBB
U1NFUlQobV9yaW5nQnVmZmVyKTsKKyAgICBpZiAoIW1fcmluZ0J1ZmZlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9yaW5nQnVmZmVyLT5zZXRDdXJyZW50RnJhbWVCb3VuZHMoc3RhcnRGcmFt
ZSwgZW5kRnJhbWUpOworCisgICAgV2ViQXVkaW9CdWZmZXJMaXN0IGF1ZGlvRGF0YShtX2Rlc2Ny
aXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyLT5mZXRjaChhdWRpb0Rh
dGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisKKyAgICBtX3Jl
bmRlcmVyLT5wdXNoU2FtcGxlcyh0aW1lLCBhdWRpb0RhdGEsIG1fZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMxOWNiNGFlOTMwYjZmMzEwODVhZTA1MTUxZThjMThlOGQ5NGM2ZTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1l
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyOworY2xhc3MgQ0FSaW5nQnVmZmVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlOworCitjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBmaW5h
bCA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
KCk7CisgICAgflJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCk7CisKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZp
bmFsOworCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBz
dGFydCgpOworICAgIHZvaWQgc3RvcCgpOworICAgIHZvaWQgY2xlYXIoKTsKKyAgICB2b2lkIHNl
dE11dGVkKGJvb2wpOworICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKKyAgICB2b2lkIGF1ZGlv
U2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgY29uc3Qg
V2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZGcmFt
ZXMpOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0X3Qg
bnVtYmVyT2ZGcmFtZXMsIHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IGVuZEZyYW1lKTsK
KworICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCk7CisKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IG1fcmVuZGVy
ZXI7CisKKyAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlv
bjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZm
ZXI7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YmZlY2MyODVmNjQ0NTFlOTU5ZGU2NTVjZDIyNTAxMmJmYjVhZGIzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM4IEBA
CisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCittZXNzYWdlcyAtPiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlciBOb3RSZWZDb3VudGVkIHsKKyAgICBTdGFydCgpCisgICAgU3RvcCgpCisgICAg
Q2xlYXIoKQorCisgICAgU2V0TXV0ZWQoYm9vbCB2YWx1ZSkKKyAgICBTZXRWb2x1bWUoZmxvYXQg
dmFsdWUpCisKKyAgICBBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1l
bW9yeTo6SGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCisgICAgQXVkaW9TYW1w
bGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcywgdWlu
dDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ2ODMzYzg1N2RlNjFiZjU4YjFmMGVjYjIzNGM2NjFmMjQwYjkyMzIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKK1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6flJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyTWFuYWdlcigpID0gZGVmYXVsdDsKKwordm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXI6OmRpZFJlY2VpdmVSZW5kZXJlck1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGF1dG8q
IHJlbmRlcmVyID0gbV9yZW5kZXJlcnMuZ2V0KG1ha2VPYmplY3RJZGVudGlmaWVyPEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKSkpCisgICAgICAgIHJlbmRlcmVyLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKK30KKwordm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXI6OmNyZWF0ZVJlbmRlcmVyKEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVCghbV9yZW5kZXJlcnMuY29udGFpbnMoaWRl
bnRpZmllcikpOworICAgIG1fcmVuZGVyZXJzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyPigpKTsKK30KKwordm9pZCBSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OnJlbGVhc2VSZW5kZXJlcihBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBB
U1NFUlQobV9yZW5kZXJlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fcmVuZGVyZXJz
LnJlbW92ZShpZGVudGlmaWVyKTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWRlNWFlYTAwNDk2N2NjMDIxMWFhNDEzMmQwNWI3
OTkyYjFkYjEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaApAQCAtMCww
ICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NP
QSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
cklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBJUEMg
eworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjsKKworY2xh
c3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyIGZpbmFsIDogcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
KCk7CisgICAgflJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcigpOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlUmVuZGVyZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorCitwcml2YXRlOgorICAgIC8v
IElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAgICB2b2lkIGNyZWF0ZVJlbmRlcmVy
KEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcik7CisgICAgdm9pZCByZWxl
YXNlUmVuZGVyZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyKTsKKwor
ICAgIEhhc2hNYXA8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLCBzdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+PiBtX3JlbmRl
cmVyczsKK307CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E1NjAyMWRlOTRlNzRlZDkwMjM4NDUxNDZh
NGI1NWY0ODBiOTI1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFC
TEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK21lc3NhZ2VzIC0+IFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBOb3RSZWZDb3VudGVkIHsK
KyAgICBDcmVhdGVSZW5kZXJlcihXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SWRlbnRpZmllciBpZCkKKyAgICBSZWxlYXNlUmVuZGVyZXIoV2ViS2l0OjpBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIgaWQpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggN2I5MjEzZGE1YzVlY2Q2YTE2ZWNhYTZi
MzE0NTAyOTdlNjUxZmYxMi4uMjU2NGY1Mjg4MjhmNTFkMDNjZGQzMGM3ZmY4NzZkMjVkZGE1NDVj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMTgsNiAr
MjE4LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAg
ICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInLAogICAgICAgICAn
V2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAorICAgICAgICAnV2ViS2l0OjpBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpMYXll
ckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZp
ZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKaW5kZXggZTZkZmMzMDM3MjM5Y2EyNDc1NjRhMzRhYjU2MjU5MDAzYWNm
MTJmYS4uNDcyZTRlMDJmNjgwYzRhZWU2M2JmNDU4NWI4NzU3MzA1OGZmMzRhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CkBAIC0yNCw2ICsyNCw4IEBACiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCiBHUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCitHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKK0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAKIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIuY3BwCiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVy
TWFuYWdlci5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApA
QCAtNTI1LDYgKzUyNyw3IEBAIFdlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKIFdl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKIFdlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCitXZWJQcm9jZXNzL0dQVS93ZWJy
dGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCiAKIFdlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNjRmODVhNmQzZTJlZTAx
MjIwYmMxYzJjYWZiY2IyOTczY2E4Yjk3NC4uYjIzODMyYWIyN2E3NGI1N2MyNjVmOTMyOWEwYmUy
Y2MwZjA5OWNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjQwLDYgKzY0MCw4IEBAIEdQ
VVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIEdQVVByb2Nlc3NNZXNzYWdlUmVjZWl2
ZXIuY3BwCiBMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIExpYldlYlJU
Q0NvZGVjc01lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlTWVkaWFSZWNvcmRlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcAogU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkOTBlYWY0
ZjI0ZjBlZTdmN2I0NjQzNDE1ZmRjMDg0NzI5YTAzYTAuLjFjNzBlNjQ1ZTg0MzNmMTRhZTAwZDU3
ZDJjMjU0M2EwMGUwYzJmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzM5Myw2ICszMzkzLDEyIEBACiAJCTQxRDEyOUQ5MUYzRDEw
MTQwMEQxNUU0NyAvKiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MUQ1QzZEODIzOEVCMjBEMDBCOUIzQ0IgLyogU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclNvZnRVcGRh
dGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFENUM2RDkyMzhFQjIw
RTAwQjlCM0NCIC8qIFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFENjQ1NTIyM0NDQjkyMTAwNDg2
RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluOyBwYXRo
ID0gR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNDFENjQ1NTMyM0ND
QjkyMTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg7IHBhdGgg
PSBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5o
OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTQxRDY0NTU0MjNDQ0I5MjIwMDQ4NkUw
RSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA7IHBhdGggPSBH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNDFENjQ1NTUyM0NDQjk2OTAwNDg2RTBF
IC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
RDY0NTU2MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDFENjQ1NTcyM0NDQjk2OTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFEQzQ1OTQxRTNENkUxRTAwQjExRjUxIC8q
IE5ldHdvcmtSVENQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
ZXR3b3JrUlRDUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFEQzQ1
OTUxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDUHJvdmlkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MURDNDU5ODFFM0Q2RUQ2MDBCMTFGNTEgLyogTmV0d29y
a1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5ldHdvcmtS
VENQcm92aWRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0
MTMsNiArMzQxOSw5IEBACiAJCTQxRkJFODIyMjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3b3JrQ29u
dGVudFJ1bGVMaXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
ZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MUZCRTgyMzIwNkRBNzlDMDAwRjA3NDEgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29ya0NvbnRlbnRS
dWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxRkJFODI0MjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ29udGVu
dFJ1bGVMaXN0TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkNE
NkFEMjNDQ0MyNjAwMEM2MjU2NyAvKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZBRTIzQ0NDMjYxMDBD
NjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUZDRDZBRjIzQ0NDMjYxMDBDNjI1Njcg
LyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRp
Zmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUwQUVCRjFEQzNGQUU1MDA5
OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2hhcmVkTWVtb3J5Q29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NDU5OTg0MTIyODMzRTYwMDBFNjEzNzMgLyogU3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDlEOTBEODIxRkQ2M0ZFMDBGNjc3QzAgLyog
TG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzE5Nyw2ICs3MjA2LDkgQEAKIAkJNDE3MjE5ODgyM0I2MTI2
MTAwQUU1Njg2IC8qIHdlYnJ0YyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNDFGQ0Q2QUUyM0NDQzI2MTAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyLmNwcCAqLywKKwkJCQk0MUZDRDZBRDIzQ0NDMjYwMDBDNjI1NjcgLyogQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCAqLywKKwkJCQk0MUZDRDZBRjIzQ0NDMjYxMDBD
NjI1NjcgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmggKi8sCiAJ
CQkJNDE3MjE5OEEyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5jcHAgKi8sCiAJ
CQkJNDE3MjE5ODkyM0I2MTI4MjAwQUU1Njg2IC8qIExpYldlYlJUQ0NvZGVjcy5oICovLAogCQkJ
CTQxNzIxOThEMjNCNjJDN0MwMEFFNTY4NiAvKiBMaWJXZWJSVENDb2RlY3MubWVzc2FnZXMuaW4g
Ki8sCkBAIC03MjE3LDYgKzcyMjksMTIgQEAKIAkJCQk0MUUwQTdDNjIzQjYzOTc4MDA1NjEwNjAg
LyogTGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLywKIAkJCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEw
NjAgLyogTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFFMEE3Qzgy
M0I2Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICovLAorCQkJCTQxRDY0
NTU0MjNDQ0I5MjIwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5jcHAgKi8sCisJCQkJNDFENjQ1NTMyM0NDQjkyMTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8sCisJCQkJNDFENjQ1NTIyM0NDQjkyMTAwNDg2RTBF
IC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluICovLAor
CQkJCTQxRDY0NTU2MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXIuY3BwICovLAorCQkJCTQxRDY0NTU3MjNDQ0I5NjkwMDQ4NkUwRSAv
KiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaCAqLywKKwkJCQk0
MUQ2NDU1NTIzQ0NCOTY5MDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTQxNzZFODlEMjNDMzc2RDUwMDNFODNG
RSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCAqLywKIAkJCQk0MTc2RTg5ODIzQzM2Njc3MDAz
RTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5oICovLAogCQkJCTQxNzZFODlDMjNDMzc0Nzkw
MDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIuY3BwCmluZGV4IGNhZGQ4OGFmN2Q5ZGUwMjE4OWM1NjcyODNkY2Y5ZjQy
N2IxYmQ4ODcuLjU0N2Q0NWYyYWVmNzljZGFiOWQyZTM0ZWZjOTJlMGRjNzY3MDAwMWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTI4LDcgKzI4LDkgQEAKIAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCisjaW5jbHVkZSAiUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1JTUVU
eXBlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5o
IgpAQCAtMzY2LDYgKzM2OCwxMSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzKQogICAgIH07CiAKICAgICBS
ZW1vdGVNZWRpYVBsYXllclN1cHBvcnQ6OnNldFJlZ2lzdGVyUmVtb3RlUGxheWVyQ2FsbGJhY2so
c2V0dGluZ3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkgPyBXVEZNb3ZlKHJlZ2lzdGVyRW5naW5l
KSA6IFJlbW90ZU1lZGlhUGxheWVyU3VwcG9ydDo6UmVnaXN0ZXJSZW1vdGVQbGF5ZXJDYWxsYmFj
aygpKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRp
YSgpKQorICAgICAgICBXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c2V0
Q3JlYXRvcihXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUpOwor
I2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVDYWNoZWRT
dGF0ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVBs
YXllclN0YXRlJiYgc3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmFjZDIyMjc4YjYxNzU2MWIyMTJhNGEzMjBjZjc5ZjdmMjNiZGY5Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5j
bHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4gQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0
cjxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4obmV3IEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyIHsgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkgfSk7Cit9CisKK0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAg
ICAsIG1faWRlbnRpZmllcihBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXI6
OmdlbmVyYXRlKCkpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJp
bmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHRoaXMpKSkK
K3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6Q3JlYXRlUmVuZGVyZXIgeyBtX2lkZW50aWZpZXIgfSwg
MCk7Cit9CisKK0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjp+QXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpSZWxlYXNlUmVuZGVyZXIg
eyBtX2lkZW50aWZpZXIgfSwgMCk7Cit9CisKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI6OnN0YXJ0KCkKK3sKKyAgICBtX2lzUGxheWluZyA9IHRydWU7CisgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
U3RhcnQgeyB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyOjpzdG9wKCkKK3sKKyAgICBtX2lzUGxheWluZyA9IGZhbHNlOworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OlN0b3AgeyB9LCBtX2lkZW50aWZpZXIpOworfQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyOjpjbGVhcigpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Q2xlYXIgeyB9LCBtX2lkZW50
aWZpZXIpOworfQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRNdXRl
ZChib29sIHZhbHVlKQoreworICAgIFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyOjpzZXRNdXRlZCh2YWx1ZSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6U2V0TXV0ZWQgeyB2YWx1ZSB9LCBt
X2lkZW50aWZpZXIpOworfQorCit2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpz
ZXRWb2x1bWUoZmxvYXQgdmFsdWUpCit7CisgICAgV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXI6OnNldFZvbHVtZSh2YWx1ZSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6U2V0Vm9sdW1lIHsg
dmFsdWUgfSwgbV9pZGVudGlmaWVyKTsKK30KKwordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBXZWJDb3Jl
OjpQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQoreworICAg
IGlmICghbV9pc1BsYXlpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Rlc2NyaXB0
aW9uICE9IGRlc2NyaXB0aW9uKSB7CisgICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9y
bURlc2NyaXB0aW9uKCkudHlwZSA9PSBXZWJDb3JlOjpQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1
ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxj
b25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURl
c2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIEFsbG9jYXRlIGEgcmluZyBi
dWZmZXIgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gMiBzZWNvbmRzIG9mIGF1ZGlvLgorICAgICAg
ICBtX251bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOworICAg
ICAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKG1fZGVzY3JpcHRpb24uc3RyZWFtRGVzY3JpcHRp
b24oKSwgbV9udW1iZXJPZkZyYW1lcyk7CisgICAgfQorCisgICAgQVNTRVJUKGlzPFdlYkNvcmU6
OldlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKSk7CisgICAgbV9yaW5nQnVmZmVyLT5zdG9y
ZShkb3duY2FzdDxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlvRGF0YSkubGlzdCgp
LCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUoKSk7CisgICAgdWludDY0X3Qgc3RhcnRG
cmFtZTsKKyAgICB1aW50NjRfdCBlbmRGcmFtZTsKKyAgICBtX3JpbmdCdWZmZXItPmdldEN1cnJl
bnRGcmFtZUJvdW5kcyhzdGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9T
YW1wbGVzQXZhaWxhYmxlIHsgdGltZSwgbnVtYmVyT2ZGcmFtZXMsIHN0YXJ0RnJhbWUsIGVuZEZy
YW1lIH0sIG1faWRlbnRpZmllcik7Cit9CisKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkKK3sKKyAgICBTaGFy
ZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgaWYgKHN0b3JhZ2UpCisgICAgICAgIHN0b3Jh
Z2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9u
bHkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkIHsgaGFuZGxlLCBt
X2Rlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9udW1iZXJPZkZyYW1lcykgfSwg
bV9pZGVudGlmaWVyKTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTc3YmY3YWUxNjMxN2Q5OGUzZWZiNjg1YmY3N2RiMzJlMjM2OGQ1NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyLmg+CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgorCituYW1lc3BhY2UgSVBD
IHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciwgcHVibGljIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
OjpDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI+IGNyZWF0ZSgpOworICAgIH5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcigpOworCisg
ICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKKwor
ICAgIC8vIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpDbGllbnQKKyAgICB2b2lkIHN0b3JhZ2VD
aGFuZ2VkKFNoYXJlZE1lbW9yeSopOworCisgICAgLy8gV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIKKyAgICB2b2lkIHN0YXJ0KCkgZmluYWw7CisgICAgdm9pZCBzdG9wKCkg
ZmluYWw7CisgICAgdm9pZCBjbGVhcigpIGZpbmFsOworICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCkg
ZmluYWw7CisgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpIGZpbmFsOworICAgIHZvaWQgcHVzaFNh
bXBsZXMoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEm
LCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsK
KworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworCisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOworICAgIFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKKyAgICBpbnQ2
NF90IG1fbnVtYmVyT2ZGcmFtZXMgeyAwIH07CisgICAgYm9vbCBtX2lzUGxheWluZyB7IGZhbHNl
IH07Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYxMmEwODRmYmU1NDc5MDQ3NGU3MGY3MmY0YmQ1MDAyOWM4MTliZTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UgLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBh
ZjdhOTY0OGZiN2QxM2Y2ZmI3MjA1MzUxMzU4NTA1Yzk1NTI4NDBlLi5jZWY3MjI2MzJmYzU4YzY1
ZjE4YWEzOWQzMGMyODczNDFmN2Q1YWFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDEt
MTUgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBNZWRpYVN0cmVhbSBhdWRpbyB0cmFjayByZW5kZXJpbmcgaW4gR1BVUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTc1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogZ3B1LXByb2Nl
c3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0wMS0xNCAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIExvbmcgY29udGludWF0aW9uIGNoYWluIGNvdWxkIGxlYWQg
dG8gc3RhY2sgZXhoYXVzdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3Mv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggN2RlNzc4MDA2NTUxODM1ZTdmMjRmODQxZTgyNWRhZGRhOWFlY2Q0Ni4uZDhmNmJi
M2M4NWQ4YzUzZDhkMDc0NmM1NzNkMTliZDgwNTExZGZlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9ncHUtcHJv
Y2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjksNyArMjI5LDYgQEAgYWNjZXNzaWJpbGl0eS9t
ZWRpYS1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KIGZhc3QvYmxvY2svZmxvYXQvbGlzdC1tYXJrZXIt
aXMtZmxvYXQtY3Jhc2guaHRtbCBbIFNraXAgXQogZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb24t
cmVwbGFjZWQtaW4tdGFibGUtZGlzcGxheS1jcmFzaC5odG1sIFsgU2tpcCBdCiBmYXN0L21lZGlh
Y2FwdHVyZWZyb21lbGVtZW50IFsgU2tpcCBdCi1mYXN0L21lZGlhc3RyZWFtIFsgU2tpcCBdCiBm
dWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1sZWdhY3kuaHRtbCBbIFNraXAgXQogZnVsbHNj
cmVlbi92aWRlby1jb250cm9scy10aW1lbGluZS5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2Fw
cGNhY2hlL3ZpZGVvLmh0bWwgWyBTa2lwIF0KQEAgLTI0Myw3ICsyNDIsNiBAQCBodHRwL3Rlc3Rz
L21lZGlhL3ZpZGVvLXByZWxvYWQuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3BhZ2UtY2FjaGUtbWVkaWFrZXlzZXNzaW9uLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLW1lZGlhc3RyZWFtLmh0bWwgWyBTa2lwIF0KIGh0dHAvd3B0L21l
ZGlhcmVjb3JkZXIgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFjYXB0dXJlLXN0cmVhbXMgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLWZyb21lbGVtZW50L2lkbGhhcm5lc3MuaHRtbCBbIFNraXAgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVj
b3JkZXItc3RvcC5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1lcnJvci5odG1sIFsgU2tpcCBdCkBA
IC0yNjAsNiArMjU4LDMgQEAgaHR0cC90ZXN0cy93ZWJnbCBbIFNraXAgXQoganMvc2hhcmVkLWFy
cmF5LWJ1ZmZlci13ZWJnbC5odG1sIFsgU2tpcCBdCiAKIHdlYmdwdSBbIFNraXAgXQotCi13ZWJy
dGMgWyBTa2lwIF0KLXBsYXRmb3JtL21hYy93ZWJydGMgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387774</attachid>
            <date>2020-01-15 03:55:08 -0800</date>
            <delta_ts>2020-01-15 05:01:37 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-206175-20200115125506.patch</filename>
            <type>text/plain</type>
            <size>55774</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTlhYjllOTk2YzM2NTNk
Y2Q1MWIyY2Y1MTlkZTZjOGU1NDY4NjM3My4uMGNlZGE3MThlOThmN2Q0NDI5MWM0OGI2ODA1Mjgw
MGYxNDhhYWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtOTUyLDYgKzk1Miw3MiBAQAogCiAyMDIwLTAxLTEz
ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBJbnRyb2R1Y2Ug
YW4gYWJzdHJhY3QgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYwNjYKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgTW92ZSB1c2Ugb2YgZGlzcGxheSBsYXllcnMgaW4g
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHRvIGEgbmV3IGNsYXNzIExvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCisgICAgICAgIHRoYXQgaW1wbGVtZW50cyBhbiBpbnRl
cmZhY2UgbmFtZWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLgorICAgICAgICBBIGZ1dHVyZSBw
YXRjaCB3aWxsIGltcGxlbWVudCB0aGlzIGludGVyZmFjZSBieSBJUENpbmcgdG8gR1BVUHJvY2Vz
cy4KKyAgICAgICAgV2UgbW92ZSBib3RoIGxheWVycyBhbmQgaGFuZGxpbmcgb2YgdGhlIHNhbXBs
ZSBxdWV1ZSB0byBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci4KKworICAgICAgICBDb250
cmFyeSB0byBwcmV2aW91c2x5LCB3ZSBkbyBub3QgY2FsbCBhZ2FpbiBlbnF1ZXVlVmlkZW9TYW1w
bGUgaW4gY2FzZSB3ZSBlbnF1ZXVlZCBhIHNhbXBsZSBmb3IgbGF0ZXIgdXNlIGluIHRoZSBkaXNw
bGF5IGxheWVyLgorICAgICAgICBJbnN0ZWFkLCB3ZSBkaXJlY3RseSByZW5kZXIgaXQsIHdoaWNo
IHNob3VsZCBub3QgY2hhbmdlIG11Y2ggc2luY2UgdGhpcyBpcyBhIHJlYWx0aW1lIHRyYWNrIGFu
ZCBpbiB0aGUgZnV0dXJlIHRoZSBidWZmZXIgd2lsbCBiZSBpbiBHUFVQcm9jZXNzIGFueXdheS4K
KworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW06IEFkZGVk
LgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIGluaXRX
aXRoUGFyZW50Ol0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxp
c3RlbmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFu
Z2VMaXN0ZW5lciBpbnZhbGlkYXRlXSk6CisgICAgICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyU3Rh
dHVzQ2hhbmdlTGlzdGVuZXIgYmVnaW5PYnNlcnZpbmdMYXllcnNdKToKKyAgICAgICAgKC1bV2Vi
QVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBzdG9wT2JzZXJ2aW5nTGF5ZXJzXSk6
CisgICAgICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIgb2JzZXJ2
ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKToKKyAgICAgICAgKFdl
YkNvcmU6OnJ1bldpdGhvdXRBbmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6fkxvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpsYXllclN0YXR1c0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bGF5ZXJFcnJvckRpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6cm9vdExheWVy
Qm91bmRzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpkaXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OnJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZGlkRmFpbCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlRGlzcGxheU1vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmJvdW5kcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBk
YXRlQWZmaW5lVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjp1cGRhdGVCb3VuZHNBbmRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5zdXJlTGF5ZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpmbHVzaCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Zmx1c2hBbmRSZW1vdmVJ
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
ZW5xdWV1ZVNhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6cmVtb3ZlT2xkU2FtcGxlc0Zyb21QZW5kaW5nUXVldWUpOgorICAgICAgICAoV2Vi
Q29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmFkZFNhbXBsZVRvUGVuZGluZ1F1
ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpj
bGVhckVucXVldWVkU2FtcGxlcyk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6cmVxdWVzdE5vdGlmaWNhdGlvbldoZW5SZWFkeUZvclZpZGVvRGF0YSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5xdWV1ZUNvcnJlY3RlZFZpZGVvU2FtcGxlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyU3RhdHVzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YXBwbGljYXRpb25EaWRC
ZWNvbWVBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpmbHVzaFJlbmRlcmVycyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuc3VyZUxheWVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmRlc3Ryb3lMYXll
cnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheU1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpjaGVja1NlbGVjdGVkVmlkZW9UcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldEJ1ZmZlcmluZ1BvbGljeSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0
ZURpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckJvdW5kc0RpZENoYW5nZSk6
CisKKzIwMjAtMDEtMTUgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCiAgICAg
ICAgIENsZWFuLXVwIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oLy5tbQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MDYwCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGU2ZjgxN2E3ODE2ZDZhNGJjYzIwMTNhNTc5NDQ0
NDc2N2FlNzA4MGUuLjg5MDZmNTdkYzlkMzI0YzlmMGJkMWVmYjg1MGIyMGE5NTIwZTE5MGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjUzLDYgKzI1Myw3IEBAIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gQG5v
LXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJB
VkZPYmpDLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMubW0gQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2Jq
Qy5tbSBAbm8tdW5pZnkKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5tbSBAbm8tdW5p
ZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0gQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gQG5vLXVu
aWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZmMxYjBmY2YxZWRjYjg0YWEwOTZmY2FiMjI1MzA5MzY4ZmQwNDgwMC4uY2MzNWE1
ODkxMTM0MTFiMTU4NjIwYmY0MDE5MTZlZmQ3NDNlZTk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA2Nyw2ICsxMDY3LDcg
QEAKIAkJNDEzQzJDMzQxQkMyOUE4RjAwNzUyMDRDIC8qIEpTRE9NQ29uc3RydWN0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0MyQzMzMUJDMjlB
N0IwMDc1MjA0QyAvKiBKU0RPTUNvbnN0cnVjdG9yLmggKi87IH07CiAJCTQxM0NDRDRBMjBERTAz
NEYwMDY1QTIxQSAvKiBNb2NrTWVkaWFEZXZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0NDRDQ4MjBERTAxM0MwMDY1QTIxQSAvKiBNb2NrTWVk
aWFEZXZpY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MTNFMDA3OTFEQjBFNEYyMDAyMzQxRDIgLyogTWVtb3J5UmVsZWFzZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzRTAwNzgxREIwRTRERTAw
MjM0MUQyIC8qIE1lbW9yeVJlbGVhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk0MTQ1OThDMjIzQzhEMTc3MDAyQjlDQzggLyogTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTQ1OThDMTIzQzhBRDc5MDAyQjlDQzggLyogTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIubW0gKi87IH07CiAJCTQxNEI4MjA1MUQ2REYwRTUwMDc3RUJFMyAvKiBT
dHJ1Y3R1cmVkQ2xvbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxNEI4MjAzMUQ2REYwRDkwMDc3RUJFMyAvKiBTdHJ1Y3R1cmVkQ2xvbmUuaCAqLzsg
fTsKIAkJNDE0REVERTcxRjlGRTkxRTAwNDdDNDBEIC8qIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNERFREU1
MUY5RkU5MTUwMDQ3QzQwRCAvKiBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE1MDcxNTgxNjg1MDY3MzAw
QzNDN0IzIC8qIFNlbGVjdG9yRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTUwNzE1NjE2ODUwNjczMDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0
ZXIuaCAqLzsgfTsKQEAgLTExNTMsNiArMTE1NCw4IEBACiAJCTQxRjA2MjE0MEY1RjE5MjYwMEEw
N0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjIxMjBGNUYxOTI2MDBBMDdFQUMgLyogSW5z
cGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oICovOyB9OwogCQk0MUYxRDIxRjBFRjM1QzJBMDBEQTg3
NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYxRDIxRDBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2Fj
aGVkRnJhbWVEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDFGQUJEMkQxRjRERkU0QTAwNkE2Qzk3IC8qIERPTUNhY2hlRW5naW5lLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBQkQyQjFGNERG
RTQyMDA2QTZDOTcgLyogRE9NQ2FjaGVFbmdpbmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MUZDRDZCOTIzQ0UwMTU1MDBDNjI1NjcgLyogU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTQ1OThCRTIzQzhBQUI4MDAyQjlDQzggLyogU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNDFGQ0Q2QkIyM0NFMDI3NzAwQzYyNTY3IC8qIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTQ1OThDMDIzQzhBRDc4MDAyQjlDQzggLyogTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MjdE
QTcxRDEzNzM1REZBMDA3QzU3RkIgLyogSlNTZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQyN0RBNzFCMTM3MzVE
RkEwMDdDNTdGQiAvKiBKU1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwICovOyB9OwogCQk0MjdE
QTcxRTEzNzM1REZBMDA3QzU3RkIgLyogSlNTZXJ2aWNlV29ya2VySW50ZXJuYWxzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MjdEQTcxQzEzNzM1REZB
MDA3QzU3RkIgLyogSlNTZXJ2aWNlV29ya2VySW50ZXJuYWxzLmggKi87IH07CiAJCTQzMTA3QkUy
MThDQzE5REUwMENDMThFOCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMTA3QkUxMThDQzE5REUwMENDMThF
OCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaCAqLzsgfTsKQEAgLTczNDYsNiArNzM0OSw5IEBA
CiAJCTQxM0UwMDc4MURCMEU0REUwMDIzNDFEMiAvKiBNZW1vcnlSZWxlYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeVJlbGVhc2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDEzRTAwN0IxREIwRTcwNzAwMjM0MUQyIC8qIE1lbW9yeVJlbGVhc2VD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeVJl
bGVhc2VDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzRkM0Q0QxRkQx
REQ4QzAwNTQxQzRCIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9u
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTQ1OThCRTIzQzhBQUI4MDAyQjlD
QzggLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTQ1OThDMDIzQzhBRDc4MDAyQjlDQzggLyogTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE0
NTk4QzEyM0M4QUQ3OTAwMkI5Q0M4IC8qIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNDdFMkIy
MUM4ODMzN0YwMEE3RTcxNSAvKiBGZXRjaEJvZHlPd25lci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGZXRjaEJvZHlPd25lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTQ3RTJCMzFDODk5MTI2MDBBN0U3MTUgLyogRmV0Y2hCb2R5T3duZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmV0Y2hCb2R5T3duZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTQ3RTJCNDFDODk5MTI2MDBBN0U3MTUgLyogRmV0
Y2hMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmV0Y2hM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYzMjUsNiArMTYzMzEs
NyBAQAogCQkJCTA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uaCAqLywKIAkJCQlDREJFQUVBQjE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFT
ZWxlY3Rpb25Hcm91cEFWRk9iakMuaCAqLywKIAkJCQlDREJFQUVBQTE5RDkyQjZDMDBCRUJBODgg
LyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gKi8sCisJCQkJNDE0NTk4QkUyM0M4QUFC
ODAwMkI5Q0M4IC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oICovLAogCQkJCUNEMzM2RjYz
MTdGQTBBNEQwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oICovLAogCQkJCTA3MDlE
NzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLywK
IAkJCQkwNzA5RDc5MTFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1h
Yy5oICovLApAQCAtMjY3NDgsNiArMjY3NTUsOCBAQAogCQkJCTA3QUE2QjZBMTY2RDAxOTUwMEQ0
NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5tbSAqLywKIAkJCQkwNzM2N0RE
RDE3MkNBNjdGMDBEODYxQjkgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMu
aCAqLywKIAkJCQkwNzM2N0RERTE3MkNBNjdGMDBEODYxQjkgLyogSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUxlZ2FjeUFWRk9iakMubW0gKi8sCisJCQkJNDE0NTk4QzAyM0M4QUQ3ODAwMkI5Q0M4IC8q
IExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggKi8sCisJCQkJNDE0NTk4QzEyM0M4QUQ3
OTAwMkI5Q0M4IC8qIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tICovLAogCQkJCTA3
OEU0M0RCMUFCQjZGNkYwMDFDMkZBNiAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmgg
Ki8sCiAJCQkJMDc4RTQzREMxQUJCNkY2RjAwMUMyRkE2IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJNYWMubW0gKi8sCiAJCQkJREY5QUZENzAxM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCAqLywKQEAgLTMxMzk3LDYgKzMxNDA2LDcgQEAK
IAkJCQk3NjMzQTcyNjEzRDhCMzNBMDA4NTAxQjYgLyogTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNTE2RThCNzEzNkUwNERCMDA3NkMzQzAgLyogTG9jYWxpemVk
RGF0ZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzUyMDdCRTA5QkQ0MTBBMDBGMjAzOEQg
LyogTG9jYWxpemVkU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFGQ0Q2QkIyM0NFMDI3
NzAwQzYyNTY3IC8qIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0UxQzQxQjBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTZCNEQ0MTJEMjM5ODNGODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTgyMzlFMDEwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuaCBp
biBIZWFkZXJzICovLApAQCAtMzIxODEsNiArMzIxOTEsNyBAQAogCQkJCTI5M0VBRTFGMTM1NkIy
RkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDNTIyMjlFMUUxREFFNDcwMDJDQjhGNyAvKiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRTdBNkMyODIwODUzN0UyMDBGQTJCNDYgLyogU2FtZVNpdGVJ
bmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MUZDRDZCOTIzQ0UwMTU1MDBDNjI1NjcgLyogU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREQ3MDg5NzE4MzU5
RjZGMDAyQjNEQzYgLyogU2FtcGxlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUU5MTFDQjBF
Rjg2RDQ3MDA5RDBDQUYgLyogU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTVERkU4RjU3MEQxNjQ3N0MwMDc2RTkzNyAvKiBTY2hlZHVsZWRBY3Rpb24uaCBpbiBI
ZWFkZXJzICovLApAQCAtMzM2NTAsNiArMzM2NjEsNyBAQAogCQkJCTQxRDI4RDBEMjEzOUUwNTgw
MEY0MjA2RiAvKiBMaWJXZWJSVENTdGF0c0NvbGxlY3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTg2QkQzRTIxM0VFMzQwMDAwMTgyNkYgLyogTGliV2ViUlRDVXRpbHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTc1OUU5M0UxNEVGMUNGODAwMjZBMkREIC8qIExvYWRhYmxlVGV4dFRyYWNr
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxNDU5OEMyMjNDOEQxNzcwMDJCOUNDOCAvKiBMb2Nh
bFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUZBQkU3MkZF
MTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDlCRjcwNTFEQkZCQjI0MDA3QTdEOTkgLyogTWVkaWFFbmNyeXB0ZWRFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyRDlCRjc0NzFEQkZEQzQ5MDA3QTdEOTkgLyogTWVkaWFLZXlNZXNzYWdl
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZmNTdkN2M3ZDU5YTcxZDU2N2JjMmFiZDlmNjE5
MmIyYmZiY2NjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAtMCwwICsx
LDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEludFNpemU7CitjbGFzcyBNZWRpYVNhbXBsZTsKKworY2xh
c3MgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHsKK3B1YmxpYzoKKyAgICBjbGFzcyBDbGllbnQg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q2xpZW50PiB7CisgICAgcHVibGljOgorICAgICAgICB2
aXJ0dWFsIH5DbGllbnQoKSA9IGRlZmF1bHQ7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNEaWRDaGFuZ2UoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
JikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQm91
bmRzRGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpID0gMDsKKyAgICAgICAgdmly
dHVhbCBXVEY6Ok1lZGlhVGltZSBzdHJlYW1UaW1lKCkgY29uc3QgPSAwOworICAgIH07CisKKyAg
ICBleHBsaWNpdCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoQ2xpZW50Jik7CisgICAgdmlydHVh
bCB+U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBi
b29sIGRpZEZhaWwoKSBjb25zdCA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGlzcGxh
eU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIpID0gMDsKKwor
ICAgIHZpcnR1YWwgQ0dSZWN0IGJvdW5kcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlQWZmaW5lVHJhbnNmb3JtKENHQWZmaW5lVHJhbnNmb3JtKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCwgQ0dQb2ludCkgPSAwOworCisg
ICAgdmlydHVhbCB2b2lkIGZsdXNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmbHVzaEFuZFJl
bW92ZUltYWdlKCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoTWVkaWFT
YW1wbGUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkgPSAw
OworCisgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIoKSA9IDA7CisKK3Byb3Rl
Y3RlZDoKKyAgICBXZWFrUHRyPENsaWVudD4gbV9jbGllbnQ7Cit9OworCitpbmxpbmUgU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoQ2xpZW50JiBjbGll
bnQpCisgICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQoreworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yOWNkZWE0M2I5ZmE4ZjA2MWRjMGNmMTQwM2IzNTJhOTFkZmNmYzFk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAtMCwwICsx
LDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9O
KQorCisjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CisKK09CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CitPQkpDX0NM
QVNTIFdlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXI7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIgZmluYWwgOiBwdWJsaWMgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlKENsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXll
ciwgSW50U2l6ZSk7CisKKyAgICBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihSZXRhaW5Q
dHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+JiYsIENsaWVudCYsIGJvb2wgaGlkZVJvb3RM
YXllciwgSW50U2l6ZSk7CisgICAgfkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKCk7CisK
KyAgICAvLyBBUEkgdXNlZCBieSBXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVy
CisgICAgdm9pZCBsYXllclN0YXR1c0RpZENoYW5nZSgpOworICAgIHZvaWQgbGF5ZXJFcnJvckRp
ZENoYW5nZSgpOworICAgIHZvaWQgcm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCk7CisKKyAgICBQ
bGF0Zm9ybUxheWVyKiBkaXNwbGF5TGF5ZXIoKTsKKworICAgIFBsYXRmb3JtTGF5ZXIqIHJvb3RM
YXllcigpIGZpbmFsOworCitwcml2YXRlOgorICAgIGJvb2wgZGlkRmFpbCgpIGNvbnN0IGZpbmFs
OworCisgICAgdm9pZCB1cGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5TGF5ZXIsIGJv
b2wgaGlkZVJvb3RMYXllcikgZmluYWw7CisKKyAgICBDR1JlY3QgYm91bmRzKCkgY29uc3QgZmlu
YWw7CisgICAgdm9pZCB1cGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0pICBm
aW5hbDsKKyAgICB2b2lkIHVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCwgQ0dQb2ludCkg
ZmluYWw7CisKKyAgICB2b2lkIGZsdXNoKCkgZmluYWw7CisgICAgdm9pZCBmbHVzaEFuZFJlbW92
ZUltYWdlKCkgZmluYWw7CisKKyAgICB2b2lkIGVucXVldWVTYW1wbGUoTWVkaWFTYW1wbGUmKSBm
aW5hbDsKKyAgICB2b2lkIGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkgZmluYWw7CisKKyAgICB2b2lk
IGVuc3VyZUxheWVycygpOworCisgICAgdm9pZCByZW1vdmVPbGRTYW1wbGVzRnJvbVBlbmRpbmdR
dWV1ZSgpOworICAgIHZvaWQgYWRkU2FtcGxlVG9QZW5kaW5nUXVldWUoTWVkaWFTYW1wbGUmKTsK
KyAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25XaGVuUmVhZHlGb3JWaWRlb0RhdGEoKTsKKwor
cHJpdmF0ZToKKyAgICBSZXRhaW5QdHI8V2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0
ZW5lcj4gbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lcjsKKyAgICBSZXRhaW5QdHI8QVZTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOworICAgIFJldGFpblB0
cjxQbGF0Zm9ybUxheWVyPiBtX3Jvb3RMYXllcjsKKworICAgIHVzaW5nIFBlbmRpbmdTYW1wbGVR
dWV1ZSA9IERlcXVlPFJlZjxNZWRpYVNhbXBsZT4+OworICAgIFBlbmRpbmdTYW1wbGVRdWV1ZSBt
X3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlOworfTsKKyAgICAKK30KKworI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYwYzljYzczZmFkODQ1MzFjOTc5MTY0MWQzODNjY2U0OTczYzg5YzIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQpAQCAtMCwwICsxLDM2OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCAiTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbXBvcnQgIkNvbG9y
LmgiCisjaW1wb3J0ICJJbnRTaXplLmgiCisjaW1wb3J0ICJNZWRpYVNhbXBsZS5oIgorCisjaW1w
b3J0IDxBVkZvdW5kYXRpb24vQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaD4KKyNpbXBvcnQg
PFF1YXJ0ekNvcmUvQ0FMYXllci5oPgorI2ltcG9ydCA8UXVhcnR6Q29yZS9DQVRyYW5zYWN0aW9u
Lmg+CisKKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisKKyNpbXBvcnQgPHBhbC9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGluay5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworQGlu
dGVyZmFjZSBXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIDogTlNPYmplY3Qg
eworICAgIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKiBfcGFyZW50OworfQorCistIChp
ZClpbml0V2l0aFBhcmVudDooTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKWNhbGxiYWNr
OworLSAodm9pZClpbnZhbGlkYXRlOworLSAodm9pZCliZWdpbk9ic2VydmluZ0xheWVyczsKKy0g
KHZvaWQpc3RvcE9ic2VydmluZ0xheWVyczsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYkFW
U2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIKKworLSAoaWQpaW5pdFdpdGhQYXJlbnQ6
KExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKilwYXJlbnQKK3sKKyAgICBpZiAoIShzZWxm
ID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9wYXJlbnQgPSBw
YXJlbnQ7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAg
W3NlbGYgaW52YWxpZGF0ZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh2b2lkKWlu
dmFsaWRhdGUKK3sKKyAgICBbc2VsZiBzdG9wT2JzZXJ2aW5nTGF5ZXJzXTsKKyAgICBfcGFyZW50
ID0gbnVsbHB0cjsKK30KKworLSAodm9pZCliZWdpbk9ic2VydmluZ0xheWVycworeworICAgIEFT
U0VSVChfcGFyZW50KTsKKyAgICBBU1NFUlQoX3BhcmVudC0+ZGlzcGxheUxheWVyKCkpOworICAg
IEFTU0VSVChfcGFyZW50LT5yb290TGF5ZXIoKSk7CisKKyAgICBbX3BhcmVudC0+ZGlzcGxheUxh
eWVyKCkgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAic3RhdHVzIiBvcHRpb25zOk5TS2V5
VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpuaWxdOworICAgIFtfcGFyZW50LT5kaXNw
bGF5TGF5ZXIoKSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJlcnJvciIgb3B0aW9uczpO
U0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bmlsXTsKKyAgICBbX3BhcmVudC0+
cm9vdExheWVyKCkgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiYm91bmRzIiBvcHRpb25z
Ok5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpuaWxdOworfQorCistICh2b2lk
KXN0b3BPYnNlcnZpbmdMYXllcnMKK3sKKyAgICBpZiAoIV9wYXJlbnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSkgeworICAgICAgICBbX3BhcmVu
dC0+ZGlzcGxheUxheWVyKCkgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAic3RhdHVz
Il07CisgICAgICAgIFtfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxm
IGZvcktleVBhdGg6QCJlcnJvciJdOworICAgIH0KKyAgICBpZiAoX3BhcmVudC0+cm9vdExheWVy
KCkpCisgICAgICAgIFtfcGFyZW50LT5yb290TGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZv
cktleVBhdGg6QCJib3VuZHMiXTsKK30KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRo
OihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlv
bmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIFVOVVNFRF9QQVJB
TShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oa2V5UGF0aCk7CisgICAgQVNTRVJUKF9wYXJl
bnQpOworCisgICAgaWYgKCFfcGFyZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoW29i
amVjdCBpc0tpbmRPZkNsYXNzOlBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFz
cygpXSkgeworICAgICAgICBBU1NFUlQob2JqZWN0ID09IF9wYXJlbnQtPmRpc3BsYXlMYXllcigp
KTsKKworICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAic3RhdHVzIl0pIHsK
KyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBSZXRhaW5QdHI8
V2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lcj4oc2VsZildIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIXByb3RlY3RlZFNlbGYtPl9wYXJlbnQpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9wYXJlbnQtPmxheWVy
U3RhdHVzRGlkQ2hhbmdlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJlcnJv
ciJdKSB7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gUmV0
YWluUHRyPFdlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXI+KHNlbGYpXSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRTZWxmLT5fcGFyZW50KQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcGFyZW50
LT5sYXllckVycm9yRGlkQ2hhbmdlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChbW2NoYW5nZSB2YWx1ZUZvcktleTpO
U0tleVZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSXNQcmlvcktleV0gYm9vbFZhbHVlXSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKChDQUxheWVyICopb2JqZWN0ID09IF9wYXJlbnQtPnJvb3RM
YXllcigpKSB7CisgICAgICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJib3VuZHMi
XSkgeworICAgICAgICAgICAgaWYgKCFfcGFyZW50KQorICAgICAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICAgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAgICAgICAgX3Bh
cmVudC0+cm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0
ZWRTZWxmID0gUmV0YWluUHRyPFdlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXI+
KHNlbGYpXSB7CisgICAgICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRTZWxmLT5fcGFyZW50KQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRT
ZWxmLT5fcGFyZW50LT5yb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisgICAgfQorCit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RhdGljIHZvaWQgcnVuV2l0aG91dEFuaW1hdGlvbnMoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiBmdW5jdGlvbikKK3sKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJh
bnNhY3Rpb24gc2V0QW5pbWF0aW9uRHVyYXRpb246MF07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0
RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAgICBmdW5jdGlvbigpOworICAgIFtDQVRyYW5zYWN0aW9u
IGNvbW1pdF07Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+
IExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQsIGJv
b2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQoreworICAgIGF1dG8gc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyID0gYWRvcHROUyhbUEFMOjphbGxvY0FWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVySW5zdGFuY2UoKSBpbml0XSk7CisgICAgaWYgKCFzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+KFdURk1vdmUoc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
KSwgY2xpZW50LCBoaWRlUm9vdExheWVyLCBzaXplKTsKK30KKworTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFJldGFpblB0cjxBVlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4mJiBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIsIENsaWVu
dCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKKyAgICA6IFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcihjbGllbnQpCisgICAgLCBtX3N0YXR1c0NoYW5nZUxpc3RlbmVy
KGFkb3B0TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIGFsbG9jXSBp
bml0V2l0aFBhcmVudDp0aGlzXSkpCisgICAgLCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihX
VEZNb3ZlKHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikpCit7CisgICAgbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuZ2V0KCkuYmFja2dyb3VuZENvbG9yID0gY2FjaGVkQ0dDb2xvcihDb2xvcjo6
YmxhY2spOworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpLmFuY2hvclBvaW50
ID0geyAuNSwgLjUgfTsKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKS5uZWVk
c0Rpc3BsYXlPbkJvdW5kc0NoYW5nZSA9IFlFUzsKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5nZXQoKS52aWRlb0dyYXZpdHkgPSBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0
RmlsbDsKKworICAgIG1fcm9vdExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRd
KTsKKyAgICBtX3Jvb3RMYXllci5nZXQoKS5oaWRkZW4gPSBoaWRlUm9vdExheWVyOworCisgICAg
bV9yb290TGF5ZXIuZ2V0KCkuYmFja2dyb3VuZENvbG9yID0gY2FjaGVkQ0dDb2xvcihDb2xvcjo6
YmxhY2spOworICAgIG1fcm9vdExheWVyLmdldCgpLm5lZWRzRGlzcGxheU9uQm91bmRzQ2hhbmdl
ID0gWUVTOworCisgICAgbV9yb290TGF5ZXIuZ2V0KCkuYm91bmRzID0gQ0dSZWN0TWFrZSgwLCAw
LCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOworCisgICAgW21fc3RhdHVzQ2hhbmdlTGlz
dGVuZXIgYmVnaW5PYnNlcnZpbmdMYXllcnNdOworCisgICAgW21fcm9vdExheWVyIGFkZFN1Ymxh
eWVyOm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpXTsKKworI2lmbmRlZiBOREVCVUcK
KyAgICBbbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgc2V0TmFtZTpAIkxvY2FsU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIl07CisgICAgW21fcm9v
dExheWVyIHNldE5hbWU6QCJMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBBVlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllciBwYXJlbnQiXTsKKyNlbmRpZgorfQorCitMb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6fkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKCkKK3sKKyAgICBb
bV9zdGF0dXNDaGFuZ2VMaXN0ZW5lciBzdG9wT2JzZXJ2aW5nTGF5ZXJzXTsKKworICAgIG1fcGVu
ZGluZ1ZpZGVvU2FtcGxlUXVldWUuY2xlYXIoKTsKKworICAgIFttX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllciBzdG9wUmVxdWVzdGluZ01lZGlhRGF0YV07CisgICAgW21fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyIGZsdXNoXTsKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9IG51bGxw
dHI7CisKKyAgICBtX3Jvb3RMYXllciA9IG51bGxwdHI7Cit9CisKK3ZvaWQgTG9jYWxTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OmxheWVyU3RhdHVzRGlkQ2hhbmdlKCkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIGlmIChtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQo
KS5zdGF0dXMgIT0gQVZRdWV1ZWRTYW1wbGVCdWZmZXJSZW5kZXJpbmdTdGF0dXNSZW5kZXJpbmcp
CisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm47Cisg
ICAgbV9jbGllbnQtPnNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllclN0YXR1c0RpZENoYW5nZSgqdGhp
cyk7Cit9CisKK3ZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmxheWVyRXJyb3JE
aWRDaGFuZ2UoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgLy8gRklYTUU6
IExvZyBlcnJvci4KK30KKwordm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6cm9v
dExheWVyQm91bmRzRGlkQ2hhbmdlKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+c2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyQm91bmRzRGlkQ2hhbmdlKCp0aGlzKTsKK30KKworUGxhdGZvcm1M
YXllciogTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmRpc3BsYXlMYXllcigpCit7Cisg
ICAgcmV0dXJuIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpOworfQorCitQbGF0Zm9y
bUxheWVyKiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6cm9vdExheWVyKCkKK3sKKyAg
ICByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7Cit9CisKK2Jvb2wgTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OmRpZEZhaWwoKSBjb25zdAoreworICAgIHJldHVybiBbbV9zYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIgc3RhdHVzXSA9PSBBVlF1ZXVlZFNhbXBsZUJ1ZmZlclJlbmRlcmluZ1N0
YXR1c0ZhaWxlZDsKK30KKwordm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBk
YXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIp
Cit7CisgICAgaWYgKG1fcm9vdExheWVyLmdldCgpLmhpZGRlbiA9PSBoaWRlUm9vdExheWVyICYm
IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpLmhpZGRlbiA9PSBoaWRlRGlzcGxheUxh
eWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBydW5XaXRob3V0QW5pbWF0aW9ucyhbJl0gewor
ICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKS5oaWRkZW4gPSBoaWRlRGlz
cGxheUxheWVyOworICAgICAgICBtX3Jvb3RMYXllci5nZXQoKS5oaWRkZW4gPSBoaWRlUm9vdExh
eWVyOworICAgIH0pOworfQorCitDR1JlY3QgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OmJvdW5kcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpLmJvdW5kczsK
K30KKwordm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6dXBkYXRlQWZmaW5lVHJh
bnNmb3JtKENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSkKK3sKKyAgICBydW5XaXRob3V0QW5p
bWF0aW9ucyhbJl0geworICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKS5h
ZmZpbmVUcmFuc2Zvcm0gPSB0cmFuc2Zvcm07CisgICAgfSk7Cit9CisKK3ZvaWQgTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnVwZGF0ZUJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCB2aWRl
b0JvdW5kcywgQ0dQb2ludCBwb3NpdGlvbikKK3sKKyAgICBydW5XaXRob3V0QW5pbWF0aW9ucyhb
Jl0geworICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKS5ib3VuZHMgPSB2
aWRlb0JvdW5kczsKKyAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkucG9z
aXRpb24gPSBwb3NpdGlvbjsKKyAgICB9KTsKK30KKwordm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6Zmx1c2goKQoreworICAgIFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBm
bHVzaF07Cit9CisKK3ZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmZsdXNoQW5k
UmVtb3ZlSW1hZ2UoKQoreworICAgIFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBmbHVzaEFu
ZFJlbW92ZUltYWdlXTsKK30KKwordm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
ZW5xdWV1ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAgIGlmICghW21fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyIGlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhXSkgeworICAgICAgICBh
ZGRTYW1wbGVUb1BlbmRpbmdRdWV1ZShzYW1wbGUpOworICAgICAgICByZXF1ZXN0Tm90aWZpY2F0
aW9uV2hlblJlYWR5Rm9yVmlkZW9EYXRhKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBbbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpzYW1wbGUu
cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOworfQorCit2b2lkIExvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpyZW1vdmVPbGRTYW1wbGVzRnJvbVBlbmRpbmdRdWV1
ZSgpCit7CisgICAgaWYgKG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuaXNFbXB0eSgpIHx8ICFt
X2NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBkZWNvZGVUaW1lID0gbV9wZW5k
aW5nVmlkZW9TYW1wbGVRdWV1ZS5maXJzdCgpLT5kZWNvZGVUaW1lKCk7CisgICAgaWYgKCFkZWNv
ZGVUaW1lLmlzVmFsaWQoKSB8fCBkZWNvZGVUaW1lIDwgTWVkaWFUaW1lOjp6ZXJvVGltZSgpKSB7
CisgICAgICAgIHdoaWxlIChtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLnNpemUoKSA+IDUpCisg
ICAgICAgICAgICBtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLnJlbW92ZUZpcnN0KCk7CisKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE1lZGlhVGltZSBub3cgPSBtX2NsaWVudC0+c3Ry
ZWFtVGltZSgpOworICAgIHdoaWxlICghbV9wZW5kaW5nVmlkZW9TYW1wbGVRdWV1ZS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgaWYgKG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuZmlyc3QoKS0+ZGVj
b2RlVGltZSgpID4gbm93KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIG1fcGVuZGluZ1Zp
ZGVvU2FtcGxlUXVldWUucmVtb3ZlRmlyc3QoKTsKKyAgICB9Cit9CisKK3ZvaWQgTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmFkZFNhbXBsZVRvUGVuZGluZ1F1ZXVlKE1lZGlhU2FtcGxl
JiBzYW1wbGUpCit7CisgICAgcmVtb3ZlT2xkU2FtcGxlc0Zyb21QZW5kaW5nUXVldWUoKTsKKyAg
ICBtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLmFwcGVuZChzYW1wbGUpOworfQorCit2b2lkIExv
Y2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjbGVhckVucXVldWVkU2FtcGxlcygpCit7Cisg
ICAgbV9wZW5kaW5nVmlkZW9TYW1wbGVRdWV1ZS5jbGVhcigpOworfQorCit2b2lkIExvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpyZXF1ZXN0Tm90aWZpY2F0aW9uV2hlblJlYWR5Rm9yVmlk
ZW9EYXRhKCkKK3sKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAg
IFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciByZXF1ZXN0TWVkaWFEYXRhV2hlblJlYWR5T25R
dWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XnsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBbbV9zYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIgc3RvcFJlcXVlc3RpbmdNZWRpYURhdGFdOworCisgICAgICAgIHdoaWxl
ICghbV9wZW5kaW5nVmlkZW9TYW1wbGVRdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGlm
ICghW21fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhXSkg
eworICAgICAgICAgICAgICAgIHJlcXVlc3ROb3RpZmljYXRpb25XaGVuUmVhZHlGb3JWaWRlb0Rh
dGEoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGF1dG8gc2FtcGxlID0gbV9wZW5kaW5nVmlkZW9TYW1wbGVRdWV1ZS50YWtlRmlyc3QoKTsK
KyAgICAgICAgICAgIGVucXVldWVTYW1wbGUoc2FtcGxlLmdldCgpKTsKKyAgICAgICAgfQorICAg
IH1dOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCAwMzQw
YThkY2RmMTI0YTZmYzQ5OThlMWZjODY4MWEwYzExMjUzZTlmLi5kOWFmMjdhNjAxMGQ3OTg4NjYy
NTJlZWUzOGE1YzUwNWU3YWViODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMzAs
MTAgKzMwLDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAi
TWVkaWFTYW1wbGUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKKyNpbmNsdWRl
ICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KLSNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOwogT0JKQ19DTEFTUyBXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVy
OwpAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwogY2xhc3Mg
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW07CiAKLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
QyBmaW5hbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM+LCBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlLCBwcml2YXRl
IE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6Ok9ic2VydmVyCitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlLCBwcml2YXRlIE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6Ok9ic2VydmVyLCBwdWJsaWMgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCiAjZW5k
aWYKQEAgLTc1LDEzICs3NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuc3VyZUxheWVycygpOwog
ICAgIHZvaWQgZGVzdHJveUxheWVycygpOwogCi0gICAgdm9pZCBsYXllclN0YXR1c0RpZENoYW5n
ZShBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciopOwotICAgIHZvaWQgbGF5ZXJFcnJvckRpZENo
YW5nZShBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciopOwotICAgIHZvaWQgYmFja2dyb3VuZExh
eWVyQm91bmRzQ2hhbmdlZCgpOwotCi0gICAgUGxhdGZvcm1MYXllciogZGlzcGxheUxheWVyKCk7
Ci0gICAgUGxhdGZvcm1MYXllciogYmFja2dyb3VuZExheWVyKCk7Ci0KICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fbG9nZ2VyLmdldCgpOyB9CiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
QyI7IH0KQEAgLTEzNywxMCArMTMwLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZmx1c2hSZW5k
ZXJlcnMoKTsKIAotICAgIHVzaW5nIFBlbmRpbmdTYW1wbGVRdWV1ZSA9IERlcXVlPFJlZjxNZWRp
YVNhbXBsZT4+OwotICAgIHZvaWQgYWRkU2FtcGxlVG9QZW5kaW5nUXVldWUoUGVuZGluZ1NhbXBs
ZVF1ZXVlJiwgTWVkaWFTYW1wbGUmKTsKLSAgICB2b2lkIHJlbW92ZU9sZFNhbXBsZXNGcm9tUGVu
ZGluZ1F1ZXVlKFBlbmRpbmdTYW1wbGVRdWV1ZSYpOwotCiAgICAgTWVkaWFUaW1lIGNhbGN1bGF0
ZVRpbWVsaW5lT2Zmc2V0KGNvbnN0IE1lZGlhU2FtcGxlJiwgZG91YmxlKTsKICAgICAKICAgICB2
b2lkIGVucXVldWVWaWRlb1NhbXBsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2Ft
cGxlJik7CkBAIC0yMTIsNyArMjAxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFt
ZShGbG9hdFJlY3QpIG92ZXJyaWRlOwogCi0gICAgTWVkaWFUaW1lIHN0cmVhbVRpbWUoKSBjb25z
dDsKKyAgICBNZWRpYVRpbWUgc3RyZWFtVGltZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgQXVkaW9T
b3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsOwogCkBAIC0yMjAsMTQg
KzIwOSwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2
ZSgpIGZpbmFsOwogCi0gICAgYm9vbCBoaWRlQmFja2dyb3VuZExheWVyKCkgY29uc3QgeyByZXR1
cm4gKCFtX2FjdGl2ZVZpZGVvVHJhY2sgfHwgbV93YWl0aW5nRm9yRmlyc3RJbWFnZSkgJiYgbV9k
aXNwbGF5TW9kZSAhPSBQYWludEl0QmxhY2s7IH0KKyAgICBib29sIGhpZGVSb290TGF5ZXIoKSBj
b25zdCB7IHJldHVybiAoIW1fYWN0aXZlVmlkZW9UcmFjayB8fCBtX3dhaXRpbmdGb3JGaXJzdElt
YWdlKSAmJiBtX2Rpc3BsYXlNb2RlICE9IFBhaW50SXRCbGFjazsgfQogCiAgICAgTWVkaWFQbGF5
ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+
IG1fbWVkaWFTdHJlYW1Qcml2YXRlOwogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZT4gbV9hY3RpdmVWaWRlb1RyYWNrOwotICAgIFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZlclN0
YXR1c0NoYW5nZUxpc3RlbmVyPiBtX3N0YXR1c0NoYW5nZUxpc3RlbmVyOwotICAgIFJldGFpblB0
cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7
Ci0gICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fYmFja2dyb3VuZExheWVyOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxQQUw6OkNsb2NrPiBtX2Nsb2NrOwogCiAgICAgTWVkaWFUaW1lIG1fcGF1
c2VkVGltZTsKQEAgLTI0NCw3ICsyMzAsNiBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxTdHJp
bmcsIFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPj4gbV9hdWRpb1RyYWNrTWFw
OwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bT4+IG1fdmlkZW9UcmFja01hcDsKLSAgICBQZW5kaW5nU2FtcGxlUXVldWUgbV9wZW5kaW5nVmlk
ZW9TYW1wbGVRdWV1ZTsKIAogICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbV9uZXR3b3Jr
U3RhdGUgeyBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpFbXB0eSB9OwogICAgIE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZSB7IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpI
YXZlTm90aGluZyB9OwpAQCAtMjU0LDggKzIzOSwxMyBAQCBwcml2YXRlOgogICAgIFBsYXliYWNr
U3RhdGUgbV9wbGF5YmFja1N0YXRlIHsgUGxheWJhY2tTdGF0ZTo6Tm9uZSB9OwogICAgIE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uIG1fdmlkZW9Sb3RhdGlvbiB7IE1lZGlhU2FtcGxlOjpWaWRl
b1JvdGF0aW9uOjpOb25lIH07CiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbV92aWRlb1RyYW5zZm9y
bTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBtX3NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyT2JqQz4gbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXI7CiAKKyAgICAv
LyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudAorICAgIHZvaWQgc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyU3RhdHVzRGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpIGZp
bmFsOworICAgIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQm91bmRzRGlkQ2hhbmdlKFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpIGZpbmFsOworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9s
b2dJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDVmY2Y5YWJiYWQw
NTEyNzRkMTIzMmNmM2FkYzZkMmU5OGVkNTI0MTEuLmRmOWUyMDU3YThiNjk5ZDcyZTYyNjI2MDMw
OGEwOWNlZjU2NTJkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSwyMCAr
MzEsMTYgQEAKICNpbXBvcnQgIkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCIKICNpbXBv
cnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJM
b2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2
YXRlLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCiAjaW1wb3J0ICJWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmgiCiAjaW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtLmgiCi0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuaD4KICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0FmZmluZVRyYW5zZm9ybS5oPgot
I2ltcG9ydCA8UXVhcnR6Q29yZS9DQUxheWVyLmg+Ci0jaW1wb3J0IDxRdWFydHpDb3JlL0NBVHJh
bnNhY3Rpb24uaD4KICNpbXBvcnQgPG9iamNfcnVudGltZS5oPgogI2ltcG9ydCA8cGFsL2F2Zm91
bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0FW
Rm91bmRhdGlvblNQSS5oPgogI2ltcG9ydCA8cGFsL3N5c3RlbS9DbG9jay5oPgotI2ltcG9ydCA8
d3RmL0RlcXVlLmg+Ci0jaW1wb3J0IDx3dGYvRnVuY3Rpb24uaD4KICNpbXBvcnQgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNTIsMTI3ICs0
OCw2IEBACiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBh
bC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotQGludGVyZmFjZSBXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIDog
TlNPYmplY3QgewotICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyogX3Bh
cmVudDsKLX0KLQotLSAoaWQpaW5pdFdpdGhQYXJlbnQ6KE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQyopY2FsbGJhY2s7Ci0tICh2b2lkKWludmFsaWRhdGU7Ci0tICh2b2lkKWJl
Z2luT2JzZXJ2aW5nTGF5ZXJzOwotLSAodm9pZClzdG9wT2JzZXJ2aW5nTGF5ZXJzOwotQGVuZAot
Ci1AaW1wbGVtZW50YXRpb24gV2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lcgot
Ci0tIChpZClpbml0V2l0aFBhcmVudDooTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKilwYXJlbnQKLXsKLSAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKLSAgICAgICAg
cmV0dXJuIG5pbDsKLQotICAgIF9wYXJlbnQgPSBwYXJlbnQ7Ci0KLSAgICByZXR1cm4gc2VsZjsK
LX0KLQotLSAodm9pZClkZWFsbG9jCi17Ci0gICAgW3NlbGYgaW52YWxpZGF0ZV07Ci0gICAgW3N1
cGVyIGRlYWxsb2NdOwotfQotCi0tICh2b2lkKWludmFsaWRhdGUKLXsKLSAgICBbc2VsZiBzdG9w
T2JzZXJ2aW5nTGF5ZXJzXTsKLSAgICBfcGFyZW50ID0gbnVsbHB0cjsKLX0KLQotLSAodm9pZCli
ZWdpbk9ic2VydmluZ0xheWVycwotewotICAgIEFTU0VSVChfcGFyZW50KTsKLSAgICBBU1NFUlQo
X3BhcmVudC0+ZGlzcGxheUxheWVyKCkpOwotICAgIEFTU0VSVChfcGFyZW50LT5iYWNrZ3JvdW5k
TGF5ZXIoKSk7Ci0KLSAgICBbX3BhcmVudC0+ZGlzcGxheUxheWVyKCkgYWRkT2JzZXJ2ZXI6c2Vs
ZiBmb3JLZXlQYXRoOkAic3RhdHVzIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25O
ZXcgY29udGV4dDpuaWxdOwotICAgIFtfcGFyZW50LT5kaXNwbGF5TGF5ZXIoKSBhZGRPYnNlcnZl
cjpzZWxmIGZvcktleVBhdGg6QCJlcnJvciIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0
aW9uTmV3IGNvbnRleHQ6bmlsXTsKLSAgICBbX3BhcmVudC0+YmFja2dyb3VuZExheWVyKCkgYWRk
T2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiYm91bmRzIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNl
cnZpbmdPcHRpb25OZXcgY29udGV4dDpuaWxdOwotfQotCi0tICh2b2lkKXN0b3BPYnNlcnZpbmdM
YXllcnMKLXsKLSAgICBpZiAoIV9wYXJlbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChf
cGFyZW50LT5kaXNwbGF5TGF5ZXIoKSkgewotICAgICAgICBbX3BhcmVudC0+ZGlzcGxheUxheWVy
KCkgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAic3RhdHVzIl07Ci0gICAgICAgIFtf
cGFyZW50LT5kaXNwbGF5TGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJl
cnJvciJdOwotICAgIH0KLSAgICBpZiAoX3BhcmVudC0+YmFja2dyb3VuZExheWVyKCkpCi0gICAg
ICAgIFtfcGFyZW50LT5iYWNrZ3JvdW5kTGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktl
eVBhdGg6QCJib3VuZHMiXTsKLX0KLQotLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihO
U1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFy
eSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAotewotICAgIFVOVVNFRF9QQVJBTShj
b250ZXh0KTsKLSAgICBVTlVTRURfUEFSQU0oa2V5UGF0aCk7Ci0gICAgQVNTRVJUKF9wYXJlbnQp
OwotCi0gICAgaWYgKCFfcGFyZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoW29iamVj
dCBpc0tpbmRPZkNsYXNzOlBBTDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygp
XSkgewotICAgICAgICBSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGxheWVy
ID0gKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICopb2JqZWN0OwotICAgICAgICBBU1NFUlQo
bGF5ZXIuZ2V0KCkgPT0gX3BhcmVudC0+ZGlzcGxheUxheWVyKCkpOwotCi0gICAgICAgIGlmIChb
a2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJzdGF0dXMiXSkgewotICAgICAgICAgICAgUmV0YWlu
UHRyPE5TTnVtYmVyPiBzdGF0dXMgPSBbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFu
Z2VOZXdLZXldOwotICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9
IFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyPihzZWxmKSwg
bGF5ZXIgPSBXVEZNb3ZlKGxheWVyKSwgc3RhdHVzID0gV1RGTW92ZShzdGF0dXMpXSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRTZWxmLT5fcGFyZW50KQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcGFyZW50LT5s
YXllclN0YXR1c0RpZENoYW5nZShsYXllci5nZXQoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChba2V5UGF0aCBpc0VxdWFs
VG9TdHJpbmc6QCJlcnJvciJdKSB7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8TlNOdW1iZXI+IHN0
YXR1cyA9IFtjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5ld0tleV07Ci0gICAg
ICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gUmV0YWluUHRyPFdlYkFW
U2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXI+KHNlbGYpLCBsYXllciA9IFdURk1vdmUo
bGF5ZXIpLCBzdGF0dXMgPSBXVEZNb3ZlKHN0YXR1cyldIHsKLSAgICAgICAgICAgICAgICBpZiAo
IXByb3RlY3RlZFNlbGYtPl9wYXJlbnQpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9wYXJlbnQtPmxheWVyRXJyb3JEaWRDaGFu
Z2UobGF5ZXIuZ2V0KCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoW1tjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1
ZUNoYW5nZU5vdGlmaWNhdGlvbklzUHJpb3JLZXldIGJvb2xWYWx1ZV0pCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmICgoQ0FMYXllciAqKW9iamVjdCA9PSBfcGFyZW50LT5iYWNrZ3JvdW5kTGF5
ZXIoKSkgewotICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiYm91bmRzIl0p
IHsKLSAgICAgICAgICAgIGlmICghX3BhcmVudCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgICAgIGlmIChpc01haW5UaHJlYWQoKSkgewotICAgICAgICAgICAgICAgIF9wYXJl
bnQtPmJhY2tncm91bmRMYXllckJvdW5kc0NoYW5nZWQoKTsKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3Rl
Y3RlZFNlbGYgPSBSZXRhaW5QdHI8V2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5l
cj4oc2VsZildIHsKLSAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFNlbGYtPl9wYXJlbnQp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAgIHByb3RlY3Rl
ZFNlbGYtPl9wYXJlbnQtPmJhY2tncm91bmRMYXllckJvdW5kc0NoYW5nZWQoKTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICB9Ci0gICAgfQotCi19Ci1AZW5kCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKQEAgLTE4Myw3ICs1OCw2IEBAIHN0YXRpYyBjb25z
dCBkb3VibGUgcmVuZGVyZXJMYXRlbmN5ID0gMC4wMjsKIAogTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoTWVk
aWFQbGF5ZXIqIHBsYXllcikKICAgICA6IG1fcGxheWVyKHBsYXllcikKLSAgICAsIG1fc3RhdHVz
Q2hhbmdlTGlzdGVuZXIoYWRvcHROUyhbW1dlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlz
dGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkKICAgICAsIG1fY2xvY2soUEFMOjpD
bG9jazo6Y3JlYXRlKCkpCiAgICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcihtYWtl
VW5pcXVlPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM+KCkpCiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECkBAIC0xOTgsOCArNzIsNiBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoKQogewog
ICAgIElORk9fTE9HKExPR0lERU5USUZJRVIpOwogCi0gICAgW21fc3RhdHVzQ2hhbmdlTGlzdGVu
ZXIgaW52YWxpZGF0ZV07Ci0KICAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV9hdWRpb1Ry
YWNrTWFwLnZhbHVlcygpKQogICAgICAgICB0cmFjay0+cGF1c2UoKTsKIApAQCAtMjY5LDMzICsx
NDEsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbgogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEg
bWFyayBBVlNhbXBsZUJ1ZmZlciBNZXRob2RzCiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpyZW1vdmVPbGRTYW1wbGVzRnJvbVBlbmRpbmdRdWV1ZShQZW5kaW5n
U2FtcGxlUXVldWUmIHF1ZXVlKQotewotICAgIGlmIChxdWV1ZS5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGF1dG8gZGVjb2RlVGltZSA9IHF1ZXVlLmZpcnN0KCktPmRlY29kZVRp
bWUoKTsKLSAgICBpZiAoIWRlY29kZVRpbWUuaXNWYWxpZCgpIHx8IGRlY29kZVRpbWUgPCBNZWRp
YVRpbWU6Onplcm9UaW1lKCkpIHsKLSAgICAgICAgd2hpbGUgKHF1ZXVlLnNpemUoKSA+IDUpCi0g
ICAgICAgICAgICBxdWV1ZS5yZW1vdmVGaXJzdCgpOwotCi0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBNZWRpYVRpbWUgbm93ID0gc3RyZWFtVGltZSgpOwotICAgIHdoaWxlICghcXVldWUu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmIChxdWV1ZS5maXJzdCgpLT5kZWNvZGVUaW1lKCkgPiBu
b3cpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgcXVldWUucmVtb3ZlRmlyc3QoKTsKLSAg
ICB9Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjphZGRT
YW1wbGVUb1BlbmRpbmdRdWV1ZShQZW5kaW5nU2FtcGxlUXVldWUmIHF1ZXVlLCBNZWRpYVNhbXBs
ZSYgc2FtcGxlKQotewotICAgIHJlbW92ZU9sZFNhbXBsZXNGcm9tUGVuZGluZ1F1ZXVlKHF1ZXVl
KTsKLSAgICBxdWV1ZS5hcHBlbmQoc2FtcGxlKTsKLX0KLQogTWVkaWFUaW1lIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FsY3VsYXRlVGltZWxpbmVPZmZzZXQoY29uc3Qg
TWVkaWFTYW1wbGUmIHNhbXBsZSwgZG91YmxlIGxhdGVuY3kpCiB7CiAgICAgTWVkaWFUaW1lIHNh
bXBsZVRpbWUgPSBzYW1wbGUub3V0cHV0UHJlc2VudGF0aW9uVGltZSgpOwpAQCAtMzMwLDM3ICsx
NzUsMTkgQEAgQ0dBZmZpbmVUcmFuc2Zvcm0gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjp2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cmkKICAgICByZXR1cm4gbV92aWRlb1RyYW5z
Zm9ybTsKIH0KIAotc3RhdGljIHZvaWQgcnVuV2l0aG91dEFuaW1hdGlvbnMoY29uc3QgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKLXsKLSAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07
Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0aW9uRHVyYXRpb246MF07Ci0gICAgW0NBVHJh
bnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKLSAgICBmdW5jdGlvbigpOwotICAgIFtD
QVRyYW5zYWN0aW9uIGNvbW1pdF07Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjplbnF1ZXVlQ29ycmVjdGVkVmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKIHsKICAgICBpZiAobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpIHsKLSAgICAgICAg
aWYgKFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBzdGF0dXNdID09IEFWUXVldWVkU2FtcGxl
QnVmZmVyUmVuZGVyaW5nU3RhdHVzRmFpbGVkKQorICAgICAgICBpZiAobV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXItPmRpZEZhaWwoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBp
ZiAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSAhPSBtX3ZpZGVvUm90YXRpb24gfHwgc2FtcGxlLnZp
ZGVvTWlycm9yZWQoKSAhPSBtX3ZpZGVvTWlycm9yZWQpIHsKICAgICAgICAgICAgIG1fdmlkZW9S
b3RhdGlvbiA9IHNhbXBsZS52aWRlb1JvdGF0aW9uKCk7CiAgICAgICAgICAgICBtX3ZpZGVvTWly
cm9yZWQgPSBzYW1wbGUudmlkZW9NaXJyb3JlZCgpOwotICAgICAgICAgICAgcnVuV2l0aG91dEFu
aW1hdGlvbnMoW3RoaXMsICZzYW1wbGVdIHsKLSAgICAgICAgICAgICAgICBtX3NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5nZXQoKS5hZmZpbmVUcmFuc2Zvcm0gPSB2aWRlb1RyYW5zZm9ybWF0aW9u
TWF0cml4KHNhbXBsZSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgdXBkYXRlRGlzcGxheUxheWVy
KCk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLT51cGRhdGVBZmZpbmVUcmFuc2Zvcm0odmlkZW9UcmFuc2Zvcm1hdGlvbk1hdHJpeChzYW1w
bGUsIHRydWUpKTsKKyAgICAgICAgICAgIHVwZGF0ZURpc3BsYXlMYXllcigpOwogICAgICAgICB9
Ci0KLSAgICAgICAgaWYgKCFbbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgaXNSZWFkeUZvck1v
cmVNZWRpYURhdGFdKSB7Ci0gICAgICAgICAgICBhZGRTYW1wbGVUb1BlbmRpbmdRdWV1ZShtX3Bl
bmRpbmdWaWRlb1NhbXBsZVF1ZXVlLCBzYW1wbGUpOwotICAgICAgICAgICAgcmVxdWVzdE5vdGlm
aWNhdGlvbldoZW5SZWFkeUZvclZpZGVvRGF0YSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KLSAgICAgICAgW21fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGVucXVldWVTYW1w
bGVCdWZmZXI6c2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyXTsK
KyAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmVucXVldWVTYW1wbGUoc2FtcGxl
KTsKICAgICB9CiAKICAgICBpZiAoIW1faGFzRXZlckVucXVldWVkVmlkZW9GcmFtZSkgewpAQCAt
NDE1LDYxICsyNDIsMjYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OmVucXVldWVWaWRlb1NhbXBsZShNZWRpYVN0cmVhbVRyYWNrUHIKICAgICB9CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpyZXF1ZXN0Tm90aWZpY2F0
aW9uV2hlblJlYWR5Rm9yVmlkZW9EYXRhKCkKLXsKLSAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpOwotICAgIFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciByZXF1ZXN0TWVk
aWFEYXRhV2hlblJlYWR5T25RdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxv
Y2s6XiB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgW21fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHN0b3BSZXF1ZXN0aW5nTWVkaWFEYXRh
XTsKLQotICAgICAgICBpZiAoIW1fYWN0aXZlVmlkZW9UcmFjaykgewotICAgICAgICAgICAgbV9w
ZW5kaW5nVmlkZW9TYW1wbGVRdWV1ZS5jbGVhcigpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KLSAgICAgICAgd2hpbGUgKCFtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLmlzRW1w
dHkoKSkgewotICAgICAgICAgICAgaWYgKCFbbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgaXNS
ZWFkeUZvck1vcmVNZWRpYURhdGFdKSB7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdE5vdGlmaWNh
dGlvbldoZW5SZWFkeUZvclZpZGVvRGF0YSgpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgYXV0byBzYW1wbGUgPSBtX3BlbmRpbmdWaWRlb1Nh
bXBsZVF1ZXVlLnRha2VGaXJzdCgpOwotICAgICAgICAgICAgZW5xdWV1ZVZpZGVvU2FtcGxlKCpt
X2FjdGl2ZVZpZGVvVHJhY2suZ2V0KCksIHNhbXBsZS5nZXQoKSk7Ci0gICAgICAgIH0KLSAgICB9
XTsKLX0KLQogQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjphdWRpb1NvdXJjZVByb3ZpZGVyKCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgcmV0dXJuIGEgbWl4IG9mIGFsbCBhdWRpbyB0cmFja3MgLSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMzA1CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsYXllckVycm9yRGlk
Q2hhbmdlKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKiBsYXllcikKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0
dXNEaWRDaGFuZ2UoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJiBsYXllcikKIHsKKyAgICBBU1NF
UlQoJmxheWVyID09IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpKTsKICAgICBVTlVT
RURfUEFSQU0obGF5ZXIpOwotICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAiZXJyb3IgPSAi
LCBbW2xheWVyLmVycm9yIGxvY2FsaXplZERlc2NyaXB0aW9uXSBVVEY4U3RyaW5nXSk7Ci19Ci0K
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsYXllclN0YXR1c0Rp
ZENoYW5nZShBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciogbGF5ZXIpCi17Ci0gICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCAic3RhdHVzID0gIiwgKGludClsYXllci5zdGF0dXMpOwotCi0g
ICAgaWYgKGxheWVyLnN0YXR1cyAhPSBBVlF1ZXVlZFNhbXBsZUJ1ZmZlclJlbmRlcmluZ1N0YXR1
c1JlbmRlcmluZykKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIgfHwgIW1fYWN0aXZlVmlkZW9UcmFjayB8fCBsYXllciAhPSBtX3NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcikKKyAgICBpZiAoIW1fYWN0aXZlVmlkZW9UcmFjaykKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byB0cmFjayA9IG1fdmlkZW9UcmFja01hcC5nZXQobV9hY3RpdmVWaWRl
b1RyYWNrLT5pZCgpKTsKLSAgICBpZiAodHJhY2spCisgICAgaWYgKGF1dG8gdHJhY2sgPSBtX3Zp
ZGVvVHJhY2tNYXAuZ2V0KG1fYWN0aXZlVmlkZW9UcmFjay0+aWQoKSkpCiAgICAgICAgIHRyYWNr
LT5zZXRUaW1lbGluZU9mZnNldChNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpOwogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YXBwbGljYXRpb25EaWRCZWNv
bWVBY3RpdmUoKQogewotICAgIGlmIChtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAmJiBbbV9z
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgc3RhdHVzXSA9PSBBVlF1ZXVlZFNhbXBsZUJ1ZmZlclJl
bmRlcmluZ1N0YXR1c0ZhaWxlZCkgeworICAgIGlmIChtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ciAmJiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+ZGlkRmFpbCgpKSB7CiAgICAgICAgIGZs
dXNoUmVuZGVyZXJzKCk7CiAgICAgICAgIGlmIChtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZSkK
ICAgICAgICAgICAgIGVucXVldWVDb3JyZWN0ZWRWaWRlb1NhbXBsZSgqbV9pbWFnZVBhaW50ZXIu
bWVkaWFTYW1wbGUpOwpAQCAtNDgwLDcgKzI3Miw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjphcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Zmx1c2hSZW5kZXJlcnMoKQogewog
ICAgIGlmIChtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKLSAgICAgICAgW21fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyIGZsdXNoXTsKKyAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXItPmZsdXNoKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjplbnN1cmVMYXllcnMoKQpAQCAtNDkxLDUxICsyODMsMjQgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuc3VyZUxheWVycygpCiAgICAgaWYgKCFtX21l
ZGlhU3RyZWFtUHJpdmF0ZSB8fCAhbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFjdGl2ZVZpZGVvVHJh
Y2soKSB8fCAhbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFjdGl2ZVZpZGVvVHJhY2soKS0+ZW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9
IGFkb3B0TlMoW1BBTDo6YWxsb2NBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckluc3RhbmNlKCkg
aW5pdF0pOworICAgIGF1dG8gc2l6ZSA9IHNuYXBwZWRJbnRSZWN0KG1fcGxheWVyLT5wbGF5ZXJD
b250ZW50Qm94UmVjdCgpKS5zaXplKCk7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIg
PSBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKCp0aGlzLCBoaWRlUm9vdExh
eWVyKCksIHNpemUpOworCiAgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikgewot
ICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIitbQVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIgYWxsb2NdIGZhaWxlZC4iKTsKKyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIs
ICJDcmVhdGluZyB0aGUgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGZhaWxlZC4iKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgp
LmJhY2tncm91bmRDb2xvciA9IGNhY2hlZENHQ29sb3IoQ29sb3I6OmJsYWNrKTsKLSAgICBtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKS5hbmNob3JQb2ludCA9IHsgLjUsIC41IH07Ci0g
ICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkubmVlZHNEaXNwbGF5T25Cb3VuZHND
aGFuZ2UgPSBZRVM7Ci0gICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkudmlkZW9H
cmF2aXR5ID0gQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGw7Ci0KLSAgICBtX2Jh
Y2tncm91bmRMYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7Ci0gICAgbV9i
YWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuaGlkZGVuID0gaGlkZUJhY2tncm91bmRMYXllcigpOwotCi0g
ICAgbV9iYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuYmFja2dyb3VuZENvbG9yID0gY2FjaGVkQ0dDb2xv
cihDb2xvcjo6YmxhY2spOwotICAgIG1fYmFja2dyb3VuZExheWVyLmdldCgpLm5lZWRzRGlzcGxh
eU9uQm91bmRzQ2hhbmdlID0gWUVTOwotCi0gICAgYXV0byBzaXplID0gc25hcHBlZEludFJlY3Qo
bV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKTsKLSAgICBtX2JhY2tncm91
bmRMYXllci5nZXQoKS5ib3VuZHMgPSBDR1JlY3RNYWtlKDAsIDAsIHNpemUud2lkdGgoKSwgc2l6
ZS5oZWlnaHQoKSk7Ci0KLSAgICBbbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lciBiZWdpbk9ic2Vydmlu
Z0xheWVyc107Ci0KLSAgICBbbV9iYWNrZ3JvdW5kTGF5ZXIgYWRkU3VibGF5ZXI6bV9zYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCldOwotCi0jaWZuZGVmIE5ERUJVRwotICAgIFttX3NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllciBzZXROYW1lOkAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIl07Ci0gICAgW21fYmFja2dyb3Vu
ZExheWVyIHNldE5hbWU6QCJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgQVZT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgcGFyZW50Il07Ci0jZW5kaWYKLQogICAgIHVwZGF0ZVJl
bmRlcmluZ01vZGUoKTsKICAgICB1cGRhdGVEaXNwbGF5TGF5ZXIoKTsKIAotICAgIG1fdmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVyKG1fYmFja2dyb3VuZExheWVyLmdl
dCgpLCBzaXplKTsKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9M
YXllcihtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+cm9vdExheWVyKCksIHNpemUpOwogfQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZGVzdHJveUxheWVy
cygpCiB7Ci0gICAgW21fc3RhdHVzQ2hhbmdlTGlzdGVuZXIgc3RvcE9ic2VydmluZ0xheWVyc107
Ci0gICAgaWYgKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKSB7Ci0gICAgICAgIG1fcGVuZGlu
Z1ZpZGVvU2FtcGxlUXVldWUuY2xlYXIoKTsKLSAgICAgICAgW21fc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyIHN0b3BSZXF1ZXN0aW5nTWVkaWFEYXRhXTsKLSAgICAgICAgW21fc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyIGZsdXNoXTsKKyAgICBpZiAobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIp
CiAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gbnVsbHB0cjsKLSAgICB9Ci0g
ICAgbV9iYWNrZ3JvdW5kTGF5ZXIgPSBudWxscHRyOwogCiAgICAgdXBkYXRlUmVuZGVyaW5nTW9k
ZSgpOwogICAgIApAQCAtNjAyLDIyICszNjcsMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnByZXBhcmVUb1BsYXkoKQogCiBQbGF0Zm9ybUxheWVyKiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAog
ewotICAgIGlmICghbV9iYWNrZ3JvdW5kTGF5ZXIgfHwgbV9kaXNwbGF5TW9kZSA9PSBOb25lKQor
ICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgfHwgIW1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLT5yb290TGF5ZXIoKSB8fCBtX2Rpc3BsYXlNb2RlID09IE5vbmUpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyLT52aWRlb0lubGluZUxheWVyKCk7CiB9CiAKLVBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZGlzcGxheUxheWVyKCkKLXsKLSAgICByZXR1cm4g
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCk7Ci19Ci0KLVBsYXRmb3JtTGF5ZXIqIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YmFja2dyb3VuZExheWVyKCkKLXsK
LSAgICByZXR1cm4gbV9iYWNrZ3JvdW5kTGF5ZXIuZ2V0KCk7Ci19Ci0KIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6RGlzcGxheU1vZGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpjdXJyZW50RGlzcGxheU1vZGUoKSBjb25zdAogewogICAgIGlmICht
X2ludHJpbnNpY1NpemUuaXNFbXB0eSgpIHx8ICFtZXRhRGF0YUF2YWlsYWJsZSgpIHx8ICFtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKQEAgLTY1MywxOCArNDA4LDggQEAgYm9vbCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZURpc3BsYXlNb2RlKCkKICAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSLCAidXBkYXRlZCB0byAiLCBzdGF0aWNfY2FzdDxpbnQ+KGRp
c3BsYXlNb2RlKSk7CiAgICAgbV9kaXNwbGF5TW9kZSA9IGRpc3BsYXlNb2RlOwogCi0gICAgYXV0
byBoaWRkZW4gPSBtX2Rpc3BsYXlNb2RlIDwgUGF1c2VkSW1hZ2U7Ci0gICAgaWYgKG1fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyICYmIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpLmhp
ZGRlbiAhPSBoaWRkZW4pIHsKLSAgICAgICAgcnVuV2l0aG91dEFuaW1hdGlvbnMoW3RoaXMsIGhp
ZGRlbl0gewotICAgICAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkuaGlk
ZGVuID0gaGlkZGVuOwotICAgICAgICB9KTsKLSAgICB9Ci0gICAgaGlkZGVuID0gaGlkZUJhY2tn
cm91bmRMYXllcigpOwotICAgIGlmIChtX2JhY2tncm91bmRMYXllciAmJiBtX2JhY2tncm91bmRM
YXllci5nZXQoKS5oaWRkZW4gIT0gaGlkZGVuKSB7Ci0gICAgICAgIHJ1bldpdGhvdXRBbmltYXRp
b25zKFt0aGlzLCBoaWRkZW5dIHsKLSAgICAgICAgICAgIG1fYmFja2dyb3VuZExheWVyLmdldCgp
LmhpZGRlbiA9IGhpZGRlbjsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIGlmIChtX3NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcikKKyAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnVw
ZGF0ZURpc3BsYXlNb2RlKG1fZGlzcGxheU1vZGUgPCBQYXVzZWRJbWFnZSwgaGlkZVJvb3RMYXll
cigpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTAyMyw4ICs3NjgsMTEgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNoZWNrU2VsZWN0ZWRWaWRlb1Ry
YWNrKCkKICAgICAgICAgICAgICAgICBtX3dhaXRpbmdGb3JGaXJzdEltYWdlID0gdHJ1ZTsKICAg
ICAgICAgfQogICAgICAgICBlbnN1cmVMYXllcnMoKTsKLSAgICAgICAgbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuZ2V0KCkuaGlkZGVuID0gaGlkZVZpZGVvTGF5ZXIgfHwgbV9kaXNwbGF5TW9k
ZSA8IFBhdXNlZEltYWdlOwotICAgICAgICBtX2JhY2tncm91bmRMYXllci5nZXQoKS5oaWRkZW4g
PSBoaWRlQmFja2dyb3VuZExheWVyKCk7CisgICAgICAgIGlmIChtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcikgeworICAgICAgICAgICAgaWYgKCFtX2FjdGl2ZVZpZGVvVHJhY2spCisgICAgICAg
ICAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmNsZWFyRW5xdWV1ZWRTYW1wbGVz
KCk7CisgICAgICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+dXBkYXRlRGlzcGxh
eU1vZGUoaGlkZVZpZGVvTGF5ZXIgfHwgbV9kaXNwbGF5TW9kZSA8IFBhdXNlZEltYWdlLCBoaWRl
Um9vdExheWVyKCkpOworICAgICAgICB9CiAKICAgICAgICAgbV9wZW5kaW5nU2VsZWN0ZWRUcmFj
a0NoZWNrID0gZmFsc2U7CiAgICAgICAgIHVwZGF0ZURpc3BsYXlNb2RlKCk7CkBAIC0xMTczLDgg
KzkyMSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRO
ZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1
ZmZlcmluZ1BvbGljeSBwb2xpY3kpCiB7Ci0gICAgaWYgKHBvbGljeSAhPSBNZWRpYVBsYXllcjo6
QnVmZmVyaW5nUG9saWN5OjpEZWZhdWx0KQotICAgICAgICBbbV9zYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIgZmx1c2hBbmRSZW1vdmVJbWFnZV07CisgICAgaWYgKHBvbGljeSAhPSBNZWRpYVBsYXll
cjo6QnVmZmVyaW5nUG9saWN5OjpEZWZhdWx0ICYmIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
KQorICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+Zmx1c2hBbmRSZW1vdmVJbWFn
ZSgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2No
ZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKQEAgLTExOTcs
MjMgKzk0NSwyMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
Q3VycmVudEZyYW1lUGFpbnRlcjo6cmVzZXQoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKCkKIHsKLSAgICBpZiAoIW1fYmFj
a2dyb3VuZExheWVyIHx8ICFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKKyAgICBpZiAoIW1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGJh
Y2tncm91bmRCb3VuZHMgPSBtX2JhY2tncm91bmRMYXllci5nZXQoKS5ib3VuZHM7Ci0gICAgYXV0
byB2aWRlb0JvdW5kcyA9IGJhY2tncm91bmRCb3VuZHM7CisgICAgYXV0byBib3VuZHMgPSBtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+Ym91bmRzKCk7CisgICAgYXV0byB2aWRlb0JvdW5kcyA9
IGJvdW5kczsKICAgICBpZiAobV92aWRlb1JvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRlb1Jv
dGF0aW9uOjpSaWdodCB8fCBtX3ZpZGVvUm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246OkxlZnQpCiAgICAgICAgIHN0ZDo6c3dhcCh2aWRlb0JvdW5kcy5zaXplLndpZHRoLCB2
aWRlb0JvdW5kcy5zaXplLmhlaWdodCk7CiAKLSAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5nZXQoKS5ib3VuZHMgPSB2aWRlb0JvdW5kczsKLSAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5nZXQoKS5wb3NpdGlvbiA9IHsgYmFja2dyb3VuZEJvdW5kcy5zaXplLndpZHRoIC8gMiwg
YmFja2dyb3VuZEJvdW5kcy5zaXplLmhlaWdodCAvIDJ9OworICAgIG1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLT51cGRhdGVCb3VuZHNBbmRQb3NpdGlvbih2aWRlb0JvdW5kcywgeyBib3VuZHMu
c2l6ZS53aWR0aCAvIDIsIGJvdW5kcy5zaXplLmhlaWdodCAvIDJ9KTsKIH0KIAotdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmJhY2tncm91bmRMYXllckJvdW5kc0No
YW5nZWQoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllckJvdW5kc0RpZENoYW5nZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXImKQogewotICAgIHJ1bldpdGhvdXRBbmltYXRpb25zKFt0aGlzXSB7Ci0gICAgICAgIHVwZGF0
ZURpc3BsYXlMYXllcigpOwotICAgIH0pOworICAgIHVwZGF0ZURpc3BsYXlMYXllcigpOwogfQog
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECg==
</data>

          </attachment>
      

    </bug>

</bugzilla>